I tried to build b21 on my Ubuntu 7.04 and got: /work/java.net/openjdk.trunk/control/build/linux-amd64/tmp/sun/sun.awt/splashscreen/obj64/png.o: In function `png_init_mmx_flags': png.c:(.text+0xbc): undefined reference to `png_mmx_support' /work/java.net/openjdk.trunk/control/build/linux-amd64/tmp/sun/sun.awt/splashscreen/obj64/pngpread.o: In function `png_push_process_row': pngpread.c:(.text+0x86e): undefined reference to `png_read_filter_row' pngpread.c:(.text+0x934): undefined reference to `png_do_read_interlace' /work/java.net/openjdk.trunk/control/build/linux-amd64/tmp/sun/sun.awt/splashscreen/obj64/pngpread.o: In function `png_progressive_combine_row': pngpread.c:(.text+0x141): undefined reference to `png_combine_row' /work/java.net/openjdk.trunk/control/build/linux-amd64/tmp/sun/sun.awt/splashscreen/obj64/pngread.o: In function `png_read_row': pngread.c:(.text+0xa7d): undefined reference to `png_combine_row' pngread.c:(.text+0xbd8): undefined reference to `png_combine_row' pngread.c:(.text+0xbfc): undefined reference to `png_combine_row' pngread.c:(.text+0xc98): undefined reference to `png_combine_row' /work/java.net/openjdk.trunk/control/build/linux-amd64/tmp/sun/sun.awt/splashscreen/obj64/pngread.o: pngread.c:(.text+0xcb4): more undefined references to `png_combine_row' follow /work/java.net/openjdk.trunk/control/build/linux-amd64/tmp/sun/sun.awt/splashscreen/obj64/pngread.o: In function `png_read_row': pngread.c:(.text+0xce5): undefined reference to `png_read_filter_row' pngread.c:(.text+0xd0d): undefined reference to `png_do_read_interlace' collect2: ld returned 1 exit status make[3]: *** [/work/java.net/openjdk.trunk/control/build/linux-amd64/lib/amd64/libsplashscreen.so] Error 1 make[3]: Leaving directory `/work/java.net/openjdk.trunk/j2se/make/sun/splashscreen'
I found this thread talking about it: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2007-August/000192.html So, I tried to modified the makefile to use the system png. It's very roughly removing the integrated libpng and linking with png12. Here is the patch: https://www.jfrog.org/svn-jfrog/openjdk/patch/SplashScreen_libpng12.patch Hope it helps. -- http://freddy33.bglogspot.com/ http://www.jfrog.org/
Index: j2se/make/sun/splashscreen/FILES_c.gmk =================================================================== --- j2se/make/sun/splashscreen/FILES_c.gmk (revision 254) +++ j2se/make/sun/splashscreen/FILES_c.gmk (working copy) @@ -31,21 +31,6 @@ splashscreen_jpeg.c \ splashscreen_png.c \ splashscreen_sys.c \ - png.c \ - pngerror.c \ - pngget.c \ - pngmem.c \ - pngpread.c \ - pngread.c \ - pngrio.c \ - pngrtran.c \ - pngrutil.c \ - pngset.c \ - pngtrans.c \ - pngwio.c \ - pngwrite.c \ - pngwtran.c \ - pngwutil.c \ dgif_lib.c \ gif_err.c \ gifalloc.c \ Index: j2se/make/sun/splashscreen/Makefile =================================================================== --- j2se/make/sun/splashscreen/Makefile (revision 254) +++ j2se/make/sun/splashscreen/Makefile (working copy) @@ -64,7 +64,7 @@ ifneq ($(PLATFORM), windows) CFLAGS += -DWITH_X11 CPPFLAGS += -I$(OPENWIN_HOME)/include -I$(OPENWIN_HOME)/include/X11/extensions - OTHER_LDLIBS += -L$(OPENWIN_LIB) -lX11 -lXext $(LIBM) -lpthread + OTHER_LDLIBS += -L$(OPENWIN_LIB) -lX11 -lXext $(LIBM) -lpthread -lpng12 else # PLATFORM CFLAGS += -DWITH_WIN32 OTHER_LDLIBS += kernel32.lib user32.lib gdi32.lib @@ -78,7 +78,7 @@ vpath %.c $(SHARE_SRC)/native/$(PKGDIR) vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/giflib vpath %.c $(SHARE_SRC)/native/java/util/zip/zlib-1.1.3 -vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/libpng +#vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/libpng12 vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/image/jpeg vpath %.c $(PLATFORM_SRC)/native/$(PKGDIR)/splashscreen