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@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@prophead ~]# rpm -qa | grep faad2
faad2-2.0-21.20050131.lvn8
[root@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@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@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@xxxxxxxx -
- Hosting Consulting, Inc. -
- -
- "You think that's tough? Try herding cats!" -
----------------------------------------------------------------------
--
fedora-list mailing list
fedora-list@xxxxxxxxxx
To unsubscribe: https://www.redhat.com/mailman/listinfo/fedora-list