JDK 7 build 24 is available at the openjdk.java.net website
Arnd-Hendrik Mathias
arnd-hendrik.mathias at nefkom.net
Sun Dec 23 15:48:46 UTC 2007
Hi Andreas,
Andreas Sterbenz wrote:
> See below output of a rebuild of make/javax/crypto after a previous
> build of a fresh clone of the Mercurial jdk repository. If you see
> something different, that must be related to your build environment,
> e.g. version of make used, out of date binary plugs, etc.
Since my output looked quite different, it was not really comparable
with the correct output you posted. After further examination of the
make-/build environment, I found out that the make environment assumes
some tools to reside in /usr/bin per default. I found that this can be
overwritten by the ALT_USRBIN_PATH variable. However, if tools reside in
different directories (/bin /usr/bin ...) setting
ALT_USRBIN_PATH= <empty>
and having the PATH variable set to have all these tools available
directly may be the method the most likely to work. In my special case
"head" was missing, residing in /bin on my system.
After changing this setting jdk7 build process ran a bit longer, until
it ran into another problem:
Linking of a mass of object files from the jdk/make/sun/splashscreen
directory results in a number of missing symbols from the png library:
/opt/jdk/openjdk-1.7.0_b24/tmp/sun/sun.awt/splashscreen/obj64/png.o: In
function `png_init_mmx_flags':
png.c:(.text+0xbc): undefined reference to `png_mmx_support'
/opt/jdk/openjdk-1.7.0_b24/tmp/sun/sun.awt/splashscreen/obj64/pngpread.o:
In function `png_push_process_row':
pngpread.c:(.text+0x89e): undefined reference to `png_read_filter_row'
pngpread.c:(.text+0x964): undefined reference to `png_do_read_interlace'
/opt/jdk/openjdk-1.7.0_b24/tmp/sun/sun.awt/splashscreen/obj64/pngpread.o:
In function `png_progressive_combine_row':
pngpread.c:(.text+0x141): undefined reference to `png_combine_row'
/opt/jdk/openjdk-1.7.0_b24/tmp/sun/sun.awt/splashscreen/obj64/pngread.o:
In function `png_read_row':
pngread.c:(.text+0xb64): undefined reference to `png_combine_row'
pngread.c:(.text+0xb79): undefined reference to `png_combine_row'
pngread.c:(.text+0xc20): undefined reference to `png_read_filter_row'
pngread.c:(.text+0xc6a): undefined reference to `png_combine_row'
pngread.c:(.text+0xc92): undefined reference to `png_combine_row'
pngread.c:(.text+0xc9f): undefined reference to `png_do_read_interlace'
pngread.c:(.text+0xd10): undefined reference to `png_combine_row'
collect2: ld returned 1 exit status
Extending the OTHER_LDLIBS variable in the
jdk/make/sun/splashscreen/Makefile by
-lpng
helps to remove the undefined reference to `png_mmx_support'. The other
undefined references remain.
After taking a closer look at the libpng.so by e.g.
nm /usr/lib/libpng.so | grep png_read_filter_row
I found out that these symbols exist in the text segment, but only as
internal symbols:
0000000000007de0 t png_read_filter_row
How come they can link in your environment at all? Have you built your
libpng in a special way and is there a workaround to replace these
library calls by OpenJDK-internal implementations or something likewise?
Anyway, I still got one other question: What is the background of all of
those overwrite variables in the jdk/make/common/Defs-linux.gmk?
Omitting the overwrite directive would ease redefining some environment
definitions like OPENWIN_HOME or OPENWIN_LIB from command line, for
which no ALT_... variables exist.
Best regards
Arnd-Hendrik
More information about the discuss
mailing list