|
Bug ID:
|
6613927
|
|
Votes
|
0
|
|
Synopsis
|
Compilation of splashscreen png library failed on Ubuntu 7.04 (64bit)
|
|
Category
|
java:classes_awt
|
|
Reported Against
|
|
|
Release Fixed
|
7(b25),
6-open(b08) (Bug ID:2159858)
|
|
State
|
10-Fix Delivered,
bug
|
|
Priority:
|
3-Medium
|
|
Related Bugs
|
6744609
|
|
Submit Date
|
07-OCT-2007
|
|
Description
|
Recent jdk sources failed to compile on Ubuntu 7.04 (64bit). Here is extract from the log (attached).
...
../../../build/linux-amd64/tmp/sun/sun.awt/splashscreen/obj64_g/png.o: In function `png_init_mmx_flags':
/export/java2d/j2se/make/sun/splashscreen/../../../src/share/native/sun/awt/libpng/png.c:830: undefined reference to `png_mmx_support'
../../../build/linux-amd64/tmp/sun/sun.awt/splashscreen/obj64_g/pngpread.o: In function `png_push_process_row':
/export/java2d/j2se/make/sun/splashscreen/../../../src/share/native/sun/awt/libpng/pngpread.c:847: undefined reference to `png_read_filter_row'
/export/java2d/j2se/make/sun/splashscreen/../../../src/share/native/sun/awt/libpng/pngpread.c:866: undefined reference to `png_do_read_interlace'
../../../build/linux-amd64/tmp/sun/sun.awt/splashscreen/obj64_g/pngpread.o: In function `png_progressive_combine_row':
/export/java2d/j2se/make/sun/splashscreen/../../../src/share/native/sun/awt/libpng/pngpread.c:1595: undefined reference to `png_combine_row'
../../../build/linux-amd64/tmp/sun/sun.awt/splashscreen/obj64_g/pngread.o: In function `png_read_row':
/export/java2d/j2se/make/sun/splashscreen/../../../src/share/native/sun/awt/libpng/pngread.c:651: undefined reference to `png_combine_row'
/export/java2d/j2se/make/sun/splashscreen/../../../src/share/native/sun/awt/libpng/pngread.c:661: undefined reference to `png_combine_row'
/export/java2d/j2se/make/sun/splashscreen/../../../src/share/native/sun/awt/libpng/pngread.c:671: undefined reference to `png_combine_row'
/export/java2d/j2se/make/sun/splashscreen/../../../src/share/native/sun/awt/libpng/pngread.c:681: undefined reference to `png_combine_row'
../../../build/linux-amd64/tmp/sun/sun.awt/splashscreen/obj64_g/pngread.o:/export/java2d/j2se/make/sun/splashscreen/../../../src/share/native/sun/awt/libpng/pngread.c:691: more undefined references to `png_combine_row' follow
../../../build/linux-amd64/tmp/sun/sun.awt/splashscreen/obj64_g/pngread.o: In function `png_read_row':
/export/java2d/j2se/make/sun/splashscreen/../../../src/share/native/sun/awt/libpng/pngread.c:774: undefined reference to `png_read_filter_row'
/export/java2d/j2se/make/sun/splashscreen/../../../src/share/native/sun/awt/libpng/pngread.c:804: undefined reference to `png_do_read_interlace'
/export/java2d/j2se/make/sun/splashscreen/../../../src/share/native/sun/awt/libpng/pngread.c:807: undefined reference to `png_combine_row'
/export/java2d/j2se/make/sun/splashscreen/../../../src/share/native/sun/awt/libpng/pngread.c:810: undefined reference to `png_combine_row'
/export/java2d/j2se/make/sun/splashscreen/../../../src/share/native/sun/awt/libpng/pngread.c:817: undefined reference to `png_combine_row'
/export/java2d/j2se/make/sun/splashscreen/../../../src/share/native/sun/awt/libpng/pngread.c:819: undefined reference to `png_combine_row'
collect2: ld returned 1 exit status
make[3]: *** [../../../build/linux-amd64/lib/amd64/libsplashscreen.so] Error 1
make[3]: Leaving directory `/export/java2d/j2se/make/sun/splashscreen'
make[2]: *** [all] Error 1
make[2]: Leaving directory `/export/java2d/j2se/make/sun'
make[1]: *** [all] Error 1
make[1]: Leaving directory `/export/java2d/j2se/make'
make: *** [debug] Error 2
Command exited with non-zero status 2
Posted Date : 2007-10-07 12:30:01.0
|
|
Work Around
|
I'm using following patch as work around of the problem:
------- make/sun/splashscreen/Makefile -------
65a66
> C_INCLUDE_PATH = $(SHARE_SRC)/native/$(PKGDIR)/splashscreen
87c88
<
---
> CPPFLAGS += -DPNG_NO_MMX_CODE
|
|
Evaluation
|
Googling shows that MMX instructions cannot be correctly compiled by 64-bit compilers, so the workaround is good. We can enable it if we detect we build on a 64-bit platform.
Posted Date : 2007-10-10 12:19:54.0
|
|
Comments
|
Submitted On 03-NOV-2007
I made a patch using a ALT_EXTERNAL_LIBPNG macro that need to be set for excluding png to be compiled and using libpng from the system.
The patch is in my mercurial repo here:
http://www.jfrog.org/hg/openJDK/MASTER/jdk/rev/a2d7bb38f814
PLEASE NOTE: JDK6 is formerly known as Project Mustang
|