Compiling a52dec and transcode in SuSE 9
Greetings -- I'm trying to compile transcode for x86_64 in SuSE 9.0. I'm using it for dv files, so I believe I need the a52dec package, which provides PCM support. Unfortunately this package does not appear to be available for the x86_64 platform in SuSE. I got the tarball for a52dec-0.7.4 and it compiles fine -- among other things, the ./configure scripts shows the following: checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes In transcode, liba52 is the default audio decoder, and it is detected after I installed it: liba52 audio plugin (>=0.7.3) | default decoder yes | yes However, transcode won't compile with it -- /usr/lib64/gcc-lib/x86_64-suse-linux/3.3.1/../../../../x86_64-suse-linux/bin/ld: /usr/local/lib/liba52.a(parse.o): relocation R_X86_64_32S can not be used when making a shared object; recompile with -fPIC /usr/local/lib/liba52.a: could not read symbols: Bad value collect2: ld returned 1 exit status make[3]: *** [a52_decore.la] Error 1 I'm a dolt at this stuff; how do I recompile with -fPIC? I realize it's a gcc flag, but I compile by typing "make". Do I recompile a52dec or transcode? Of course, if anyone knows of a SuSE x86_64 version of a52dec and/or transcode, that would be even better. Appreciate your help on this -- transcoding video was a major reason for my buying the machine. Cheers, David
* David Liontooth (liontooth@cogweb.net) [20040219 10:03]:
/usr/lib64/gcc-lib/x86_64-suse-linux/3.3.1/../../../../x86_64-suse-linux/bin/ld: /usr/local/lib/liba52.a(parse.o): relocation R_X86_64_32S can not be used when making a shared object; recompile with -fPIC
That's to be expected. You can't mix PIC and non-PIC code.
I'm a dolt at this stuff; how do I recompile with -fPIC? I realize it's a gcc flag, but I compile by typing "make".
Search for the variable CFLAGS in Makefile and add -fPIC to it.
Do I recompile a52dec or transcode?
As liba52 is part of a52dec, this is the package to recompile. Philipp -- Philipp Thomas <pth@suse.de> SUSE LINUX AG, Maxfeldstr. 5, D-90409 Nuremberg, Germany
Philipp Thomas wrote:
* David Liontooth (liontooth@cogweb.net) [20040219 10:03]:
/usr/lib64/gcc-lib/x86_64-suse-linux/3.3.1/../../../../x86_64-suse-linux/bin/ld: /usr/local/lib/liba52.a(parse.o): relocation R_X86_64_32S can not be used when making a shared object; recompile with -fPIC
That's to be expected. You can't mix PIC and non-PIC code.
I'm a dolt at this stuff; how do I recompile with -fPIC? I realize it's a gcc flag, but I compile by typing "make".
Search for the variable CFLAGS in Makefile and add -fPIC to it.
Do I recompile a52dec or transcode?
As liba52 is part of a52dec, this is the package to recompile.
Philipp
Thanks, that's very helpful. When I compile I see this: /bin/sh ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I../include -I../include -I../include -g -O3 -fomit-frame-pointer -prefer-non-pic -c parse.c So there's a -prefer-non-pic. In the Changelog is this entry: a52dec-0.7.2 Sun Dec 16 14:39:56 PST 2001 -demuxer improvements, with support for TS streams. -smaller demux buffer, making it easier to use a52dec as a pipe -wav output -avoid -fPIC when possible (-prefer-non-pic) -support for vc++ and TenDRA -portability fixes There's no CFLAGS variable in the Makefile, but in the configure file there's this: LIBA52_CFLAGS="$LIBA52_CFLAGS -prefer-non-pic" I substituted -fPIC and recompiled -- the line above now comes out /bin/sh ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I../include -I../include -I../include -g -O3 -fomit-frame-pointer -fPIC -c parse.c Transcode compiles; I'll ask the a52dec people what the problem is with using -fPIC. Cheers, David
participants (2)
-
David Liontooth
-
Philipp Thomas