Now ON TOPIC,, on missing list of F8 repo's

Rick Stevens ricks at
Wed Jul 23 17:30:23 UTC 2008

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/, 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:
>> /* 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
> /* 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/ -L/usr/local/lib /usr/local/lib/
> /usr/lib/ undefined reference to `faacDecDecode'
> /usr/lib/ undefined reference to `faacDecInit2'
> /usr/lib/ undefined reference to `faacDecClose'
> /usr/lib/ undefined reference to `faacDecOpen'
> /usr/lib/ undefined reference to `faacDecSetConfiguration'
> /usr/lib/ undefined reference to `faacDecInit'
> /usr/lib/ undefined reference to 
> `faacDecGetCurrentConfiguration'
> /usr/lib/ 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 
> 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 file.  An excerpt from "nm -D":

	[root at prophead ~]# nm -D /usr/lib64/ | 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

	[root at prophead ~]# rpm -ql faad2

	[root at prophead ~]# ls -l /usr/lib64/*
	lrwxrwxrwx 1 root root     16 2008-02-25 16:59
		/usr/lib64/ ->
	-rwxr-xr-x 1 root root 289256 2007-10-18 00:00

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.
- Rick Stevens, Systems Engineer                       rps2 at -
- Hosting Consulting, Inc.                                           -
-                                                                    -
-    If your broker is so damned smart...why is he still working?    -

More information about the fedora-list mailing list