[Flac-dev] flac-1.1.1 completely broken on linux/ppc and on macosx if built with the standard toolchain (not xcode)

Josh Coalson xflac at yahoo.com
Wed Oct 6 09:45:48 PDT 2004


thanks for the feedback, but it would really help if you supply
a patch (diff -c), I didn't understand all the changes you
described.

someone reported a problem with src/libFLAC/include/private/lpc.h
that was fixed in CVS and may fix the problem building with asm
disabled

http://cvs.sourceforge.net/viewcvs.py/*checkout*/flac/flac/src/libFLAC/include/private/lpc.h?rev=1.24

Josh

--- Luca Barbato <lu_zero at gentoo.org> wrote:

> Sadly the latest optimization broke completely everything.
> 
> The asm code isn't gas compliant. the libFLAC linker script has a
> typo, 
> disabling the asm optimization and/or altivec won't let a correct
> build 
> anyway.
> 
> Instant fixes for the asm stuff:
> 
> sed -i -e"s:;:\#:" on the  lpc_asm.s
> to load address instead of addis+ori you could use
> lis and la and PLEASE use the @l(register) and @ha macros instead of
> the 
> not gas supported hi/lo16().
> 
> eg:
> 
> lis 31,LABEL at ha
> la 31,LABEL at l(31)
> 
> 
> append use -mregnames as as options (remove the other)
> 
> (the option there isn't present in the as manual, and I could just
> try 
> to figure what's supposed to do)
> 
> there are -rpath $(libdir) when -rpath,$(libdir) should be used
> 
> in src/libFLAC/Makefile
> libFLAC.la: $(libFLAC_la_OBJECTS) $(libFLAC_la_DEPENDENCIES)
>          $(LINK) -rpath $(libdir) $(libFLAC_la_LDFLAGS)
> 		$(libFLAC_la_OBJECTS) $(libFLAC_la_LIBADD) $(LIBS)
> 
> 
> the final build still doesn't link correctly (the 2 altivec asm
> function 
>   aren't properly linked in, I haven't the time to investigate the
> issue 
> yet=/)
> 
> 
> More verbose report about the no altivec bug:
> 
> If I disable altivec optimization (with --disable-asm-optimizations 
> --disable-altivec)
> 
> the result is:
> 
> stream_decoder.c: In function `FLAC__stream_decoder_init':
> stream_decoder.c:296: error: `FLAC__lpc_restore_signal' undeclared 
> (first use in this function)
> stream_decoder.c:296: error: (Each undeclared identifier is reported 
> only once
> stream_decoder.c:296: error: for each function it appears in.)
> stream_decoder.c:297: error: `FLAC__lpc_restore_signal_wide'
> undeclared 
> (first use in this function)
> make[4]: *** [stream_decoder.lo] Error 1
> make[4]: Leaving directory 
> `/var/tmp/portage/flac-1.1.1/work/flac-1.1.1/src/libFLAC'
> 
> Could you please at least make sure that disabling altivec
> optimization 
> won't break the build?
> That's a bit higher whish:
> could you please write the altivec optimization using C intrinsics?
> That 
> way they should work with no/little modification even on ppc 970 in 
> ppc64 mode.
> 
> Regards
> 
> lu
> 
> PS:put my address in CC to the replies.
> 
> -- 
> Luca Barbato
> Developer
> Gentoo Linux				http://www.gentoo.org/~lu_zero



		
_______________________________
Do you Yahoo!?
Declare Yourself - Register online to vote today!
http://vote.yahoo.com


More information about the Flac-dev mailing list