Problems with JDK 1.5.0 patchset 6

View: New views
9 Messages — Rating Filter:   Alert me  

Problems with JDK 1.5.0 patchset 6

by Bernd Ernesti-50 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

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)

It seems for me this is related to a problem with libgcc_s.

partly nm output of libjvm.so:
  0032ecbc t _Unwind_Backtrace
  0032d8b8 t _Unwind_DeleteException
  0032db08 t _Unwind_FindEnclosingFunction
  00330544 t _Unwind_Find_FDE
  0032f040 t _Unwind_ForcedUnwind
  0032edf8 t _Unwind_ForcedUnwind_Phase2
  0032d860 t _Unwind_GetCFA
  0032d8a0 t _Unwind_GetDataRelBase
  0032d914 t _Unwind_GetGR
  0032d86c t _Unwind_GetIP
  0032d888 t _Unwind_GetLanguageSpecificData
  0032d894 t _Unwind_GetRegionStart
  0032d8ac t _Unwind_GetTextRelBase
  0032f0f0 t _Unwind_RaiseException
  0032ed54 t _Unwind_RaiseException_Phase2
  0032ef8c t _Unwind_Resume
  0032f23c t _Unwind_Resume_or_Rethrow
  0032d8d8 t _Unwind_SetGR
  0032d878 t _Unwind_SetIP
ldd output:
  /pkgsrc/lang/jdk15/work.i386/control/build/bsd-i586/lib/i386/client/libjvm.so:
        -lstdc++.6 => /usr/lib/libstdc++.so.6
        -lm.0 => /usr/lib/libm387.so.0
        -lm.0 => /usr/lib/libm.so.0
        -lpthread.0 => /usr/lib/libpthread.so.0

The missing libgcc_s is kind of expected because it is linked with -static-libgcc,
but I found this page: http://www.trilithium.com/johan/2005/06/static-libstdc/
Which makes me think that this won't work.
Reading in the Changelog bought me to these lines:

2007-01-20 Saturday 17:49  christos
        * hotspot/build/bsd/makefiles/: gcc.make, vm.make:
        From Chuck Silvers:
        Copy the logic for -static-libgcc to the hotspot build, eliminating the
        need for the -lgcc_s hack.
2007-01-16 Tuesday 21:27  christos
        * hotspot/build/bsd/makefiles/vm.make:
        Add -lgcc_s for the NetBSD build. This is necessary for gcc-4 because
        linking with -lstdc++ requires -lgcc_eh or -lgcc_s to do the exception
        handling. Perhaps it is easier to just compile with g++ and let things
        happen automatically rather than expose the ugly guts of the libraries.
        Anyway, most platforms that use gcc-4 will need this until we fix it
        properly.
2007-01-15 Monday 04:50  christos
        * j2se/make/common/Defs-bsd.gmk:
        XXX: For now link with -lgcc_s for _Unwind_Restore. This is on NetBSD with:
            gcc version 4.1.2 20070110 prerelease (NetBSD nb1 20070110)

Btw, this is with NetBSD-current on i386.

Attached is the output for the linking of libjvm.so, where libjvm was linked two
times (and I don't mean the libjvm_g.so).

Thanks,
Bernd


gcc -shared -mimpure-text -fPIC -static-libgcc -Xlinker -O1 -Xlinker --version-script=/pkgsrc/lang/jdk15/work.i386/hotspot/build/bsd/makefiles/mapfile-vers-product -Xlinker -soname=libjvm.so -o libjvm.so accessFlags.o ad_i486.o ad_i486_clone.o ad_i486_expand.o ad_i486_format.o ad_i486_gen.o ad_i486_misc.o ad_i486_peephole.o ad_i486_pipeline.o adapters.o adapters_i486.o addnode.o adjoiningGenerations.o adjoiningVirtualSpaces.o ageTable.o allocation.o aprofiler.o arguments.o array.o arrayKlass.o arrayKlassKlass.o arrayOop.o asPSOldGen.o asPSYoungGen.o assembler.o assembler_bsd_i486.o assembler_i486.o atomic.o biasedLocking.o binaryTreeDictionary.o bitMap.o block.o blockOffsetTable.o buildOopMap.o bytecode.o bytecodeHistogram.o bytecodeInfo.o bytecodeStream.o bytecodeTracer.o bytecodes.o bytecodes_i486.o c2_globals.o c2_init_i486.o c2compiler.o cInterpreter.o cSpaceCounters.o callGenerator.o callnode.o carRememberedSet.o cardTableExtension.o cardTableModRefBS.o cardTableRS.o cartable.o cfgnode.o cha.o chaitin.o chaitin_bsd.o ciArray.o ciArrayKlass.o ciConstant.o ciConstantPoolCache.o ciEnv.o ciExceptionHandler.o ciField.o ciFlags.o ciInstance.o ciInstanceKlass.o ciInstanceKlassKlass.o ciKlass.o ciKlassKlass.o ciMethod.o ciMethodData.o ciMethodKlass.o ciNullObject.o ciObjArrayKlass.o ciObjArrayKlassKlass.o ciObject.o ciObjectFactory.o ciOopMap.o ciSignature.o ciStreams.o ciSymbol.o ciSymbolKlass.o ciType.o ciTypeArray.o ciTypeArrayKlass.o ciTypeArrayKlassKlass.o ciTypeFlow.o ciUtilities.o classFileParser.o classFileStream.o classLoader.o classLoadingService.o classes.o classify.o cmsLockVerifier.o coalesce.o codeBlob.o codeBuffer.o codeCache.o collectedHeap.o collectorCounters.o collectorPolicy.o compactibleFreeListSpace.o compactingPermGenGen.o compilationPolicy.o compile.o compileBroker.o compileLog.o compiledIC.o compiledICHolderKlass.o compiledICHolderOop.o compilerOracle.o compressedStream.o concurrentMarkSweepGeneration.o concurrentMarkSweepThread.o connode.o constMethodKlass.o constMethodOop.o constantPoolKlass.o constantPoolOop.o constantTag.o cpCacheKlass.o cpCacheOop.o debug.o debugInfo.o debugInfoRec.o debug_i486.o defNewGeneration.o deoptimization.o depChecker_i486.o dfa_i486.o dict.o dictionary.o disassembler_i486.o divnode.o doCall.o domgraph.o dump.o dump_md.o events.o evmCompat.o exceptionHandlerTable.o exceptions.o extendedPC_i486.o fieldDescriptor.o fieldType.o filemap.o forte.o fprofiler.o frame.o frame_i486.o freeBlockDictionary.o freeChunk.o freeList.o gSpaceCounters.o gcCause.o gcLocker.o gcPolicyCounters.o gcStats.o gcTaskManager.o gcTaskThread.o gcUtil.o gcm.o genCollectedHeap.o genMarkSweep.o genRemSet.o generateOopMap.o generateOptoStub.o generation.o generationCounters.o generationSpec.o getThread_bsd_i486.o globalDefinitions.o globals.o graphKit.o growableArray.o handles.o hashtable.o heap.o heapDumper.o heapInspection.o histogram.o hpi.o hpi_bsd.o icBuffer.o icBuffer_i486.o icache.o icache_i486.o idealKit.o ifg.o ifnode.o immutableSpace.o indexSet.o init.o instanceKlass.o instanceKlassKlass.o instanceOop.o instanceRefKlass.o interfaceSupport.o interp_masm_i486.o interpreter.o interpreterRT_i486.o interpreterRuntime.o interpreter_i486.o invocationCounter.o iterator.o java.o javaAssertions.o javaCalls.o javaClasses.o jni.o jniCheck.o jniFastGetField.o jniFastGetField_i486.o jniHandles.o jniId.o jvm.o jvm_bsd.o jvmdiEnter.o jvmdiEnterTrace.o jvmdiEventFromJvmtiEvent.o jvmdiFrame.o jvmpi.o jvmtiCodeBlobEvents.o jvmtiEnter.o jvmtiEnterTrace.o jvmtiEnv.o jvmtiEnvBase.o jvmtiEnvThreadState.o jvmtiEventController.o jvmtiExport.o jvmtiExtensions.o jvmtiGetLoadedClasses.o jvmtiImpl.o jvmtiManageCapabilities.o jvmtiRedefineClasses.o jvmtiTagMap.o jvmtiThreadState.o klass.o klassKlass.o klassOop.o klassVtable.o lcm.o library_call.o linkResolver.o live.o loaderConstraints.o location.o locknode.o loopTransform.o loopnode.o loopopts.o lowMemoryDetector.o machnode.o management.o markOop.o markSweep.o matcher.o memRegion.o memnode.o memoryManager.o memoryPool.o memoryService.o memprofiler.o methodComparator.o methodDataKlass.o methodDataOop.o methodKlass.o methodLiveness.o methodOop.o monitorChunk.o mulnode.o multnode.o mutableSpace.o mutex.o mutexLocker.o mutex_bsd.o nativeInst_i486.o nativeLookup.o nmethod.o nmethod_i486.o node.o objArrayKlass.o objArrayKlassKlass.o objArrayOop.o objectMonitor_bsd.o objectStartArray.o onStackReplacement.o oop.o oopFactory.o oopMap.o oopMapCache.o oopRecorder.o opcodes.o orderAccess.o os.o osThread.o osThread_bsd.o os_bsd.o os_bsd_i486.o ostream.o output.o parGCAllocBuffer.o parMarkBitMap.o parNewGeneration.o parallelScavengeHeap.o parse1.o parse2.o parse3.o parseHelper.o pcDesc.o pcTasks.o perf.o perfData.o perfMemory.o perfMemory_bsd.o permGen.o phase.o phaseX.o placeholders.o port.o postaloc.o preserveException.o privilegedStack.o psAdaptiveSizePolicy.o psCompactionManager.o psGCAdaptivePolicyCounters.o psGenerationCounters.o psMarkSweep.o psMarkSweepDecorator.o psOldGen.o psParallelCompact.o psPermGen.o psPromotionLAB.o psPromotionManager.o psScavenge.o psTasks.o psVirtualspace.o psYoungGen.o rawMonitor.o recompilationMonitor.o referencePolicy.o referenceProcessor.o referenceProcessorMT.o reflection.o reflectionUtils.o reg_split.o regalloc.o register.o register_definitions_i486.o register_i486.o regmask.o relocInfo.o relocInfo_i486.o relocator.o resourceArea.o restore.o rewriter.o rframe.o rootnode.o runtime.o runtimeService.o runtime_i486.o safepoint.o safepoint_bsd_i486.o scopeDesc.o serialize.o set.o shared.o sharedHeap.o sharedRuntime.o sharedRuntimeTrig.o sharedRuntime_i486.o shared_i486.o signature.o sizes.o space.o spaceCounters.o specialized_oop_closures.o split_if.o stackMapFrame.o stackMapTable.o stackValue.o stackValueCollection.o statSampler.o stubCodeGenerator.o stubGenerator_i486.o stubRoutines.o stubRoutines_bsd.o stubRoutines_i486.o stubs.o subnode.o sweeper.o symbolKlass.o symbolOop.o symbolTable.o synchronizer.o systemDictionary.o task.o taskqueue.o templateTable.o templateTable_i486.o tenuredGeneration.o thread.o threadCodeBuffer.o threadCritical_bsd.o threadLS_bsd_i486.o threadLocalAllocBuffer.o threadLocalStorage.o threadService.o thread_bsd_i486.o timer.o train.o trainGeneration.o type.o typeArrayKlass.o typeArrayKlassKlass.o typeArrayOop.o universe.o unsafe.o utf8.o vectset.o verificationType.o verifier.o vframe.o vframeArray.o vframe_hp.o virtualspace.o vmError.o vmError_bsd.o vmStructs.o vmSymbols.o vmThread.o vm_operations.o vm_version.o vm_version_i486.o vtableStubs.o vtune_bsd.o workgroup.o xmlstream.o vtableStubs_i486.o   bsd_i486.o -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic -lm -pthread
Linking vm...
echo Stripping vm... ; \
        strip --strip-debug libjvm.so
Linking launcher...
echo Making signal interposition lib...; \
        gcc  -D_GNU_SOURCE -D_REENTRANT -static-libgcc -Xlinker -O1 -shared -fPIC -o libjsig.so /pkgsrc/lang/jdk15/work.i386/hotspot/src/os/bsd/vm/jsig.c
Making signal interposition lib...
if [ -d /pkgsrc/lang/jdk15/work.i386/hotspot/agent -a "i486" != "ia64" ] ; then \
           /usr/pkg/bin/gmake -f vm.make libsaproc.so; \
        fi
gmake[3]: Leaving directory `/pkgsrc/lang/jdk15/work.i386/control/build/bsd-i586/hotspot-i586/tmp/bsd_i486_compiler2/product'
All done.

gcc -shared -mimpure-text -fPIC -static-libgcc -Xlinker -O1 -Xlinker --version-script=/pkgsrc/lang/jdk15/work.i386/hotspot/build/bsd/makefiles/mapfile-vers-product -Xlinker -soname=libjvm.so -o libjvm.so accessFlags.o adjoiningGenerations.o adjoiningVirtualSpaces.o ageTable.o allocation.o aprofiler.o arguments.o array.o arrayKlass.o arrayKlassKlass.o arrayOop.o asPSOldGen.o asPSYoungGen.o assembler.o assembler_bsd_i486.o assembler_i486.o atomic.o biasedLocking.o binaryTreeDictionary.o bitMap.o blockOffsetTable.o bytecode.o bytecodeHistogram.o bytecodeStream.o bytecodeTracer.o bytecodes.o bytecodes_i486.o c1_AllocTable.o c1_AllocTable_i486.o c1_CacheLocals.o c1_CacheLocals_i486.o c1_Canonicalizer.o c1_CodeGenerator.o c1_CodeGenerator_i486.o c1_CodeStubs_i486.o c1_Compilation.o c1_Compiler.o c1_Defs.o c1_FrameMap.o c1_FrameMap_i486.o c1_GraphBuilder.o c1_IR.o c1_Instruction.o c1_InstructionPrinter.o c1_Items.o c1_Items_i486.o c1_LIR.o c1_LIRAssembler.o c1_LIRAssembler_i486.o c1_LIREmitter.o c1_LIREmitter_i486.o c1_LIROptimizer.o c1_Loops.o c1_MacroAssembler_i486.o c1_Optimizer.o c1_RInfo.o c1_RInfo_i486.o c1_RegAlloc.o c1_RegAlloc_i486.o c1_Runtime1.o c1_Runtime1_i486.o c1_ScanBlocks.o c1_ValueMap.o c1_ValueSet.o c1_ValueStack.o c1_ValueType.o c1_globals.o cInterpreter.o cSpaceCounters.o carRememberedSet.o cardTableExtension.o cardTableModRefBS.o cardTableRS.o cartable.o cha.o ciArray.o ciArrayKlass.o ciBytecodeStream.o ciConstant.o ciConstantPoolCache.o ciEnv.o ciExceptionHandler.o ciField.o ciFlags.o ciInstance.o ciInstanceKlass.o ciInstanceKlassKlass.o ciKlass.o ciKlassKlass.o ciMethod.o ciMethodData.o ciMethodKlass.o ciNullObject.o ciObjArrayKlass.o ciObjArrayKlassKlass.o ciObject.o ciObjectFactory.o ciOopMap.o ciSignature.o ciStreams.o ciSymbol.o ciSymbolKlass.o ciType.o ciTypeArray.o ciTypeArrayKlass.o ciTypeArrayKlassKlass.o ciUtilities.o classFileParser.o classFileStream.o classLoader.o classLoadingService.o classify.o cmsLockVerifier.o codeBlob.o codeBuffer.o codeCache.o collectedHeap.o collectorCounters.o collectorPolicy.o compactibleFreeListSpace.o compactingPermGenGen.o compilationPolicy.o compileBroker.o compileLog.o compiledIC.o compiledICHolderKlass.o compiledICHolderOop.o compilerOracle.o compressedStream.o concurrentMarkSweepGeneration.o concurrentMarkSweepThread.o constMethodKlass.o constMethodOop.o constantPoolKlass.o constantPoolOop.o constantTag.o cpCacheKlass.o cpCacheOop.o debug.o debugInfo.o debugInfoRec.o debug_i486.o defNewGeneration.o deoptimization.o depChecker_i486.o dictionary.o disassembler_i486.o dump.o dump_md.o events.o evmCompat.o exceptionHandlerTable.o exceptions.o extendedPC_i486.o fieldDescriptor.o fieldType.o filemap.o forte.o fprofiler.o frame.o frame_i486.o freeBlockDictionary.o freeChunk.o freeList.o gSpaceCounters.o gcCause.o gcLocker.o gcPolicyCounters.o gcStats.o gcTaskManager.o gcTaskThread.o gcUtil.o genCollectedHeap.o genMarkSweep.o genRemSet.o generateOopMap.o generation.o generationCounters.o generationSpec.o getThread_bsd_i486.o globalDefinitions.o globals.o growableArray.o handles.o hashtable.o heap.o heapDumper.o heapInspection.o histogram.o hpi.o hpi_bsd.o icBuffer.o icBuffer_i486.o icache.o icache_i486.o immutableSpace.o init.o instanceKlass.o instanceKlassKlass.o instanceOop.o instanceRefKlass.o interfaceSupport.o interp_masm_i486.o interpreter.o interpreterRT_i486.o interpreterRuntime.o interpreter_i486.o invocationCounter.o iterator.o java.o javaAssertions.o javaCalls.o javaClasses.o jni.o jniCheck.o jniFastGetField.o jniFastGetField_i486.o jniHandles.o jniId.o jvm.o jvm_bsd.o jvmdiEnter.o jvmdiEnterTrace.o jvmdiEventFromJvmtiEvent.o jvmdiFrame.o jvmpi.o jvmtiCodeBlobEvents.o jvmtiEnter.o jvmtiEnterTrace.o jvmtiEnv.o jvmtiEnvBase.o jvmtiEnvThreadState.o jvmtiEventController.o jvmtiExport.o jvmtiExtensions.o jvmtiGetLoadedClasses.o jvmtiImpl.o jvmtiManageCapabilities.o jvmtiRedefineClasses.o jvmtiTagMap.o jvmtiThreadState.o klass.o klassKlass.o klassOop.o klassVtable.o linkResolver.o loaderConstraints.o location.o lowMemoryDetector.o management.o markOop.o markSweep.o memRegion.o memoryManager.o memoryPool.o memoryService.o memprofiler.o methodComparator.o methodDataKlass.o methodDataOop.o methodKlass.o methodOop.o monitorChunk.o mutableSpace.o mutex.o mutexLocker.o mutex_bsd.o nativeInst_i486.o nativeLookup.o nmethod.o nmethod_i486.o objArrayKlass.o objArrayKlassKlass.o objArrayOop.o objectMonitor_bsd.o objectStartArray.o onStackReplacement.o oop.o oopFactory.o oopMap.o oopMapCache.o oopRecorder.o orderAccess.o os.o osThread.o osThread_bsd.o os_bsd.o os_bsd_i486.o ostream.o parGCAllocBuffer.o parMarkBitMap.o parNewGeneration.o parallelScavengeHeap.o pcDesc.o pcTasks.o perf.o perfData.o perfMemory.o perfMemory_bsd.o permGen.o placeholders.o preserveException.o privilegedStack.o psAdaptiveSizePolicy.o psCompactionManager.o psGCAdaptivePolicyCounters.o psGenerationCounters.o psMarkSweep.o psMarkSweepDecorator.o psOldGen.o psParallelCompact.o psPermGen.o psPromotionLAB.o psPromotionManager.o psScavenge.o psTasks.o psVirtualspace.o psYoungGen.o rawMonitor.o recompilationMonitor.o referencePolicy.o referenceProcessor.o referenceProcessorMT.o reflection.o reflectionUtils.o register.o register_definitions_i486.o register_i486.o relocInfo.o relocInfo_i486.o relocator.o resourceArea.o restore.o rewriter.o rframe.o runtimeService.o safepoint.o safepoint_bsd_i486.o scopeDesc.o serialize.o shared.o sharedHeap.o sharedRuntime.o sharedRuntimeTrig.o sharedRuntime_i486.o shared_i486.o signature.o sizes.o space.o spaceCounters.o specialized_oop_closures.o stackMapFrame.o stackMapTable.o stackValue.o stackValueCollection.o statSampler.o stubCodeGenerator.o stubGenerator_i486.o stubRoutines.o stubRoutines_bsd.o stubRoutines_i486.o stubs.o sweeper.o symbolKlass.o symbolOop.o symbolTable.o synchronizer.o systemDictionary.o task.o taskqueue.o templateTable.o templateTable_i486.o tenuredGeneration.o thread.o threadCodeBuffer.o threadCritical_bsd.o threadLS_bsd_i486.o threadLocalAllocBuffer.o threadLocalStorage.o threadService.o thread_bsd_i486.o timer.o train.o trainGeneration.o typeArrayKlass.o typeArrayKlassKlass.o typeArrayOop.o universe.o unsafe.o utf8.o verificationType.o verifier.o vframe.o vframeArray.o vframe_hp.o virtualspace.o vmError.o vmError_bsd.o vmStructs.o vmSymbols.o vmThread.o vm_operations.o vm_version.o vm_version_i486.o vtableStubs.o vtableStubs_i486.o vtune_bsd.o workgroup.o xmlstream.o c1_LIROptimizer_i486.o   bsd_i486.o -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic -lm -pthread
Linking vm...
echo Stripping vm... ; \
        strip --strip-debug libjvm.so
Stripping vm...
Linking launcher...
echo Making signal interposition lib...; \
        gcc  -D_GNU_SOURCE -D_REENTRANT -static-libgcc -Xlinker -O1 -shared -fPIC -o libjsig.so /pkgsrc/lang/jdk15/work.i386/hotspot/src/os/bsd/vm/jsig.c
Making signal interposition lib...
if [ -d /pkgsrc/lang/jdk15/work.i386/hotspot/agent -a "i486" != "ia64" ] ; then \
           /usr/pkg/bin/gmake -f vm.make libsaproc.so; \
        fi
gmake[3]: Leaving directory `/pkgsrc/lang/jdk15/work.i386/control/build/bsd-i586/hotspot-i586/tmp/bsd_i486_compiler1/product'
All done.


Re: Problems with JDK 1.5.0 patchset 6

by Christos Zoulas :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Aug 12, 10:45pm, veego@... (Bernd Ernesti) wrote:
-- Subject: Problems with JDK 1.5.0 patchset 6

| 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)
|
| It seems for me this is related to a problem with libgcc_s.
|
| partly nm output of libjvm.so:
|   0032ecbc t _Unwind_Backtrace
|   0032d8b8 t _Unwind_DeleteException
|   0032db08 t _Unwind_FindEnclosingFunction
|   00330544 t _Unwind_Find_FDE
|   0032f040 t _Unwind_ForcedUnwind
|   0032edf8 t _Unwind_ForcedUnwind_Phase2
|   0032d860 t _Unwind_GetCFA
|   0032d8a0 t _Unwind_GetDataRelBase
|   0032d914 t _Unwind_GetGR
|   0032d86c t _Unwind_GetIP
|   0032d888 t _Unwind_GetLanguageSpecificData
|   0032d894 t _Unwind_GetRegionStart
|   0032d8ac t _Unwind_GetTextRelBase
|   0032f0f0 t _Unwind_RaiseException
|   0032ed54 t _Unwind_RaiseException_Phase2
|   0032ef8c t _Unwind_Resume
|   0032f23c t _Unwind_Resume_or_Rethrow
|   0032d8d8 t _Unwind_SetGR
|   0032d878 t _Unwind_SetIP
| ldd output:
|   /pkgsrc/lang/jdk15/work.i386/control/build/bsd-i586/lib/i386/client/libjvm.so:
|         -lstdc++.6 => /usr/lib/libstdc++.so.6
|         -lm.0 => /usr/lib/libm387.so.0
|         -lm.0 => /usr/lib/libm.so.0
|         -lpthread.0 => /usr/lib/libpthread.so.0
|
| The missing libgcc_s is kind of expected because it is linked with -static-libgcc,
| but I found this page: http://www.trilithium.com/johan/2005/06/static-libstdc/
| Which makes me think that this won't work.
| Reading in the Changelog bought me to these lines:
|
| 2007-01-20 Saturday 17:49  christos
|         * hotspot/build/bsd/makefiles/: gcc.make, vm.make:
|         From Chuck Silvers:
|         Copy the logic for -static-libgcc to the hotspot build, eliminating the
|         need for the -lgcc_s hack.
| 2007-01-16 Tuesday 21:27  christos
|         * hotspot/build/bsd/makefiles/vm.make:
|         Add -lgcc_s for the NetBSD build. This is necessary for gcc-4 because
|         linking with -lstdc++ requires -lgcc_eh or -lgcc_s to do the exception
|         handling. Perhaps it is easier to just compile with g++ and let things
|         happen automatically rather than expose the ugly guts of the libraries.
|         Anyway, most platforms that use gcc-4 will need this until we fix it
|         properly.
| 2007-01-15 Monday 04:50  christos
|         * j2se/make/common/Defs-bsd.gmk:
|         XXX: For now link with -lgcc_s for _Unwind_Restore. This is on NetBSD with:
|             gcc version 4.1.2 20070110 prerelease (NetBSD nb1 20070110)
|
| Btw, this is with NetBSD-current on i386.
|
| Attached is the output for the linking of libjvm.so, where libjvm was linked two
| times (and I don't mean the libjvm_g.so).
|
| Thanks,
| Bernd
|
|
| --61jdw2sOBCFtR2d/
| Content-Type: text/plain; charset=us-ascii
| Content-Disposition: attachment; filename="libjvm.txt"
| Content-Transfer-Encoding: quoted-printable
|
| gcc -shared -mimpure-text -fPIC -static-libgcc -Xlinker -O1 -Xlinker --vers=
| ion-script=3D/pkgsrc/lang/jdk15/work.i386/hotspot/build/bsd/makefiles/mapfi=
| le-vers-product -Xlinker -soname=3Dlibjvm.so -o libjvm.so accessFlags.o ad_=
| i486.o ad_i486_clone.o ad_i486_expand.o ad_i486_format.o ad_i486_gen.o ad_i=
| 486_misc.o ad_i486_peephole.o ad_i486_pipeline.o adapters.o adapters_i486.o=
|  addnode.o adjoiningGenerations.o adjoiningVirtualSpaces.o ageTable.o alloc=
| ation.o aprofiler.o arguments.o array.o arrayKlass.o arrayKlassKlass.o arra=
| yOop.o asPSOldGen.o asPSYoungGen.o assembler.o assembler_bsd_i486.o assembl=
| er_i486.o atomic.o biasedLocking.o binaryTreeDictionary.o bitMap.o block.o =
| blockOffsetTable.o buildOopMap.o bytecode.o bytecodeHistogram.o bytecodeInf=
| o.o bytecodeStream.o bytecodeTracer.o bytecodes.o bytecodes_i486.o c2_globa=
| ls.o c2_init_i486.o c2compiler.o cInterpreter.o cSpaceCounters.o callGenera=
| tor.o callnode.o carRememberedSet.o cardTableExtension.o cardTableModRefBS.=
| o cardTableRS.o cartable.o cfgnode.o cha.o chaitin.o chaitin_bsd.o ciArray.=
| o ciArrayKlass.o ciConstant.o ciConstantPoolCache.o ciEnv.o ciExceptionHand=
| ler.o ciField.o ciFlags.o ciInstance.o ciInstanceKlass.o ciInstanceKlassKla=
| ss.o ciKlass.o ciKlassKlass.o ciMethod.o ciMethodData.o ciMethodKlass.o ciN=
| ullObject.o ciObjArrayKlass.o ciObjArrayKlassKlass.o ciObject.o ciObjectFac=
| tory.o ciOopMap.o ciSignature.o ciStreams.o ciSymbol.o ciSymbolKlass.o ciTy=
| pe.o ciTypeArray.o ciTypeArrayKlass.o ciTypeArrayKlassKlass.o ciTypeFlow.o =
| ciUtilities.o classFileParser.o classFileStream.o classLoader.o classLoadin=
| gService.o classes.o classify.o cmsLockVerifier.o coalesce.o codeBlob.o cod=
| eBuffer.o codeCache.o collectedHeap.o collectorCounters.o collectorPolicy.o=
|  compactibleFreeListSpace.o compactingPermGenGen.o compilationPolicy.o comp=
| ile.o compileBroker.o compileLog.o compiledIC.o compiledICHolderKlass.o com=
| piledICHolderOop.o compilerOracle.o compressedStream.o concurrentMarkSweepG=
| eneration.o concurrentMarkSweepThread.o connode.o constMethodKlass.o constM=
| ethodOop.o constantPoolKlass.o constantPoolOop.o constantTag.o cpCacheKlass=
| .o cpCacheOop.o debug.o debugInfo.o debugInfoRec.o debug_i486.o defNewGener=
| ation.o deoptimization.o depChecker_i486.o dfa_i486.o dict.o dictionary.o d=
| isassembler_i486.o divnode.o doCall.o domgraph.o dump.o dump_md.o events.o =
| evmCompat.o exceptionHandlerTable.o exceptions.o extendedPC_i486.o fieldDes=
| criptor.o fieldType.o filemap.o forte.o fprofiler.o frame.o frame_i486.o fr=
| eeBlockDictionary.o freeChunk.o freeList.o gSpaceCounters.o gcCause.o gcLoc=
| ker.o gcPolicyCounters.o gcStats.o gcTaskManager.o gcTaskThread.o gcUtil.o =
| gcm.o genCollectedHeap.o genMarkSweep.o genRemSet.o generateOopMap.o genera=
| teOptoStub.o generation.o generationCounters.o generationSpec.o getThread_b=
| sd_i486.o globalDefinitions.o globals.o graphKit.o growableArray.o handles.=
| o hashtable.o heap.o heapDumper.o heapInspection.o histogram.o hpi.o hpi_bs=
| d.o icBuffer.o icBuffer_i486.o icache.o icache_i486.o idealKit.o ifg.o ifno=
| de.o immutableSpace.o indexSet.o init.o instanceKlass.o instanceKlassKlass.=
| o instanceOop.o instanceRefKlass.o interfaceSupport.o interp_masm_i486.o in=
| terpreter.o interpreterRT_i486.o interpreterRuntime.o interpreter_i486.o in=
| vocationCounter.o iterator.o java.o javaAssertions.o javaCalls.o javaClasse=
| s.o jni.o jniCheck.o jniFastGetField.o jniFastGetField_i486.o jniHandles.o =
| jniId.o jvm.o jvm_bsd.o jvmdiEnter.o jvmdiEnterTrace.o jvmdiEventFromJvmtiE=
| vent.o jvmdiFrame.o jvmpi.o jvmtiCodeBlobEvents.o jvmtiEnter.o jvmtiEnterTr=
| ace.o jvmtiEnv.o jvmtiEnvBase.o jvmtiEnvThreadState.o jvmtiEventController.=
| o jvmtiExport.o jvmtiExtensions.o jvmtiGetLoadedClasses.o jvmtiImpl.o jvmti=
| ManageCapabilities.o jvmtiRedefineClasses.o jvmtiTagMap.o jvmtiThreadState.=
| o klass.o klassKlass.o klassOop.o klassVtable.o lcm.o library_call.o linkRe=
| solver.o live.o loaderConstraints.o location.o locknode.o loopTransform.o l=
| oopnode.o loopopts.o lowMemoryDetector.o machnode.o management.o markOop.o =
| markSweep.o matcher.o memRegion.o memnode.o memoryManager.o memoryPool.o me=
| moryService.o memprofiler.o methodComparator.o methodDataKlass.o methodData=
| Oop.o methodKlass.o methodLiveness.o methodOop.o monitorChunk.o mulnode.o m=
| ultnode.o mutableSpace.o mutex.o mutexLocker.o mutex_bsd.o nativeInst_i486.=
| o nativeLookup.o nmethod.o nmethod_i486.o node.o objArrayKlass.o objArrayKl=
| assKlass.o objArrayOop.o objectMonitor_bsd.o objectStartArray.o onStackRepl=
| acement.o oop.o oopFactory.o oopMap.o oopMapCache.o oopRecorder.o opcodes.o=
|  orderAccess.o os.o osThread.o osThread_bsd.o os_bsd.o os_bsd_i486.o ostrea=
| m.o output.o parGCAllocBuffer.o parMarkBitMap.o parNewGeneration.o parallel=
| ScavengeHeap.o parse1.o parse2.o parse3.o parseHelper.o pcDesc.o pcTasks.o =
| perf.o perfData.o perfMemory.o perfMemory_bsd.o permGen.o phase.o phaseX.o =
| placeholders.o port.o postaloc.o preserveException.o privilegedStack.o psAd=
| aptiveSizePolicy.o psCompactionManager.o psGCAdaptivePolicyCounters.o psGen=
| erationCounters.o psMarkSweep.o psMarkSweepDecorator.o psOldGen.o psParalle=
| lCompact.o psPermGen.o psPromotionLAB.o psPromotionManager.o psScavenge.o p=
| sTasks.o psVirtualspace.o psYoungGen.o rawMonitor.o recompilationMonitor.o =
| referencePolicy.o referenceProcessor.o referenceProcessorMT.o reflection.o =
| reflectionUtils.o reg_split.o regalloc.o register.o register_definitions_i4=
| 86.o register_i486.o regmask.o relocInfo.o relocInfo_i486.o relocator.o res=
| ourceArea.o restore.o rewriter.o rframe.o rootnode.o runtime.o runtimeServi=
| ce.o runtime_i486.o safepoint.o safepoint_bsd_i486.o scopeDesc.o serialize.=
| o set.o shared.o sharedHeap.o sharedRuntime.o sharedRuntimeTrig.o sharedRun=
| time_i486.o shared_i486.o signature.o sizes.o space.o spaceCounters.o speci=
| alized_oop_closures.o split_if.o stackMapFrame.o stackMapTable.o stackValue=
| .o stackValueCollection.o statSampler.o stubCodeGenerator.o stubGenerator_i=
| 486.o stubRoutines.o stubRoutines_bsd.o stubRoutines_i486.o stubs.o subnode=
| .o sweeper.o symbolKlass.o symbolOop.o symbolTable.o synchronizer.o systemD=
| ictionary.o task.o taskqueue.o templateTable.o templateTable_i486.o tenured=
| Generation.o thread.o threadCodeBuffer.o threadCritical_bsd.o threadLS_bsd_=
| i486.o threadLocalAllocBuffer.o threadLocalStorage.o threadService.o thread=
| _bsd_i486.o timer.o train.o trainGeneration.o type.o typeArrayKlass.o typeA=
| rrayKlassKlass.o typeArrayOop.o universe.o unsafe.o utf8.o vectset.o verifi=
| cationType.o verifier.o vframe.o vframeArray.o vframe_hp.o virtualspace.o v=
| mError.o vmError_bsd.o vmStructs.o vmSymbols.o vmThread.o vm_operations.o v=
| m_version.o vm_version_i486.o vtableStubs.o vtune_bsd.o workgroup.o xmlstre=
| am.o vtableStubs_i486.o   bsd_i486.o -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic -l=
| m -pthread
| Linking vm...
| echo Stripping vm... ; \
|         strip --strip-debug libjvm.so
| Linking launcher...
| echo Making signal interposition lib...; \
|         gcc  -D_GNU_SOURCE -D_REENTRANT -static-libgcc -Xlinker -O1 -shared=
|  -fPIC -o libjsig.so /pkgsrc/lang/jdk15/work.i386/hotspot/src/os/bsd/vm/jsi=
| g.c
| Making signal interposition lib...
| if [ -d /pkgsrc/lang/jdk15/work.i386/hotspot/agent -a "i486" !=3D "ia64" ] =
| ; then \
|            /usr/pkg/bin/gmake -f vm.make libsaproc.so; \
|         fi
| gmake[3]: Leaving directory `/pkgsrc/lang/jdk15/work.i386/control/build/bsd=
| -i586/hotspot-i586/tmp/bsd_i486_compiler2/product'
| All done.
|
| --61jdw2sOBCFtR2d/
| Content-Type: text/plain; charset=us-ascii
| Content-Disposition: attachment; filename="libjvm2.txt"
| Content-Transfer-Encoding: quoted-printable
|
| gcc -shared -mimpure-text -fPIC -static-libgcc -Xlinker -O1 -Xlinker --vers=
| ion-script=3D/pkgsrc/lang/jdk15/work.i386/hotspot/build/bsd/makefiles/mapfi=
| le-vers-product -Xlinker -soname=3Dlibjvm.so -o libjvm.so accessFlags.o adj=
| oiningGenerations.o adjoiningVirtualSpaces.o ageTable.o allocation.o aprofi=
| ler.o arguments.o array.o arrayKlass.o arrayKlassKlass.o arrayOop.o asPSOld=
| Gen.o asPSYoungGen.o assembler.o assembler_bsd_i486.o assembler_i486.o atom=
| ic.o biasedLocking.o binaryTreeDictionary.o bitMap.o blockOffsetTable.o byt=
| ecode.o bytecodeHistogram.o bytecodeStream.o bytecodeTracer.o bytecodes.o b=
| ytecodes_i486.o c1_AllocTable.o c1_AllocTable_i486.o c1_CacheLocals.o c1_Ca=
| cheLocals_i486.o c1_Canonicalizer.o c1_CodeGenerator.o c1_CodeGenerator_i48=
| 6.o c1_CodeStubs_i486.o c1_Compilation.o c1_Compiler.o c1_Defs.o c1_FrameMa=
| p.o c1_FrameMap_i486.o c1_GraphBuilder.o c1_IR.o c1_Instruction.o c1_Instru=
| ctionPrinter.o c1_Items.o c1_Items_i486.o c1_LIR.o c1_LIRAssembler.o c1_LIR=
| Assembler_i486.o c1_LIREmitter.o c1_LIREmitter_i486.o c1_LIROptimizer.o c1_=
| Loops.o c1_MacroAssembler_i486.o c1_Optimizer.o c1_RInfo.o c1_RInfo_i486.o =
| c1_RegAlloc.o c1_RegAlloc_i486.o c1_Runtime1.o c1_Runtime1_i486.o c1_ScanBl=
| ocks.o c1_ValueMap.o c1_ValueSet.o c1_ValueStack.o c1_ValueType.o c1_global=
| s.o cInterpreter.o cSpaceCounters.o carRememberedSet.o cardTableExtension.o=
|  cardTableModRefBS.o cardTableRS.o cartable.o cha.o ciArray.o ciArrayKlass.=
| o ciBytecodeStream.o ciConstant.o ciConstantPoolCache.o ciEnv.o ciException=
| Handler.o ciField.o ciFlags.o ciInstance.o ciInstanceKlass.o ciInstanceKlas=
| sKlass.o ciKlass.o ciKlassKlass.o ciMethod.o ciMethodData.o ciMethodKlass.o=
|  ciNullObject.o ciObjArrayKlass.o ciObjArrayKlassKlass.o ciObject.o ciObjec=
| tFactory.o ciOopMap.o ciSignature.o ciStreams.o ciSymbol.o ciSymbolKlass.o =
| ciType.o ciTypeArray.o ciTypeArrayKlass.o ciTypeArrayKlassKlass.o ciUtiliti=
| es.o classFileParser.o classFileStream.o classLoader.o classLoadingService.=
| o classify.o cmsLockVerifier.o codeBlob.o codeBuffer.o codeCache.o collecte=
| dHeap.o collectorCounters.o collectorPolicy.o compactibleFreeListSpace.o co=
| mpactingPermGenGen.o compilationPolicy.o compileBroker.o compileLog.o compi=
| ledIC.o compiledICHolderKlass.o compiledICHolderOop.o compilerOracle.o comp=
| ressedStream.o concurrentMarkSweepGeneration.o concurrentMarkSweepThread.o =
| constMethodKlass.o constMethodOop.o constantPoolKlass.o constantPoolOop.o c=
| onstantTag.o cpCacheKlass.o cpCacheOop.o debug.o debugInfo.o debugInfoRec.o=
|  debug_i486.o defNewGeneration.o deoptimization.o depChecker_i486.o diction=
| ary.o disassembler_i486.o dump.o dump_md.o events.o evmCompat.o exceptionHa=
| ndlerTable.o exceptions.o extendedPC_i486.o fieldDescriptor.o fieldType.o f=
| ilemap.o forte.o fprofiler.o frame.o frame_i486.o freeBlockDictionary.o fre=
| eChunk.o freeList.o gSpaceCounters.o gcCause.o gcLocker.o gcPolicyCounters.=
| o gcStats.o gcTaskManager.o gcTaskThread.o gcUtil.o genCollectedHeap.o genM=
| arkSweep.o genRemSet.o generateOopMap.o generation.o generationCounters.o g=
| enerationSpec.o getThread_bsd_i486.o globalDefinitions.o globals.o growable=
| Array.o handles.o hashtable.o heap.o heapDumper.o heapInspection.o histogra=
| m.o hpi.o hpi_bsd.o icBuffer.o icBuffer_i486.o icache.o icache_i486.o immut=
| ableSpace.o init.o instanceKlass.o instanceKlassKlass.o instanceOop.o insta=
| nceRefKlass.o interfaceSupport.o interp_masm_i486.o interpreter.o interpret=
| erRT_i486.o interpreterRuntime.o interpreter_i486.o invocationCounter.o ite=
| rator.o java.o javaAssertions.o javaCalls.o javaClasses.o jni.o jniCheck.o =
| jniFastGetField.o jniFastGetField_i486.o jniHandles.o jniId.o jvm.o jvm_bsd=
| .o jvmdiEnter.o jvmdiEnterTrace.o jvmdiEventFromJvmtiEvent.o jvmdiFrame.o j=
| vmpi.o jvmtiCodeBlobEvents.o jvmtiEnter.o jvmtiEnterTrace.o jvmtiEnv.o jvmt=
| iEnvBase.o jvmtiEnvThreadState.o jvmtiEventController.o jvmtiExport.o jvmti=
| Extensions.o jvmtiGetLoadedClasses.o jvmtiImpl.o jvmtiManageCapabilities.o =
| jvmtiRedefineClasses.o jvmtiTagMap.o jvmtiThreadState.o klass.o klassKlass.=
| o klassOop.o klassVtable.o linkResolver.o loaderConstraints.o location.o lo=
| wMemoryDetector.o management.o markOop.o markSweep.o memRegion.o memoryMana=
| ger.o memoryPool.o memoryService.o memprofiler.o methodComparator.o methodD=
| ataKlass.o methodDataOop.o methodKlass.o methodOop.o monitorChunk.o mutable=
| Space.o mutex.o mutexLocker.o mutex_bsd.o nativeInst_i486.o nativeLookup.o =
| nmethod.o nmethod_i486.o objArrayKlass.o objArrayKlassKlass.o objArrayOop.o=
|  objectMonitor_bsd.o objectStartArray.o onStackReplacement.o oop.o oopFacto=
| ry.o oopMap.o oopMapCache.o oopRecorder.o orderAccess.o os.o osThread.o osT=
| hread_bsd.o os_bsd.o os_bsd_i486.o ostream.o parGCAllocBuffer.o parMarkBitM=
| ap.o parNewGeneration.o parallelScavengeHeap.o pcDesc.o pcTasks.o perf.o pe=
| rfData.o perfMemory.o perfMemory_bsd.o permGen.o placeholders.o preserveExc=
| eption.o privilegedStack.o psAdaptiveSizePolicy.o psCompactionManager.o psG=
| CAdaptivePolicyCounters.o psGenerationCounters.o psMarkSweep.o psMarkSweepD=
| ecorator.o psOldGen.o psParallelCompact.o psPermGen.o psPromotionLAB.o psPr=
| omotionManager.o psScavenge.o psTasks.o psVirtualspace.o psYoungGen.o rawMo=
| nitor.o recompilationMonitor.o referencePolicy.o referenceProcessor.o refer=
| enceProcessorMT.o reflection.o reflectionUtils.o register.o register_defini=
| tions_i486.o register_i486.o relocInfo.o relocInfo_i486.o relocator.o resou=
| rceArea.o restore.o rewriter.o rframe.o runtimeService.o safepoint.o safepo=
| int_bsd_i486.o scopeDesc.o serialize.o shared.o sharedHeap.o sharedRuntime.=
| o sharedRuntimeTrig.o sharedRuntime_i486.o shared_i486.o signature.o sizes.=
| o space.o spaceCounters.o specialized_oop_closures.o stackMapFrame.o stackM=
| apTable.o stackValue.o stackValueCollection.o statSampler.o stubCodeGenerat=
| or.o stubGenerator_i486.o stubRoutines.o stubRoutines_bsd.o stubRoutines_i4=
| 86.o stubs.o sweeper.o symbolKlass.o symbolOop.o symbolTable.o synchronizer=
| .o systemDictionary.o task.o taskqueue.o templateTable.o templateTable_i486=
| .o tenuredGeneration.o thread.o threadCodeBuffer.o threadCritical_bsd.o thr=
| eadLS_bsd_i486.o threadLocalAllocBuffer.o threadLocalStorage.o threadServic=
| e.o thread_bsd_i486.o timer.o train.o trainGeneration.o typeArrayKlass.o ty=
| peArrayKlassKlass.o typeArrayOop.o universe.o unsafe.o utf8.o verificationT=
| ype.o verifier.o vframe.o vframeArray.o vframe_hp.o virtualspace.o vmError.=
| o vmError_bsd.o vmStructs.o vmSymbols.o vmThread.o vm_operations.o vm_versi=
| on.o vm_version_i486.o vtableStubs.o vtableStubs_i486.o vtune_bsd.o workgro=
| up.o xmlstream.o c1_LIROptimizer_i486.o   bsd_i486.o -Wl,-Bstatic -lstdc++ =
| -Wl,-Bdynamic -lm -pthread
| Linking vm...
| echo Stripping vm... ; \
|         strip --strip-debug libjvm.so
| Stripping vm...
| Linking launcher...
| echo Making signal interposition lib...; \
|         gcc  -D_GNU_SOURCE -D_REENTRANT -static-libgcc -Xlinker -O1 -shared=
|  -fPIC -o libjsig.so /pkgsrc/lang/jdk15/work.i386/hotspot/src/os/bsd/vm/jsi=
| g.c
| Making signal interposition lib...
| if [ -d /pkgsrc/lang/jdk15/work.i386/hotspot/agent -a "i486" !=3D "ia64" ] =
| ; then \
|            /usr/pkg/bin/gmake -f vm.make libsaproc.so; \
|         fi
| gmake[3]: Leaving directory `/pkgsrc/lang/jdk15/work.i386/control/build/bsd=
| -i586/hotspot-i586/tmp/bsd_i486_compiler1/product'
| All done.
|

Something must have changed. Unfortunately I am on vacation until Sep 6th
and I will not have time to look at it.

christos

Re: Problems with JDK 1.5.0 patchset 6

by Bernd Ernesti-50 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

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


Re: Problems with JDK 1.5.0 patchset 6

by Geert Hendrickx :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Sun, Aug 19, 2007 at 03:00:55PM +0200, Bernd Ernesti wrote:

> 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


Hi Bernd, Christos,

had any luck yet with this?  I encountered the same error when trying to
bootstrap a native NetBSD/amd64 JDK on NetBSD 5.0_BETA.

        Geert



Re: Problems with JDK 1.5.0 patchset 6

by Bernd Ernesti-50 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Wed, Jan 14, 2009 at 10:33:57PM +0100, Geert Hendrickx wrote:
[..]

> Hi Bernd, Christos,
>
> had any luck yet with this?  I encountered the same error when trying to
> bootstrap a native NetBSD/amd64 JDK on NetBSD 5.0_BETA.

I use my own version of that package, which I updated to patchset 8 and
that works fine for me. Where 1.5.0_14 is now old and there is no newer
patchset available which would work on a newer 1.5 jdk :(
The 'only' problem is that it is for firefox 2 and not firefox 3.

I think freebsd is working on openjdk, but I think not all NetBSD patches
are part of it because of missing agreements.

Bernd


Re: Problems with JDK 1.5.0 patchset 6

by Tobias Nygren-4 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Wed, 14 Jan 2009 22:47:07 +0100
Bernd Ernesti <veego@...> wrote:

> On Wed, Jan 14, 2009 at 10:33:57PM +0100, Geert Hendrickx wrote:
> [..]
>
> > Hi Bernd, Christos,
> >
> > had any luck yet with this?  I encountered the same error when trying to
> > bootstrap a native NetBSD/amd64 JDK on NetBSD 5.0_BETA.
>
> I use my own version of that package, which I updated to patchset 8 and
> that works fine for me. Where 1.5.0_14 is now old and there is no newer
> patchset available which would work on a newer 1.5 jdk :(
> The 'only' problem is that it is for firefox 2 and not firefox 3.
>
> I think freebsd is working on openjdk, but I think not all NetBSD patches
> are part of it because of missing agreements.

Native OpenJDK for NetBSD is in wip/openjdk. Sort of works, depending on
what you want to accomplish with it. No browser plugin yet. Any help
welcome :-)

-Tobias

Re: Problems with JDK 1.5.0 patchset 6

by Christos Zoulas :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Jan 14, 10:33pm, ghen@... (Geert Hendrickx) wrote:
-- Subject: Re: Problems with JDK 1.5.0 patchset 6

| On Sun, Aug 19, 2007 at 03:00:55PM +0200, Bernd Ernesti wrote:
| > 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

Add -shared-libgcc

christos

Re: Problems with JDK 1.5.0 patchset 6

by Geert Hendrickx :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Wed, Jan 14, 2009 at 05:51:07PM -0500, Christos Zoulas wrote:

> On Jan 14, 10:33pm, ghen@... (Geert Hendrickx) wrote:
> -- Subject: Re: Problems with JDK 1.5.0 patchset 6
>
> | On Sun, Aug 19, 2007 at 03:00:55PM +0200, Bernd Ernesti wrote:
> | > 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
>
> Add -shared-libgcc


I'm still getting the same error...

        Geert



Re: Problems with JDK 1.5.0 patchset 6

by Christos Zoulas :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Jan 15,  1:45pm, ghen@... (Geert Hendrickx) wrote:
-- Subject: Re: Problems with JDK 1.5.0 patchset 6

| I'm still getting the same error...

Annoying. I am too busy to look right now, sorry.

christos