Now ON TOPIC, libGL.so, libMesaGL.so on missing list of F8 repo's

Rick Stevens ricks at nerd.com
Wed Jul 23 21:13:17 UTC 2008


Gene Heskett wrote:
> On Wednesday 23 July 2008, Rick Stevens wrote:
>> Gene Heskett wrote:
>>> On Wednesday 23 July 2008, dexter wrote:
>>>> On Wed July 23 2008 04:06:58 Gene Heskett wrote:
>>>>> That seems to be faad2 now, but I didn't have the -devel installed.
>>>>> But that was from faac, and I didn't have that -devel installed either.
>>>>>
>>>>> Humm, I have added the /opt/gmerlin/lib directory to a gmerlin.conf file
>>>>> in /etc/ld.so.conf.d, and I'm running ldconfig after yum installs each
>>>>> of these -devel packages, but the above faac* errors aren't going away. 
>>>>> This is using the faac stuff from livna.
>>>> I ended up patching neaacdec.h from the faad2-devel to get rid of theses
>>>> errors in another project but it should work here also, include this in
>>>> neaacdec.h:
>>>>
>>>> /* MACROS FOR BACKWARDS COMPATIBILITY */
>>>> /* structs */
>>>> #define faacDecHandle                  NeAACDecHandle
>>>> #define faacDecConfiguration           NeAACDecConfiguration
>>>> #define faacDecConfigurationPtr        NeAACDecConfigurationPtr
>>>> #define faacDecFrameInfo               NeAACDecFrameInfo
>>>> /* functions */
>>>> #define faacDecGetErrorMessage         NeAACDecGetErrorMessage
>>>> #define faacDecSetConfiguration        NeAACDecSetConfiguration
>>>> #define faacDecGetCurrentConfiguration NeAACDecGetCurrentConfiguration
>>>> #define faacDecInit                    NeAACDecInit
>>>> #define faacDecInit2                   NeAACDecInit2
>>>> #define faacDecInitDRM                 NeAACDecInitDRM
>>>> #define faacDecPostSeekReset           NeAACDecPostSeekReset
>>>> #define faacDecOpen                    NeAACDecOpen
>>>> #define faacDecClose                   NeAACDecClose
>>>> #define faacDecDecode                  NeAACDecDecode
>>>> #define AudioSpecificConfig            NeAACDecAudioSpecificConfig
>>>>
>>>> For some reason Freshrpms (which I use as a base for my stuff) & also I
>>>> assume livna patch these defines out.
>>>>
>>>> ...dex
>>> There appears to be precisely the inverse of that already there, labeled:
>>>
>>> #if 1
>>> /* MACROS FOR FORWARD COMPATIBILITY */
>>> /* structs */
>>> #define NeAACDecHandle                  faacDecHandle
>>> #define NeAACDecConfiguration           faacDecConfiguration
>>> #define NeAACDecConfigurationPtr        faacDecConfigurationPtr
>>> #define NeAACDecFrameInfo               faacDecFrameInfo
>>> /* functions */
>>> #define NeAACDecGetErrorMessage         faacDecGetErrorMessage
>>> #define NeAACDecSetConfiguration        faacDecSetConfiguration
>>> #define NeAACDecGetCurrentConfiguration faacDecGetCurrentConfiguration
>>> #define NeAACDecInit                    faacDecInit
>>> #define NeAACDecInit2                   faacDecInit2
>>> #define NeAACDecInitDRM                 faacDecInitDRM
>>> #define NeAACDecPostSeekReset           faacDecPostSeekReset
>>> #define NeAACDecOpen                    faacDecOpen
>>> #define NeAACDecClose                   faacDecClose
>>> #define NeAACDecDecode                  faacDecDecode
>>> #define NeAACDecAudioSpecificConfig     AudioSpecificConfig
>>> #endif
>>>
>>> As I understand code, that looks like I should ifdef it out, but I'll try
>>> for effects first before I replace the 1 with a 0, thanks Dex.
>>>
>>> And while its slightly different, the end result is the same:
>>>
>>> gcc -D_REENTRANT -D_FILE_OFFSET_BITS=64 -I/usr/local/include -Wall
>>> -Wmissing-declarations -Wdeclaration-after-statement -Wl,--rpath
>>> -Wl,/opt/gmerlin/lib -o .libs/bgavdump bgavdump.o 
>>> ../lib/.libs/libgmerlin_avdec.so -L/usr/local/lib
>>> /usr/local/lib/libgavl.so /usr/lib/libavcodec.so.51: undefined reference
>>> to `faacDecDecode' /usr/lib/libavcodec.so.51: undefined reference to
>>> `faacDecInit2'
>>> /usr/lib/libavcodec.so.51: undefined reference to `faacDecClose'
>>> /usr/lib/libavcodec.so.51: undefined reference to `faacDecOpen'
>>> /usr/lib/libavcodec.so.51: undefined reference to
>>> `faacDecSetConfiguration' /usr/lib/libavcodec.so.51: undefined reference
>>> to `faacDecInit'
>>> /usr/lib/libavcodec.so.51: undefined reference to
>>> `faacDecGetCurrentConfiguration'
>>> /usr/lib/libavcodec.so.51: undefined reference to `faacDecGetErrorMessage'
>>> collect2: ld returned 1 exit status
>>> make[1]: *** [bgavdump] Error 1
>>> make[1]: Leaving directory
>>> `/opt/gmerlin-all-in-one-20080715/gmerlin_avdecoder/gmerlin-avdecoder-0.1.
>>> 8/tests' make: *** [all-recursive] Error 1
>>> Compilation in gmerlin_avdecoder failed
>>>
>>> I saw the word failed go by once in the middle of all that, so I'm running
>>> the buildall.sh to a logfile so grep can find it.  But that all takes
>>> time, so I'll go ahead and submit this for further comments.
>> Well, that's all in the libfaad.so.0.0.0 file.  An excerpt from "nm -D":
>>
>> 	[root at prophead ~]# nm -D /usr/lib64/libfaad.so.0.0.0 | grep faac
>> 	0000003beb006dd0 T faacDecClose
>> 	0000003beb006dc0 T faacDecDecode
>> 	0000003beb006500 T faacDecGetCurrentConfiguration
>> 	0000003beb0064d0 T faacDecGetErrorMessage
>> 	0000003beb0070c0 T faacDecInit
>> 	0000003beb006ea0 T faacDecInit2
>> 	0000003beb0073f0 T faacDecOpen
>> 	0000003beb006520 T faacDecPostSeekReset
>> 	0000003beb007040 T faacDecSetConfiguration
>>
>> 	[root at prophead ~]# rpm -qa | grep faad2
>> 	faad2-2.0-21.20050131.lvn8
>>
>> 	[root at prophead ~]# rpm -ql faad2
>> 	/usr/bin/faad
>> 	/usr/lib64/libfaad.so.0
>> 	/usr/lib64/libfaad.so.0.0.0
>> 	/usr/share/doc/faad2-2.0
>> 	/usr/share/doc/faad2-2.0/AUTHORS
>> 	/usr/share/doc/faad2-2.0/COPYING
>> 	/usr/share/doc/faad2-2.0/ChangeLog
>> 	/usr/share/doc/faad2-2.0/NEWS
>> 	/usr/share/doc/faad2-2.0/README
>> 	/usr/share/doc/faad2-2.0/TODO
>>
>> 	[root at prophead ~]# ls -l /usr/lib64/libfaad.so*
>> 	lrwxrwxrwx 1 root root     16 2008-02-25 16:59
>> 		/usr/lib64/libfaad.so.0 -> libfaad.so.0.0.0
>> 	-rwxr-xr-x 1 root root 289256 2007-10-18 00:00
>>  		/usr/lib64/libfaad.so.0.0.0
>>
>> I don't have the -devel RPM installed.  My guess is that it's trying
>> to link against the 32-bit library which you don't have installed.
>> You might try:
>>
>> 	LDFLAGS="-L/usr/lib64 -lfaad2" make
>>
>> to have it search the 64-bit stuff first.  Just a wild idea.
> 
> Too wild I think, this is a 32 bit machine, amd xp2800 TBE.
> 
> But: yumex says faad2 is installed, but locate can't find it!  Mm, its libraries 
> are not labeled faad2, just libfaad.
> 
> And nm -D returns this:
> [root at coyote gmerlin-all-in-one-20080715]# nm -D /usr/lib/libfaad.so.0.0.0 | 
> grep faac
> 4948c170 T faacDecClose
> 4948c140 T faacDecDecode
> 4948b740 T faacDecGetCurrentConfiguration
> 4948b700 T faacDecGetErrorMessage
> 4948c460 T faacDecInit
> 4948c240 T faacDecInit2
> 4948c820 T faacDecOpen
> 4948b760 T faacDecPostSeekReset
> 4948c3d0 T faacDecSetConfiguration
> 
> So it is all there.  Me goes off scratching head in confusion.
> 
> Thanks Rick.  Any more ideas?

Uhm, nope.  I'd do an "ldconfig -v" and verify it's seeing libfaad.so.*.
That'll ensure that libfaad is in the linker search path.

Also watch the output of the make and verify the link command includes
"-lfaad" somewhere.  If not, you may have to hack the Makefile and put
it in there (typically in the "LDFLAGS" or "LD_FLAGS" macro).
----------------------------------------------------------------------
- Rick Stevens, Systems Engineer                       rps2 at nerd.com -
- Hosting Consulting, Inc.                                           -
-                                                                    -
-            "You think that's tough?  Try herding cats!"            -
----------------------------------------------------------------------




More information about the fedora-list mailing list