> OK, that worked. > > I checked in your patch to make a static libFLAC-asm.a and > I moved @XMMS_LIBS@ to the end of ...LIBADD. Matt and Ben, > can you try the latest CVS to see if it works for you now?It doesn't work for me. Looks like libtool decided not to link libFLAC-asm.a into libFLAC. Here's the output: Making all in src gmake[1]: Entering directory `/home/ben/flac/flac/flac/src' Making all in libFLAC gmake[2]: Entering directory `/home/ben/flac/flac/flac/src/libFLAC' Making all in ia32 gmake[3]: Entering directory `/home/ben/flac/flac/flac/src/libFLAC/ia32' nasm -f elf -d OBJ_FORMAT_elf cpu_asm.nasm -o cpu_asm.o nasm -f elf -d OBJ_FORMAT_elf fixed_asm.nasm -o fixed_asm.o nasm -f elf -d OBJ_FORMAT_elf lpc_asm.nasm -o lpc_asm.o rm -f libFLAC-asm.a ar cru libFLAC-asm.a cpu_asm.o fixed_asm.o lpc_asm.o ranlib libFLAC-asm.a gmake[3]: Leaving directory `/home/ben/flac/flac/flac/src/libFLAC/ia32' Making all in . gmake[3]: Entering directory `/home/ben/flac/flac/flac/src/libFLAC' /bin/sh ../../libtool --mode=compile gcc -DPACKAGE=\"flac\" -DVERSION=\"1.0\" -DFLAC__CPU_IA32=1 -DFLAC__ALIGN_MALLOC_DATA=1 -DFLAC__HAS_NASM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -I. -I. -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -c bitbuffer.c mkdir .libs gcc -DPACKAGE=\"flac\" -DVERSION=\"1.0\" -DFLAC__CPU_IA32=1 -DFLAC__ALIGN_MALLOC_DATA=1 -DFLAC__HAS_NASM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -I. -I. -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -c bitbuffer.c -fPIC -DPIC -o .libs/bitbuffer.o gcc -DPACKAGE=\"flac\" -DVERSION=\"1.0\" -DFLAC__CPU_IA32=1 -DFLAC__ALIGN_MALLOC_DATA=1 -DFLAC__HAS_NASM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -I. -I. -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -c bitbuffer.c -o bitbuffer.o >/dev/null 2>&1 /bin/sh ../../libtool --mode=compile gcc -DPACKAGE=\"flac\" -DVERSION=\"1.0\" -DFLAC__CPU_IA32=1 -DFLAC__ALIGN_MALLOC_DATA=1 -DFLAC__HAS_NASM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -I. -I. -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -c bitmath.c gcc -DPACKAGE=\"flac\" -DVERSION=\"1.0\" -DFLAC__CPU_IA32=1 -DFLAC__ALIGN_MALLOC_DATA=1 -DFLAC__HAS_NASM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -I. -I. -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -c bitmath.c -fPIC -DPIC -o .libs/bitmath.o gcc -DPACKAGE=\"flac\" -DVERSION=\"1.0\" -DFLAC__CPU_IA32=1 -DFLAC__ALIGN_MALLOC_DATA=1 -DFLAC__HAS_NASM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -I. -I. -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -c bitmath.c -o bitmath.o >/dev/null 2>&1 /bin/sh ../../libtool --mode=compile gcc -DPACKAGE=\"flac\" -DVERSION=\"1.0\" -DFLAC__CPU_IA32=1 -DFLAC__ALIGN_MALLOC_DATA=1 -DFLAC__HAS_NASM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -I. -I. -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -c cpu.c gcc -DPACKAGE=\"flac\" -DVERSION=\"1.0\" -DFLAC__CPU_IA32=1 -DFLAC__ALIGN_MALLOC_DATA=1 -DFLAC__HAS_NASM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -I. -I. -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -c cpu.c -fPIC -DPIC -o .libs/cpu.o gcc -DPACKAGE=\"flac\" -DVERSION=\"1.0\" -DFLAC__CPU_IA32=1 -DFLAC__ALIGN_MALLOC_DATA=1 -DFLAC__HAS_NASM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -I. -I. -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -c cpu.c -o cpu.o >/dev/null 2>&1 /bin/sh ../../libtool --mode=compile gcc -DPACKAGE=\"flac\" -DVERSION=\"1.0\" -DFLAC__CPU_IA32=1 -DFLAC__ALIGN_MALLOC_DATA=1 -DFLAC__HAS_NASM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -I. -I. -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -c crc.c gcc -DPACKAGE=\"flac\" -DVERSION=\"1.0\" -DFLAC__CPU_IA32=1 -DFLAC__ALIGN_MALLOC_DATA=1 -DFLAC__HAS_NASM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -I. -I. -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -c crc.c -fPIC -DPIC -o .libs/crc.o gcc -DPACKAGE=\"flac\" -DVERSION=\"1.0\" -DFLAC__CPU_IA32=1 -DFLAC__ALIGN_MALLOC_DATA=1 -DFLAC__HAS_NASM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -I. -I. -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -c crc.c -o crc.o >/dev/null 2>&1 /bin/sh ../../libtool --mode=compile gcc -DPACKAGE=\"flac\" -DVERSION=\"1.0\" -DFLAC__CPU_IA32=1 -DFLAC__ALIGN_MALLOC_DATA=1 -DFLAC__HAS_NASM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -I. -I. -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -c file_decoder.c gcc -DPACKAGE=\"flac\" -DVERSION=\"1.0\" -DFLAC__CPU_IA32=1 -DFLAC__ALIGN_MALLOC_DATA=1 -DFLAC__HAS_NASM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -I. -I. -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -c file_decoder.c -fPIC -DPIC -o .libs/file_decoder.o gcc -DPACKAGE=\"flac\" -DVERSION=\"1.0\" -DFLAC__CPU_IA32=1 -DFLAC__ALIGN_MALLOC_DATA=1 -DFLAC__HAS_NASM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -I. -I. -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -c file_decoder.c -o file_decoder.o >/dev/null 2>&1 /bin/sh ../../libtool --mode=compile gcc -DPACKAGE=\"flac\" -DVERSION=\"1.0\" -DFLAC__CPU_IA32=1 -DFLAC__ALIGN_MALLOC_DATA=1 -DFLAC__HAS_NASM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -I. -I. -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -c fixed.c gcc -DPACKAGE=\"flac\" -DVERSION=\"1.0\" -DFLAC__CPU_IA32=1 -DFLAC__ALIGN_MALLOC_DATA=1 -DFLAC__HAS_NASM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -I. -I. -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -c fixed.c -fPIC -DPIC -o .libs/fixed.o gcc -DPACKAGE=\"flac\" -DVERSION=\"1.0\" -DFLAC__CPU_IA32=1 -DFLAC__ALIGN_MALLOC_DATA=1 -DFLAC__HAS_NASM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -I. -I. -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -c fixed.c -o fixed.o >/dev/null 2>&1 /bin/sh ../../libtool --mode=compile gcc -DPACKAGE=\"flac\" -DVERSION=\"1.0\" -DFLAC__CPU_IA32=1 -DFLAC__ALIGN_MALLOC_DATA=1 -DFLAC__HAS_NASM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -I. -I. -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -c format.c gcc -DPACKAGE=\"flac\" -DVERSION=\"1.0\" -DFLAC__CPU_IA32=1 -DFLAC__ALIGN_MALLOC_DATA=1 -DFLAC__HAS_NASM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -I. -I. -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -c format.c -fPIC -DPIC -o .libs/format.o gcc -DPACKAGE=\"flac\" -DVERSION=\"1.0\" -DFLAC__CPU_IA32=1 -DFLAC__ALIGN_MALLOC_DATA=1 -DFLAC__HAS_NASM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -I. -I. -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -c format.c -o format.o >/dev/null 2>&1 /bin/sh ../../libtool --mode=compile gcc -DPACKAGE=\"flac\" -DVERSION=\"1.0\" -DFLAC__CPU_IA32=1 -DFLAC__ALIGN_MALLOC_DATA=1 -DFLAC__HAS_NASM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -I. -I. -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -c lpc.c gcc -DPACKAGE=\"flac\" -DVERSION=\"1.0\" -DFLAC__CPU_IA32=1 -DFLAC__ALIGN_MALLOC_DATA=1 -DFLAC__HAS_NASM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -I. -I. -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -c lpc.c -fPIC -DPIC -o .libs/lpc.o gcc -DPACKAGE=\"flac\" -DVERSION=\"1.0\" -DFLAC__CPU_IA32=1 -DFLAC__ALIGN_MALLOC_DATA=1 -DFLAC__HAS_NASM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -I. -I. -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -c lpc.c -o lpc.o >/dev/null 2>&1 /bin/sh ../../libtool --mode=compile gcc -DPACKAGE=\"flac\" -DVERSION=\"1.0\" -DFLAC__CPU_IA32=1 -DFLAC__ALIGN_MALLOC_DATA=1 -DFLAC__HAS_NASM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -I. -I. -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -c md5.c gcc -DPACKAGE=\"flac\" -DVERSION=\"1.0\" -DFLAC__CPU_IA32=1 -DFLAC__ALIGN_MALLOC_DATA=1 -DFLAC__HAS_NASM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -I. -I. -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -c md5.c -fPIC -DPIC -o .libs/md5.o gcc -DPACKAGE=\"flac\" -DVERSION=\"1.0\" -DFLAC__CPU_IA32=1 -DFLAC__ALIGN_MALLOC_DATA=1 -DFLAC__HAS_NASM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -I. -I. -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -c md5.c -o md5.o >/dev/null 2>&1 /bin/sh ../../libtool --mode=compile gcc -DPACKAGE=\"flac\" -DVERSION=\"1.0\" -DFLAC__CPU_IA32=1 -DFLAC__ALIGN_MALLOC_DATA=1 -DFLAC__HAS_NASM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -I. -I. -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -c memory.c gcc -DPACKAGE=\"flac\" -DVERSION=\"1.0\" -DFLAC__CPU_IA32=1 -DFLAC__ALIGN_MALLOC_DATA=1 -DFLAC__HAS_NASM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -I. -I. -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -c memory.c -fPIC -DPIC -o .libs/memory.o gcc -DPACKAGE=\"flac\" -DVERSION=\"1.0\" -DFLAC__CPU_IA32=1 -DFLAC__ALIGN_MALLOC_DATA=1 -DFLAC__HAS_NASM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -I. -I. -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -c memory.c -o memory.o >/dev/null 2>&1 /bin/sh ../../libtool --mode=compile gcc -DPACKAGE=\"flac\" -DVERSION=\"1.0\" -DFLAC__CPU_IA32=1 -DFLAC__ALIGN_MALLOC_DATA=1 -DFLAC__HAS_NASM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -I. -I. -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -c seek_table.c gcc -DPACKAGE=\"flac\" -DVERSION=\"1.0\" -DFLAC__CPU_IA32=1 -DFLAC__ALIGN_MALLOC_DATA=1 -DFLAC__HAS_NASM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -I. -I. -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -c seek_table.c -fPIC -DPIC -o .libs/seek_table.o gcc -DPACKAGE=\"flac\" -DVERSION=\"1.0\" -DFLAC__CPU_IA32=1 -DFLAC__ALIGN_MALLOC_DATA=1 -DFLAC__HAS_NASM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -I. -I. -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -c seek_table.c -o seek_table.o >/dev/null 2>&1 /bin/sh ../../libtool --mode=compile gcc -DPACKAGE=\"flac\" -DVERSION=\"1.0\" -DFLAC__CPU_IA32=1 -DFLAC__ALIGN_MALLOC_DATA=1 -DFLAC__HAS_NASM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -I. -I. -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -c stream_decoder.c gcc -DPACKAGE=\"flac\" -DVERSION=\"1.0\" -DFLAC__CPU_IA32=1 -DFLAC__ALIGN_MALLOC_DATA=1 -DFLAC__HAS_NASM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -I. -I. -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -c stream_decoder.c -fPIC -DPIC -o .libs/stream_decoder.o stream_decoder.c: In function `stream_decoder_read_frame_': stream_decoder.c:950: warning: passing arg 3 from incompatible pointer type gcc -DPACKAGE=\"flac\" -DVERSION=\"1.0\" -DFLAC__CPU_IA32=1 -DFLAC__ALIGN_MALLOC_DATA=1 -DFLAC__HAS_NASM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -I. -I. -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -c stream_decoder.c -o stream_decoder.o >/dev/null 2>&1 /bin/sh ../../libtool --mode=compile gcc -DPACKAGE=\"flac\" -DVERSION=\"1.0\" -DFLAC__CPU_IA32=1 -DFLAC__ALIGN_MALLOC_DATA=1 -DFLAC__HAS_NASM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -I. -I. -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -c stream_encoder.c gcc -DPACKAGE=\"flac\" -DVERSION=\"1.0\" -DFLAC__CPU_IA32=1 -DFLAC__ALIGN_MALLOC_DATA=1 -DFLAC__HAS_NASM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -I. -I. -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -c stream_encoder.c -fPIC -DPIC -o .libs/stream_encoder.o stream_encoder.c: In function `stream_encoder_process_frame_': stream_encoder.c:976: warning: passing arg 2 of `FLAC__MD5Accumulate' from incompatible pointer type gcc -DPACKAGE=\"flac\" -DVERSION=\"1.0\" -DFLAC__CPU_IA32=1 -DFLAC__ALIGN_MALLOC_DATA=1 -DFLAC__HAS_NASM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -I. -I. -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -c stream_encoder.c -o stream_encoder.o >/dev/null 2>&1 /bin/sh ../../libtool --mode=compile gcc -DPACKAGE=\"flac\" -DVERSION=\"1.0\" -DFLAC__CPU_IA32=1 -DFLAC__ALIGN_MALLOC_DATA=1 -DFLAC__HAS_NASM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -I. -I. -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -c stream_encoder_framing.c gcc -DPACKAGE=\"flac\" -DVERSION=\"1.0\" -DFLAC__CPU_IA32=1 -DFLAC__ALIGN_MALLOC_DATA=1 -DFLAC__HAS_NASM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -I. -I. -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -c stream_encoder_framing.c -fPIC -DPIC -o .libs/stream_encoder_framing.o gcc -DPACKAGE=\"flac\" -DVERSION=\"1.0\" -DFLAC__CPU_IA32=1 -DFLAC__ALIGN_MALLOC_DATA=1 -DFLAC__HAS_NASM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -I. -I. -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -c stream_encoder_framing.c -o stream_encoder_framing.o >/dev/null 2>&1 /bin/sh ../../libtool --mode=compile gcc -DPACKAGE=\"flac\" -DVERSION=\"1.0\" -DFLAC__CPU_IA32=1 -DFLAC__ALIGN_MALLOC_DATA=1 -DFLAC__HAS_NASM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -I. -I. -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -c utility.c gcc -DPACKAGE=\"flac\" -DVERSION=\"1.0\" -DFLAC__CPU_IA32=1 -DFLAC__ALIGN_MALLOC_DATA=1 -DFLAC__HAS_NASM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -I. -I. -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -c utility.c -fPIC -DPIC -o .libs/utility.o gcc -DPACKAGE=\"flac\" -DVERSION=\"1.0\" -DFLAC__CPU_IA32=1 -DFLAC__ALIGN_MALLOC_DATA=1 -DFLAC__HAS_NASM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -I. -I. -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -c utility.c -o utility.o >/dev/null 2>&1 /bin/sh ../../libtool --mode=link gcc -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -o libFLAC.la -rpath /usr/local/lib -version-info 1:0:0 bitbuffer.lo bitmath.lo cpu.lo crc.lo file_decoder.lo fixed.lo format.lo lpc.lo md5.lo memory.lo seek_table.lo stream_decoder.lo stream_encoder.lo stream_encoder_framing.lo utility.lo ia32/libFLAC-asm.a *** Warning: This library needs some functionality provided by ia32/libFLAC-asm.a. *** I have the capability to make that library automatically link in when *** you link to this library. But I can only do this if you have a *** shared version of the library, which you do not appear to have. gcc -shared -nodefaultlibs .libs/bitbuffer.o .libs/bitmath.o .libs/cpu.o .libs/crc.o .libs/file_decoder.o .libs/fixed.o .libs/format.o .libs/lpc.o .libs/md5.o .libs/memory.o .libs/seek_table.o .libs/stream_decoder.o .libs/stream_encoder.o .libs/stream_encoder_framing.o .libs/utility.o -Wl,-soname -Wl,libFLAC.so.1 -o .libs/libFLAC.so.1.0 (cd .libs && rm -f libFLAC.so.1 && ln -s libFLAC.so.1.0 libFLAC.so.1) (cd .libs && rm -f libFLAC.so && ln -s libFLAC.so.1.0 libFLAC.so) (cd .libs && rm -f libFLAC.so && ln -s libFLAC.so.1.0 libFLAC.so) ar cru .libs/libFLAC.a ia32/libFLAC-asm.a bitbuffer.o bitmath.o cpu.o crc.o file_decoder.o fixed.o format.o lpc.o md5.o memory.o seek_table.o stream_decoder.o stream_encoder.o stream_encoder_framing.o utility.o ia32/libFLAC-asm.a ranlib .libs/libFLAC.a creating libFLAC.la (cd .libs && rm -f libFLAC.la && ln -s ../libFLAC.la libFLAC.la) gmake[3]: Leaving directory `/home/ben/flac/flac/flac/src/libFLAC' gmake[2]: Leaving directory `/home/ben/flac/flac/flac/src/libFLAC' Making all in flac gmake[2]: Entering directory `/home/ben/flac/flac/flac/src/flac' gcc -DPACKAGE=\"flac\" -DVERSION=\"1.0\" -DFLAC__CPU_IA32=1 -DFLAC__ALIGN_MALLOC_DATA=1 -DFLAC__HAS_NASM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -I. -I. -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -c analyze.c gcc -DPACKAGE=\"flac\" -DVERSION=\"1.0\" -DFLAC__CPU_IA32=1 -DFLAC__ALIGN_MALLOC_DATA=1 -DFLAC__HAS_NASM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -I. -I. -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -c decode.c gcc -DPACKAGE=\"flac\" -DVERSION=\"1.0\" -DFLAC__CPU_IA32=1 -DFLAC__ALIGN_MALLOC_DATA=1 -DFLAC__HAS_NASM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -I. -I. -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -c encode.c encode.c: In function `flac__encode_wav': encode.c:284: warning: passing arg 2 of `append_to_verify_fifo' from incompatible pointer type encode.c:287: warning: passing arg 2 of `FLAC__stream_encoder_process' from incompatible pointer type encode.c:331: warning: passing arg 2 of `FLAC__stream_encoder_process' from incompatible pointer type encode.c:354: warning: passing arg 2 of `append_to_verify_fifo' from incompatible pointer type encode.c:357: warning: passing arg 2 of `FLAC__stream_encoder_process' from incompatible pointer type encode.c: In function `flac__encode_raw': encode.c:574: warning: passing arg 2 of `FLAC__stream_encoder_process' from incompatible pointer type encode.c: In function `format_input': encode.c:907: warning: passing arg 2 of `append_to_verify_fifo' from incompatible pointer type gcc -DPACKAGE=\"flac\" -DVERSION=\"1.0\" -DFLAC__CPU_IA32=1 -DFLAC__ALIGN_MALLOC_DATA=1 -DFLAC__HAS_NASM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -I. -I. -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -c file.c gcc -DPACKAGE=\"flac\" -DVERSION=\"1.0\" -DFLAC__CPU_IA32=1 -DFLAC__ALIGN_MALLOC_DATA=1 -DFLAC__HAS_NASM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8 -I. -I. -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -c main.c /bin/sh ../../libtool --mode=link gcc -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -o flac -lm analyze.o decode.o encode.o file.o main.o ../../src/libFLAC/libFLAC.la mkdir .libs gcc -I./include -I ../../include -Wall -W -O3 -DNDEBUG -fomit-frame-pointer -funroll-loops -finline-functions -Winline -DFLaC__INLINE=__inline__ -g -O2 -o .libs/flac analyze.o decode.o encode.o file.o main.o -lm ../../src/libFLAC/.libs/libFLAC.so -Wl,--rpath -Wl,/usr/local/lib ../../src/libFLAC/.libs/libFLAC.so: undefined reference to `FLAC__lpc_compute_residual_from_qlp_coefficients_asm_ia32' ../../src/libFLAC/.libs/libFLAC.so: undefined reference to `FLAC__cpu_info_sse_os_asm_ia32' ../../src/libFLAC/.libs/libFLAC.so: undefined reference to `FLAC__lpc_compute_residual_from_qlp_coefficients_asm_ia32_mmx' ../../src/libFLAC/.libs/libFLAC.so: undefined reference to `FLAC__cpu_info_asm_ia32' ../../src/libFLAC/.libs/libFLAC.so: undefined reference to `FLAC__lpc_restore_signal_asm_ia32_mmx' ../../src/libFLAC/.libs/libFLAC.so: undefined reference to `FLAC__lpc_restore_signal_asm_ia32' ../../src/libFLAC/.libs/libFLAC.so: undefined reference to `FLAC__cpu_info_extended_amd_asm_ia32' ../../src/libFLAC/.libs/libFLAC.so: undefined reference to `FLAC__lpc_compute_autocorrelation_asm_ia32' ../../src/libFLAC/.libs/libFLAC.so: undefined reference to `FLAC__fixed_compute_best_predictor_asm_ia32_mmx_cmov' collect2: ld returned 1 exit status gmake[2]: *** [flac] Error 1 gmake[2]: Leaving directory `/home/ben/flac/flac/flac/src/flac' gmake[1]: *** [all-recursive] Error 1 gmake[1]: Leaving directory `/home/ben/flac/flac/flac/src' gmake: *** [all-recursive] Error 1
On Sat, Jul 21, 2001 at 03:53:26AM -0700, collver@linuxfreemail.com wrote:> > OK, that worked. > > > > I checked in your patch to make a static libFLAC-asm.a and > > I moved @XMMS_LIBS@ to the end of ...LIBADD. Matt and Ben, > > can you try the latest CVS to see if it works for you now? > > It doesn't work for me. Looks like libtool decided not to link > libFLAC-asm.a into libFLAC. > > Here's the output: > > [...] > *** Warning: This library needs some functionality provided by ia32/libFLAC-asm.a. > *** I have the capability to make that library automatically link in when > *** you link to this library. But I can only do this if you have a > *** shared version of the library, which you do not appear to have. > [...] > ../../src/libFLAC/.libs/libFLAC.so: undefined reference to `FLAC__lpc_compute_residual_from_qlp_coefficients_asm_ia32' > ../../src/libFLAC/.libs/libFLAC.so: undefined reference to `FLAC__cpu_info_sse_os_asm_ia32' > ../../src/libFLAC/.libs/libFLAC.so: undefined reference to `FLAC__lpc_compute_residual_from_qlp_coefficients_asm_ia32_mmx' > ../../src/libFLAC/.libs/libFLAC.so: undefined reference to `FLAC__cpu_info_asm_ia32' > ../../src/libFLAC/.libs/libFLAC.so: undefined reference to `FLAC__lpc_restore_signal_asm_ia32_mmx' > ../../src/libFLAC/.libs/libFLAC.so: undefined reference to `FLAC__lpc_restore_signal_asm_ia32' > ../../src/libFLAC/.libs/libFLAC.so: undefined reference to `FLAC__cpu_info_extended_amd_asm_ia32' > ../../src/libFLAC/.libs/libFLAC.so: undefined reference to `FLAC__lpc_compute_autocorrelation_asm_ia32' > ../../src/libFLAC/.libs/libFLAC.so: undefined reference to `FLAC__fixed_compute_best_predictor_asm_ia32_mmx_cmov'Argh. Maybe libtool will have to get involved after all. I'll work on it this afternoon. -- - mdz
On Sat, Jul 21, 2001 at 04:06:14PM -0400, Matt Zimmerman wrote:> Argh. Maybe libtool will have to get involved after all. I'll work on it > this afternoon.I think I give up. automake and libtool assume that the compiler will be able to assemble stuff, and compilers don't generally understand NASM input. I don't like the strip_fPIC bit, since just about anything that could go in CFLAGS might be passed by libtool, and nasm doesn't understand compiler flags. However, I can't come up with anything better at the moment, and this seems to work for SDL, so I guess we go back to src/libFLAC/ia32/Makefile.am version 1.5 (plus my automake patch). The libtool command line needs to be modified to use "-o $@", otherwise libtool gives the error: /bin/sh ../../../libtool --mode=compile \ sh ../../../strip_fPIC.sh nasm -f elf -d OBJ_FORMAT_elf cpu_asm.nasm libtool: compile: cannot determine name of library object from `cpu_asm.nasm' make: *** [cpu_asm.lo] Error 1 Changing the rule to: $(LIBTOOL) --mode=compile \ $(STRIP_FPIC) $(NASM) -f $(OBJ_FORMAT) -d OBJ_FORMAT_$(OBJ_FORMAT) -o $@ $< fixes that, but we still have the issue of --tag with libtool > 1.4. The way I see it, we have two options: 1. Ship with libtool 1.4b. This is pre-release software, and I don't know what issues might be associated with it. 2. Ship with libtool 1.4. Users who want to use a later version on i386 will have to make a small patch to the ia32 makefile. The good news is, libtool 1.4b seems to support enable/disable of shared library building at runtime, so we won't need that awful libtool-disable-static bit anymore. We can just use --tag=disable-shared once we ship that version. Also, I think it should be possible to create a tagged configuration for NASM so we don't have to worry about the -fPIC issue. I like what I see in libtool 1.4b, but I don't know if its widespread use is recommended yet. Ideas? -- - mdz