|
From: Dean K. <kol...@qw...> - 2004-12-12 21:11:58
|
I can't reproduce the linking problem. dv_peek_vlc is an inlined function in vlc.h, so it should be compiled into each .o that calls it, and not need to be linked. Something must be preventing the compiler from inlining dv_peek_vlc into dovlc.o, but I don't see how that can happen. I don't think it's related to the x86-64 code. I double-checked that I can download libdv-0.104.tar.gz, apply libdv_reloc_fixes.tar.bz2, and do the build. I fixed the assembler warnings in vlc_x86_64.S late last night, but that's just cosmetic. At 09:13 AM 12/12/2004, sean darcy wrote: >Dean Kolosiek wrote: > >>Oops, wrong file name. Try >>http://www.users.qwest.net/~kdean6/libdv_reloc_fixes.tar.bz2 > >Still no joy. > >I put encode_x86_64.S, idct_block_mmx_x86_64.S, quant_x86_64.S and >vlc_x86_64.S into libdv, overwriting the existing files. > >Then: > >if /bin/sh ../libtool --silent --mode=compile --tag=CC gcc -DHAVE_CONFIG_H >-I. -I. -I.. -fPIC -Wall -MT enc_output.lo -MD -MP -MF >".deps/enc_output.Tpo" -c -o enc_output.lo enc_output.c; \ >then mv -f ".deps/enc_output.Tpo" ".deps/enc_output.Plo"; else rm -f >".deps/enc_output.Tpo"; exit 1; fi >/bin/sh ../libtool --silent --mode=compile gcc -fPIC -c -o vlc_x86_64.lo >vlc_x86_64.S >vlc_x86_64.S: Assembler messages: >vlc_x86_64.S:392: Warning: indirect call without `*' >vlc_x86_64.S:609: Warning: indirect call without `*' >vlc_x86_64.S:644: Warning: indirect jmp without `*' >/bin/sh ../libtool --silent --mode=compile gcc -fPIC -c -o >quant_x86_64.lo quant_x86_64.S >/bin/sh ../libtool --silent --mode=compile gcc -fPIC -c -o >idct_block_mmx_x86_64.lo idct_block_mmx_x86_64.S >/bin/sh ../libtool --silent --mode=compile gcc -fPIC -c -o >dct_block_mmx_x86_64.lo dct_block_mmx_x86_64.S >/bin/sh ../libtool --silent --mode=compile gcc -fPIC -c -o >rgbtoyuv_x86_64.lo rgbtoyuv_x86_64.S >/bin/sh ../libtool --silent --mode=compile gcc -fPIC -c -o >encode_x86_64.lo encode_x86_64.S >/bin/sh ../libtool --silent --mode=compile gcc -fPIC -c -o >transpose_x86_64.lo transpose_x86_64.S >/bin/sh ../libtool --silent --mode=link --tag=CC gcc -fPIC -Wall -o >libdv.la -rpath /lib -version-info 4:2:0 dv.lo dct.lo idct_248.lo >weighting.lo quant.lo vlc.lo place.lo parse.lo bitstream.lo YUY2.lo >YV12.lo rgb.lo audio.lo util.lo encode.lo headers.lo enc_input.lo >enc_audio_input.lo enc_output.lo vlc_x86_64.lo quant_x86_64.lo >idct_block_mmx_x86_64.lo dct_block_mmx_x86_64.lo rgbtoyuv_x86_64.lo >encode_x86_64.lo transpose_x86_64.lo -lm >if gcc -DHAVE_CONFIG_H -I. -I. -I.. -fPIC -Wall -MT dovlc.o -MD -MP >-MF ".deps/dovlc.Tpo" -c -o dovlc.o dovlc.c; \ >then mv -f ".deps/dovlc.Tpo" ".deps/dovlc.Po"; else rm -f >".deps/dovlc.Tpo"; exit 1; fi >/bin/sh ../libtool --silent --mode=link --tag=CC gcc -fPIC -Wall -o >dovlc dovlc.o libdv.la -lm >dovlc.o(.text+0x1e0): In function `main': >: undefined reference to `dv_peek_vlc' >collect2: ld returned 1 exit status >make[3]: *** [dovlc] Error 1 > > >sean > > |