Mac OS PPC link failure

Eric Richardson ekrichardson at gmail.com
Tue Jan 4 13:52:11 PST 2011


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



More information about the bsd-port-dev mailing list