I clean up my patch
here<https://www.jfrog.org/svn-jfrog/openjdk/patch/SplashScreen_libpng12.patch>,
and tested before/after on my
config<http://www.jfrog.org/wiki/index.php/Fred:OpenJDK_Page>only.
Sorry, I missed the part where you stated the name of the macro ;-) I used
ALT_EXT_LIB_PNG.
By the way, I have a feeling that a movement to use more and more library
from the host OS (especially on Linux) is going on. Am I wrong?
Because, with this macro set the j2se image will not run on a system with no
libpng12. That sounds a little strange to me.
Anyway, hope it helps.
On 10/12/07, Anthony Petrov <[EMAIL PROTECTED]> wrote:
>
> This is a known issue. Anyway, thanks for reporting it! Please refer to
> the following bug to track the status of the problem:
>
> http://bugs.sun.com/view_bug.do?bug_id=6613927
>
> Currently the bug is being fixed.
>
> Concerning the possibility of using an external libpng library, we've
> got the following bug report:
>
> http://bugs.sun.com/view_bug.do?bug_id=6565114
>
> However, we're postponing the fix because the submitter of the patch
> haven't prepared a clean patch yet. The main reason to use a slightly
> more comprehensive patch is to be able to use both the internal version
> of the library and the external one (if the developer defines the
> EXTERNAL_LIBPNG macro when building OpenJDK). It would be very helpful
> if someone could provide a clean patch for the latter bug.
>
> --
> best regards,
> Anthony
>
>
> On 10/12/2007 05:14 AM Frederic Simon wrote:
> > 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/
> >
>
--
http://freddy33.bglogspot.com/
http://www.jfrog.org/
Index: j2se/make/sun/splashscreen/FILES_c.gmk
===================================================================
--- j2se/make/sun/splashscreen/FILES_c.gmk (revision 256)
+++ 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 \
@@ -108,3 +93,20 @@
jfdctfst.c \
jfdctint.c
+FILES_png_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 \
+
Index: j2se/make/sun/splashscreen/Makefile
===================================================================
--- j2se/make/sun/splashscreen/Makefile (revision 256)
+++ j2se/make/sun/splashscreen/Makefile (working copy)
@@ -40,6 +40,12 @@
FILES_export = \
java/awt/SplashScreen.java
+#
+# compile png C files if ALT_EXT_PNG_LIB is not set
+#
+ifndef ALT_EXT_PNG_LIB
+FILES_c += $(FILES_png_c)
+endif # ALT_EXT_PNG_LIB not set
#
# Rules
@@ -65,6 +71,9 @@
CFLAGS += -DWITH_X11
CPPFLAGS += -I$(OPENWIN_HOME)/include -I$(OPENWIN_HOME)/include/X11/extensions
OTHER_LDLIBS += -L$(OPENWIN_LIB) -lX11 -lXext $(LIBM) -lpthread
+ifdef ALT_EXT_PNG_LIB
+ OTHER_LDLIBS += -lpng12
+endif # ALT_EXT_PNG_LIB set
else # PLATFORM
CFLAGS += -DWITH_WIN32
OTHER_LDLIBS += kernel32.lib user32.lib gdi32.lib
@@ -78,7 +87,9 @@
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
+ifndef ALT_EXT_PNG_LIB
vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/libpng
+endif # ALT_EXT_PNG_LIB not set
vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/image/jpeg
vpath %.c $(PLATFORM_SRC)/native/$(PKGDIR)/splashscreen