Subject: Re: Problems with JDK 1.5.0 patchset 6
To: Bernd Ernesti <>
From: Christos Zoulas <>
List: netbsd-java
Date: 08/13/2007 10:46:56
On Aug 12, 10:45pm, (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/
| rm -f /pkgsrc/lang/jdk15/work.i386/control/build/bsd-i586/tmp/sun/
| /pkgsrc/lang/jdk15/work.i386/control/build/bsd-i586/bin/java -classpath ../../../tools/CompileProperties CompileProperties ../../../../src/share/classes/com/sun/tools/javac/resources/ /pkgsrc/lang/jdk15/work.i386/control/build/bsd-i586/gensrc/com/sun/tools/javac/resources/
| dl failure on line 730Error: failed /pkgsrc/lang/jdk15/work.i386/control/build/bsd-i586/lib/i386/client/, because /usr/lib/ Undefined PLT symbol "_Unwind_GetIP" (symnum = 161)
| It seems for me this is related to a problem with libgcc_s.
| partly nm output of
|   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/
|         -lstdc++.6 => /usr/lib/
|         -lm.0 => /usr/lib/
|         -lm.0 => /usr/lib/
|         -lpthread.0 => /usr/lib/
| The missing libgcc_s is kind of expected because it is linked with -static-libgcc,
| but I found this page:
| 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, where libjvm was linked two
| times (and I don't mean the
| 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 -o 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
| Linking launcher...
| echo Making signal interposition lib...; \
|         gcc  -D_GNU_SOURCE -D_REENTRANT -static-libgcc -Xlinker -O1 -shared=
|  -fPIC -o /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; \
|         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 -o 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
| Stripping vm...
| Linking launcher...
| echo Making signal interposition lib...; \
|         gcc  -D_GNU_SOURCE -D_REENTRANT -static-libgcc -Xlinker -O1 -shared=
|  -fPIC -o /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; \
|         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.