splashscreen.so is missing pnggccrd.c
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.
> - 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
> 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