NetBSD-Java archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Problems with JDK 1.5.0 patchset 6



On Sun, Aug 12, 2007 at 10:45:25PM +0200, Bernd Ernesti wrote:
> Hi,
> 
> I'm trying to update the jdk15 wip package to p6 and got one problem:
> 
> gmake[6]: Entering directory 
> `/pkgsrc/lang/jdk15/work.i386/j2se/make/sun/javac/javac'
> /bin/mkdir -p 
> /pkgsrc/lang/jdk15/work.i386/control/build/bsd-i586/tmp/sun/com.sun.tools.javac/javac/obj
> rm -f 
> /pkgsrc/lang/jdk15/work.i386/control/build/bsd-i586/tmp/sun/com.sun.tools.javac/javac/.classes.list
> /pkgsrc/lang/jdk15/work.i386/control/build/bsd-i586/bin/java -classpath 
> ../../../tools/CompileProperties CompileProperties 
> ../../../../src/share/classes/com/sun/tools/javac/resources/compiler.properties
>  
> /pkgsrc/lang/jdk15/work.i386/control/build/bsd-i586/gensrc/com/sun/tools/javac/resources/compiler.java
> dl failure on line 730Error: failed 
> /pkgsrc/lang/jdk15/work.i386/control/build/bsd-i586/lib/i386/client/libjvm.so,
>  because /usr/lib/libstdc++.so.6: Undefined PLT symbol "_Unwind_GetIP" 
> (symnum = 161)

I found two places between the p4 and p6 patchset which maybe related.

- In hotspot/build/bsd/makefiles/vm.make:

 -LINK_LIB  = ${CPP} -shared -mimpure-text 
 +LINK_LIB  = ${CPP} -shared -mimpure-text -fPIC

So libjvm.so is now build with -fPIC.

>From the p5 Changelog:

2007-05-17 Thursday 17:12  truk
        * hotspot/build/bsd/makefiles/vm.make:
        - link with -fPIC (needed for !i386)

And for another library:

2007-05-24 Thursday 04:52  glewis
        * j2se/make/sun/jdbc/Makefile:
        . Correctly compile shared library objects with -fPIC.
          This avoids an error with gcc 4.2 on amd64.

But this seems to not be my problem. I removed the -fPIC (I know that
this shouldn't have been done, but I wanted to rule it out that this
was the problem) but it still fails the same way.

- Then there is now a version script while linking the libraries.

>From hotspot/build/bsd/makefiles/vm.make:

 LFLAGS_VM += -Xlinker --version-script=$(MAPFILE)

Which uses different scripts depending on if this is a debug version or not.
For libjvm_g MAPFILE is defined in hotspot/build/bsd/makefiles/jvmg.make:
 MAPFILE = $(GAMMADIR)/build/bsd/makefiles/mapfile-vers-debug
The same file is also used by hotspot/build/bsd/makefiles/fastdebug.make.

Or hotspot/build/bsd/makefiles/mapfile-vers-product for the normal libjvm.so,
which is defined in hotspot/build/bsd/makefiles/product.make

Both mapfiles have another problem. They use JVM_handle_linux_signal
intead of JVM_handle_bsd_signal.

The mapfile scripts are also disabled for FreeBSD 4, where this was the
entry in the p6 Changelog:

2007-07-25 Wednesday 09:23  arnej
        * hotspot/build/bsd/makefiles/vm.make:
        disable version script on FreeBSD 4, causes dladdr() failure

Adding the same logic for NetBSD made it possible to execute
control/build/bsd-i586/bin/java and continue with the build.

I don't know which problems we will get while disabling the mapfiles.

Regards,
Bernd




Home | Main Index | Thread Index | Old Index