Hi, I've been trying to compile the latest OpenJDK7 and have run into a problem I don't understand. Here is the last part of the compile - I can attach the entire log if needed. It seems that it should link the libjvm.dylib and then create a symbolic link but it seems to just create a sym link to itself - thus the "Too many levels of symbolic links" error. Looking at it now it seems to fail on the missing symbol and then create the symlinks.
The build file in question is bsd-port/hotspot/make/bsd/makefiles/vm.make Any help appreciated. g++-4.0 -D_ALLBSD_SOURCE -D_GNU_SOURCE -DCC_INTERP -DZERO -DPPC -DZERO_LIBARCH=\"ppc\" -DPRODUCT -I. -I../generated/adfiles -I../generated/jvmtifiles -I/Users/eric/bsdport/bsd-port/hotspot/src/share/vm/asm -I/Users/eric/bsdport/bsd-port/hotspot/src/share/vm/c1 -I/Users/eric/bsdport/bsd-port/hotspot/src/share/vm/ci -I/Users/eric/bsdport/bsd-port/hotspot/src/share/vm/classfile -I/Users/eric/bsdport/bsd-port/hotspot/src/share/vm/code -I/Users/eric/bsdport/bsd-port/hotspot/src/share/vm/compiler -I/Users/eric/bsdport/bsd-port/hotspot/src/share/vm/gc_implementation -I/Users/eric/bsdport/bsd-port/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep -I/Users/eric/bsdport/bsd-port/hotspot/src/share/vm/gc_implementation/g1 -I/Users/eric/bsdport/bsd-port/hotspot/src/share/vm/gc_implementation/parallelScavenge -I/Users/eric/bsdport/bsd-port/hotspot/src/share/vm/gc_implementation/parNew -I/Users/eric/bsdport/bsd-port/hotspot/src/share/vm/gc_implementation/shared -I/Users/eric/bsdport/bsd-port/hotspot/src/share/vm/gc_interface -I/Users/eric/bsdport/bsd-port/hotspot/src/share/vm/interpreter -I/Users/eric/bsdport/bsd-port/hotspot/src/share/vm/memory -I/Users/eric/bsdport/bsd-port/hotspot/src/share/vm/oops -I/Users/eric/bsdport/bsd-port/hotspot/src/share/vm/prims -I/Users/eric/bsdport/bsd-port/hotspot/src/share/vm/runtime -I/Users/eric/bsdport/bsd-port/hotspot/src/share/vm/services -I/Users/eric/bsdport/bsd-port/hotspot/src/share/vm/shark -I/Users/eric/bsdport/bsd-port/hotspot/src/share/vm/utilities -I/Users/eric/bsdport/bsd-port/hotspot/src/cpu/zero/vm -I/Users/eric/bsdport/bsd-port/hotspot/src/os/bsd/vm -I/Users/eric/bsdport/bsd-port/hotspot/src/os_cpu/bsd_zero/vm -I../generated -DHOTSPOT_RELEASE_VERSION="\"20.0-b03\"" -DHOTSPOT_BUILD_TARGET="\"product\"" -DHOTSPOT_BUILD_USER="\"eric\"" -DHOTSPOT_LIB_ARCH=\"ppc\" -DJRE_RELEASE_VERSION="\"1.7.0-internal-eric_2011_01_03_15_57-b00\"" -DHOTSPOT_VM_DISTRO="\"OpenJDK\"" -I/usr/include/ffi -fPIC -fno-rtti -fno-exceptions -pthread -fcheck-new -m32 -pipe -O3 -fno-strict-aliasing -I/usr/local/include -Werror -Wpointer-arith -Wconversion -Wsign-compare -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -c -o stack_zero.o /Users/eric/bsdport/bsd-port/hotspot/src/cpu/zero/vm/stack_zero.cpp Compiling /Users/eric/bsdport/bsd-port/hotspot/src/share/vm/runtime/vm_version.cpp rm -f vm_version.o g++-4.0 -D_ALLBSD_SOURCE -D_GNU_SOURCE -DCC_INTERP -DZERO -DPPC -DZERO_LIBARCH=\"ppc\" -DPRODUCT -I. -I../generated/adfiles -I../generated/jvmtifiles -I/Users/eric/bsdport/bsd-port/hotspot/src/share/vm/asm -I/Users/eric/bsdport/bsd-port/hotspot/src/share/vm/c1 -I/Users/eric/bsdport/bsd-port/hotspot/src/share/vm/ci -I/Users/eric/bsdport/bsd-port/hotspot/src/share/vm/classfile -I/Users/eric/bsdport/bsd-port/hotspot/src/share/vm/code -I/Users/eric/bsdport/bsd-port/hotspot/src/share/vm/compiler -I/Users/eric/bsdport/bsd-port/hotspot/src/share/vm/gc_implementation -I/Users/eric/bsdport/bsd-port/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep -I/Users/eric/bsdport/bsd-port/hotspot/src/share/vm/gc_implementation/g1 -I/Users/eric/bsdport/bsd-port/hotspot/src/share/vm/gc_implementation/parallelScavenge -I/Users/eric/bsdport/bsd-port/hotspot/src/share/vm/gc_implementation/parNew -I/Users/eric/bsdport/bsd-port/hotspot/src/share/vm/gc_implementation/shared -I/Users/eric/bsdport/bsd-port/hotspot/src/share/vm/gc_interface -I/Users/eric/bsdport/bsd-port/hotspot/src/share/vm/interpreter -I/Users/eric/bsdport/bsd-port/hotspot/src/share/vm/memory -I/Users/eric/bsdport/bsd-port/hotspot/src/share/vm/oops -I/Users/eric/bsdport/bsd-port/hotspot/src/share/vm/prims -I/Users/eric/bsdport/bsd-port/hotspot/src/share/vm/runtime -I/Users/eric/bsdport/bsd-port/hotspot/src/share/vm/services -I/Users/eric/bsdport/bsd-port/hotspot/src/share/vm/shark -I/Users/eric/bsdport/bsd-port/hotspot/src/share/vm/utilities -I/Users/eric/bsdport/bsd-port/hotspot/src/cpu/zero/vm -I/Users/eric/bsdport/bsd-port/hotspot/src/os/bsd/vm -I/Users/eric/bsdport/bsd-port/hotspot/src/os_cpu/bsd_zero/vm -I../generated -DHOTSPOT_RELEASE_VERSION="\"20.0-b03\"" -DHOTSPOT_BUILD_TARGET="\"product\"" -DHOTSPOT_BUILD_USER="\"eric\"" -DHOTSPOT_LIB_ARCH=\"ppc\" -DJRE_RELEASE_VERSION="\"1.7.0-internal-eric_2011_01_03_15_57-b00\"" -DHOTSPOT_VM_DISTRO="\"OpenJDK\"" -I/usr/include/ffi -fPIC -fno-rtti -fno-exceptions -pthread -fcheck-new -m32 -pipe -O3 -fno-strict-aliasing -I/usr/local/include -Werror -Wpointer-arith -Wconversion -Wsign-compare -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -c -o vm_version.o /Users/eric/bsdport/bsd-port/hotspot/src/share/vm/runtime/vm_version.cpp { \ echo Linking vm...; \ \ g++-4.0 -m32 -dynamiclib -fPIC \ -Xlinker -rpath -Xlinker @loader_path/. -Xlinker -rpath -Xlinker @loader_path/.. -Xlinker -install_name -Xlinker @rpath/libjvm.dylib -o libjvm.dylib abstractCompiler.o accessFlags.o adaptiveSizePolicy.o adjoiningGenerations.o adjoiningVirtualSpaces.o ageTable.o allocation.o allocationStats.o aprofiler.o arguments.o array.o arrayKlass.o arrayKlassKlass.o arrayOop.o asPSOldGen.o asPSYoungGen.o asParNewGeneration.o assembler.o assembler_bsd_zero.o assembler_zero.o atomic.o attachListener.o attachListener_bsd.o barrierSet.o basicLock.o biasedLocking.o binaryTreeDictionary.o bitMap.o blockOffsetTable.o bytecode.o bytecodeHistogram.o bytecodeInterpreter.o bytecodeInterpreterWithChecks.o bytecodeInterpreter_zero.o bytecodeStream.o bytecodeTracer.o bytecodes.o bytecodes_zero.o cSpaceCounters.o cardTableExtension.o cardTableModRefBS.o cardTableRS.o ciArray.o ciArrayKlass.o ciCPCache.o ciCallSite.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 ciMethodBlocks.o ciMethodData.o ciMethodHandle.o ciMethodKlass.o ciNullObject.o ciObjArray.o ciObjArrayKlass.o ciObjArrayKlassKlass.o ciObject.o ciObjectFactory.o ciSignature.o ciStreams.o ciSymbol.o ciSymbolKlass.o ciType.o ciTypeArray.o ciTypeArrayKlass.o ciTypeArrayKlassKlass.o ciUtilities.o classFileError.o classFileParser.o classFileStream.o classLoader.o classLoadingService.o classify.o cmsAdaptiveSizePolicy.o cmsCollectorPolicy.o cmsGCAdaptivePolicyCounters.o cmsLockVerifier.o cmsPermGen.o codeBlob.o codeBuffer.o codeCache.o collectedHeap.o collectionSetChooser.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 concurrentG1Refine.o concurrentG1RefineThread.o concurrentGCThread.o concurrentMark.o concurrentMarkSweepGeneration.o concurrentMarkSweepThread.o concurrentMarkThread.o concurrentZFThread.o constMethodKlass.o constMethodOop.o constantPoolKlass.o constantPoolOop.o constantTag.o copy.o cpCacheKlass.o cpCacheOop.o cppInterpreter.o cppInterpreter_zero.o debug.o debugInfo.o debugInfoRec.o debug_zero.o defNewGeneration.o deoptimization.o depChecker_zero.o dependencies.o dictionary.o dirtyCardQueue.o disassembler.o dtraceAttacher.o dtraceJSDT.o dtraceJSDT_bsd.o dump.o dump_zero.o events.o evmCompat.o exceptionHandlerTable.o exceptions.o fieldDescriptor.o fieldType.o filemap.o forte.o fprofiler.o frame.o frame_zero.o freeBlockDictionary.o freeChunk.o freeList.o g1BlockOffsetTable.o g1CollectedHeap.o g1CollectorPolicy.o g1MMUTracker.o g1MarkSweep.o g1MemoryPool.o g1RemSet.o g1SATBCardTableModRefBS.o g1_globals.o gSpaceCounters.o gcAdaptivePolicyCounters.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 globalDefinitions.o globals.o growableArray.o handles.o hashtable.o heap.o heapDumper.o heapInspection.o heapRegion.o heapRegionRemSet.o heapRegionSeq.o histogram.o hpi.o hpi_bsd.o icBuffer.o icBuffer_zero.o icache.o icache_zero.o immutableSpace.o init.o instanceKlass.o instanceKlassKlass.o instanceOop.o instanceRefKlass.o intHisto.o interfaceSupport.o interp_masm_zero.o interpreter.o interpreterRT_zero.o interpreterRuntime.o interpreter_zero.o invocationCounter.o iterator.o java.o javaAssertions.o javaCalls.o javaClasses.o jni.o jniCheck.o jniFastGetField.o jniFastGetField_zero.o jniHandles.o jniPeriodicChecker.o jvm.o jvm_bsd.o jvmtiClassFileReconstituter.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 jvmtiRawMonitor.o jvmtiRedefineClasses.o jvmtiTagMap.o jvmtiThreadState.o jvmtiTrace.o jvmtiUtil.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 methodHandleWalk.o methodHandles.o methodHandles_zero.o methodKlass.o methodLiveness.o methodOop.o monitorChunk.o mutableNUMASpace.o mutableSpace.o mutex.o mutexLocker.o mutex_bsd.o nativeInst_zero.o nativeLookup.o nmethod.o numberSeq.o objArrayKlass.o objArrayKlassKlass.o objArrayOop.o objectMonitor.o objectStartArray.o oop.o oopFactory.o oopMap.o oopMapCache.o oopRecorder.o oopsHierarchy.o orderAccess.o os.o osThread.o osThread_bsd.o os_bsd.o os_bsd_zero.o ostream.o parCardTableModRefBS.o parGCAllocBuffer.o parMarkBitMap.o parNewGeneration.o parallelScavengeHeap.o park.o pcDesc.o pcTasks.o perf.o perfData.o perfMemory.o perfMemory_bsd.o permGen.o placeholders.o preserveException.o privilegedStack.o promotionInfo.o psAdaptiveSizePolicy.o psCompactionManager.o psGCAdaptivePolicyCounters.o psGenerationCounters.o psMarkSweep.o psMarkSweepDecorator.o psMemoryPool.o psOldGen.o psParallelCompact.o psPermGen.o psPromotionLAB.o psPromotionManager.o psScavenge.o psTasks.o psVirtualspace.o psYoungGen.o ptrQueue.o referencePolicy.o referenceProcessor.o reflection.o reflectionUtils.o register.o register_definitions_zero.o register_zero.o relocInfo.o relocInfo_zero.o relocator.o resolutionErrors.o resourceArea.o restore.o rewriter.o rframe.o runtimeService.o safepoint.o satbQueue.o scopeDesc.o serialize.o sharedHeap.o sharedRuntime.o sharedRuntimeTrans.o sharedRuntimeTrig.o sharedRuntime_zero.o signature.o simpleThresholdPolicy.o sizes.o space.o spaceCounters.o spaceDecorator.o sparsePRT.o specialized_oop_closures.o stackMapFrame.o stackMapTable.o stackValue.o stackValueCollection.o statSampler.o stubCodeGenerator.o stubGenerator_zero.o stubRoutines.o stubRoutines_bsd.o stubRoutines_zero.o stubs.o survRateGroup.o sweeper.o symbolKlass.o symbolOop.o symbolTable.o synchronizer.o systemDictionary.o task.o taskqueue.o templateInterpreter.o templateInterpreter_zero.o templateTable.o templateTable_zero.o tenuredGeneration.o thread.o threadCritical_bsd.o threadLS_bsd_zero.o threadLocalAllocBuffer.o threadLocalStorage.o threadService.o thread_bsd_zero.o timer.o typeArrayKlass.o typeArrayKlassKlass.o typeArrayOop.o unhandledOops.o universe.o unsafe.o utf8.o verificationType.o verifier.o vframe.o vframeArray.o vframe_hp.o virtualspace.o vmCMSOperations.o vmError.o vmError_bsd.o vmGCOperations.o vmPSOperations.o vmStructs.o vmSymbols.o vmThread.o vm_operations.o vm_operations_g1.o vm_version.o vm_version_bsd_zero.o vm_version_zero.o vmreg.o vmreg_zero.o vtableStubs.o vtableStubs_zero.o workgroup.o xmlstream.o yieldingWorkgroup.o stack_zero.o -L/usr/local/lib -lffi -lm -pthread ; \ \ rm -f libjvm.dylib.1; ln -s libjvm.dylib libjvm.dylib.1; \ [ -f libjvm.dylib ] || { ln -s libjvm.dylib libjvm.dylib; ln -s libjvm.dylib.1 libjvm.dylib.1; }; \ } Undefined symbols: "os::print_register_info(outputStream*, void*)", referenced from: VMError::report(outputStream*) in vmError.o ld: symbol(s) not found collect2: ld returned 1 exit status ln: accessing `libjvm.dylib.1': Too many levels of symbolic links make[6]: *** [libjvm.dylib] Error 1 make[5]: *** [the_vm] Error 2 make[4]: *** [productzero] Error 2 make[3]: *** [generic_buildzero] Error 2 make[2]: *** [productzero] Error 2 make[1]: *** [hotspot-build] Error 2