splashscreen.so is missing pnggccrd.c

Anthony Petrov Anthony.Petrov at Sun.COM
Fri Aug 29 10:37:50 UTC 2008


On 08/28/2008 08:33 PM Martin Buchholz wrote:
> I'm thinking:
> - the MMX support is in pnggccrd.c,
> - but that file is never compiled in OpenJDK
Why? There's the following line in the make/sun/splashscreen/Makefile:

vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/libpng

that effectively includes all *.c files in the libpng sources directory 
(src/share/native/sun/awt/libpng/) in the compilation process. Honestly, 
to me this seems to be a problem with the #ifdef's/#define's logic in 
libpng, rather than the strong necessity to disable MMX support at all. 
At least the correct working of this code on MS Windows and 32-bit Linux 
systems (if compiling using the recommended build environment) somewhat 
proves this point of view.

--
best regards,
Anthony

> - so... how could png ever work when PNG_NO_MMX_CODE is not defined,
>   on any platform?
> 
> I am suspicious that png splashscreens are actually broken
> without my proposed patch.  Has this actually been tested?
> 
> I googled a little and have a theory.
> "-z defs" is supposed to be ignored for shared libs
> (but why are we using it to build libsplashscreen.so?)
> but very recent gcc toolchains don't ignore it the way they
> perhaps should.
> 
> E.g. Here's a debian bug report
> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=489142
> On hppa -Wl,-z,defs is not ignored for shared libraries
> 
> But using "-z defs" is actually good engineering practice,
> since it catches problems at link time instead of run time.
> Whether or not it's a bug in my toolchain, my toolchain
> detects the unsatisfied symbols in the link.
> There's a good chance that my change will be necessary
> to build OpenJDK on future stock Linux systems.




More information about the build-dev mailing list