Dagobert Michelsen wrote:> There compilation on Solaris 10 Sparc with Sun Studio 12 gives the following compile errors: > > > CC bitreader.lo > > "bitreader.c", line 494: warning: implicit function declaration: MIN > > CC bitwriter.lo > > "bitwriter.c", line 273: reference to static identifier "bitwriter_grow_" in extern inline function > > "bitwriter.c", line 277: warning: implicit function declaration: MIN > > "bitwriter.c", line 316: reference to static identifier "bitwriter_grow_" in extern inline function > > cc: acomp failed for bitwriter.c > > gmake[4]: *** [bitwriter.lo] Error 1 > > Either bitwriter_grow_ can be made non-static or FLAC__bitwriter_write_zeroes not inline or > also static to work around this. > > The attached patch fixes the issue.Not sure about this patch. Can you please make sure that your C compiler is in the C99 mode and you have optimisation turned on and try again.
Hi Erik, Am 07.04.2013 um 04:19 schrieb Erik de Castro Lopo <mle+la at mega-nerd.com>:> Dagobert Michelsen wrote: >> There compilation on Solaris 10 Sparc with Sun Studio 12 gives the following compile errors: >> >>> CC bitreader.lo >>> "bitreader.c", line 494: warning: implicit function declaration: MIN >>> CC bitwriter.lo >>> "bitwriter.c", line 273: reference to static identifier "bitwriter_grow_" in extern inline function >>> "bitwriter.c", line 277: warning: implicit function declaration: MIN >>> "bitwriter.c", line 316: reference to static identifier "bitwriter_grow_" in extern inline function >>> cc: acomp failed for bitwriter.c >>> gmake[4]: *** [bitwriter.lo] Error 1 >> >> Either bitwriter_grow_ can be made non-static or FLAC__bitwriter_write_zeroes not inline or >> also static to work around this. >> >> The attached patch fixes the issue. > > Not sure about this patch. > > Can you please make sure that your C compiler is in the C99 mode and > you have optimisation turned on and try again. >> From my reading the ISO C99 spec, this code should compile with a C99 > compliant compiler.Yes, C99 is on and according to B.2.18 from http://docs.oracle.com/cd/E19205-01/819-5265/bjapp/index.html also casual use. What does not work is the inclusion of a static function from extern inline. It also does work if I declare bitwriter_grow_ also as "inline". Would the other patch about MIN and MAX substitution acceptable or should I add a patch with a autoconf-detection? Best regards -- Dago -- "You don't become great by trying to be great, you become great by wanting to do something, and then doing it so hard that you become great in the process." - xkcd #896
Dagobert Michelsen wrote:> Yes, C99 is on and according to B.2.18 from > http://docs.oracle.com/cd/E19205-01/819-5265/bjapp/index.html > also casual use. What does not work is the inclusion of a static function > from extern inline. It also does work if I declare bitwriter_grow_ also > as "inline".I actually think SUN/Oracle Studio is doing the wrong thing here as GCC, Clang and MSVC all accept the code as is. I'm happy to see a SUN/Oracle Studio specific fix for this, but it should not change the code for all the compilers where this currently works.> Would the other patch about MIN and MAX substitution acceptable or should I > add a patch with a autoconf-detection?That should be fixed in commit 2de567fb11ce3bbb711d993922d69af6d2cf817f. Erik -- ---------------------------------------------------------------------- Erik de Castro Lopo http://www.mega-nerd.com/