[Theora-dev] patch to build theora-mmx on AMD64
Dan Lenski
dlenski at gmail.com
Wed May 3 15:31:45 PDT 2006
On 5/3/06, j at v2v.cc <j at v2v.cc> wrote:
> On Wed, 2006-05-03 at 11:37 -0400, Dan Lenski wrote:
> > I think the old mmx code is needed for x86_32 processors such as
> > Pentium MMX, P2, K62, K63 etc., where there is MMX support but no SSE
> > support.
>
> its more that if mmx is supported mmx functions are used and
> if mmxext is supported too, some, but not all, functions are replaced
> with faster mmxext functions.
>
> attached is a version of your patch with ralph's buildsystem changes
> and the missing mmx functions.
> im able to build it with
j, it builds fine as a static lib. Decoding gives same md5sums, and
encoding passes the eyeball test.
>
> ./configure --disable-shared
>
> otherwise getting an error right now:
> /usr/bin/ld: .libs/libtheora_la-dsp_mmx.o: relocation R_X86_64_32S
> against `a local symbol' can not be used when making a shared object;
> recompile with -fPIC
> .libs/libtheora_la-dsp_mmx.o: could not read symbols: Bad value
>
> will look into that and apply the patch once i figured that out.
I had the exact same problem. I found this on Usenet:
http://groups.google.com/group/linux.debian.bugs.dist/browse_thread/thread/bbef7633760b5472/a28c7c5bfb46c85f%23a28c7c5bfb46c85f
It seems that the deal is that PIC and non-PIC code don't play nice on
x86_64, but you can get away w/it on x86_32 (I need easier
abbreviations!!!) so lots of libs have this problem.
I tried to fix this quick and dirty by adding -fPIC -DPIC to
libtheora_la_CFLAGS in lib/Makefile.am, and rebuilding. That didn't
do it, and on closer inspection I see that libtheora_la-dsp_mmx.o was
ALREADY compiled with -fPIC -DPIC.
Then I checked out the theora trunk and built that, no problems
building a shared lib. And the Makefile.am's differ only in the
inclusion of the mmx code.
So then I thought maybe the problem was with x86_64/dsp_mmx.c, which
is just a blank file. So I chopped that out of lib/Makefile.am. Then
it started giving the same error, but with regards to the recon_mmx
module.
So I'm stumped. Anyone have experience building shared libs on x86_64?
Dan
>
> thanks, j
>
>
>
More information about the Theora-dev
mailing list