objc linkage problems on Darwin PPC with -m64
Jack Howarth
howarth@bromo.msbb.uc.edu
Sat Sep 16 15:33:00 GMT 2006
I finally got around to building and testing the objc
support in gcc on Darwin PPC at -m64. The results aren't good
with 634 additional failures compared to the 10 at -m32. These
seem to be linkage issues of the form below as shown in...
http://gcc.gnu.org/ml/gcc-testresults/2006-09/msg00844.html
testcase /sw/src/fink.build/gcc4-4.1.9999-20060915/gcc-4.2-20060915/gcc/testsuite/objc/compile/compile.exp completed in 2
seconds
Running /sw/src/fink.build/gcc4-4.1.9999-20060915/gcc-4.2-20060915/gcc/testsuite/objc/execute/exceptions/exceptions.exp .
..
set_ld_library_path_env_vars: ld_library_path=.::/sw/src/fink.build/gcc4-4.1.9999-20060915/darwin_objdir/gcc:/sw/src/fink
.build/gcc4-4.1.9999-20060915/darwin_objdir/gcc:/sw/src/fink.build/gcc4-4.1.9999-20060915/darwin_objdir/gcc:/sw/src/fink.
build/gcc4-4.1.9999-20060915/darwin_objdir/gcc:/sw/src/fink.build/gcc4-4.1.9999-20060915/darwin_objdir/gcc:/sw/src/fink.b
uild/gcc4-4.1.9999-20060915/darwin_objdir/gcc:/sw/src/fink.build/gcc4-4.1.9999-20060915/darwin_objdir/gcc:/sw/src/fink.bu
ild/gcc4-4.1.9999-20060915/darwin_objdir/gcc
Executing on host: /sw/src/fink.build/gcc4-4.1.9999-20060915/darwin_objdir/gcc/xgcc -B/sw/src/fink.build/gcc4-4.1.9999-20
060915/darwin_objdir/gcc/ /sw/src/fink.build/gcc4-4.1.9999-20060915/gcc-4.2-20060915/gcc/testsuite/objc/execute/exception
s/catchall-1.m -w -O0 -fobjc-exceptions -lobjc -lm -m64 -o /sw/src/fink.build/gcc4-4.1.9999-20060915/darwin_objdir/
gcc/testsuite/objc/catchall-1.x0 (timeout = 300)
ld64 warning: in /usr/lib/libobjc.dylib, file is not of required architecture
Undefined symbols:
_objc_exception_throw, referenced from:
_test in ccVj9eiG.o
_test in ccVj9eiG.o
_objc_exception_try_exit, referenced from:
_test in ccVj9eiG.o
_objc_exception_extract, referenced from:
_test in ccVj9eiG.o
_test in ccVj9eiG.o
.objc_class_name_Object, referenced from:
literal-pointer@__OBJC@__cls_refs@Object in ccVj9eiG.o
.objc_class_name_Frob in ccVj9eiG.o
_objc_exception_try_enter, referenced from:
_test in ccVj9eiG.o
_test in ccVj9eiG.o
_objc_msgSend, referenced from:
_test in ccVj9eiG.o
_objc_exception_match, referenced from:
_test in ccVj9eiG.o
ld64-59.2 failed: symbol(s) not found
collect2: ld returned 1 exit status
compiler exited with status 1
output is:
ld64 warning: in /usr/lib/libobjc.dylib, file is not of required architecture
Undefined symbols:
_objc_exception_throw, referenced from:
_test in ccVj9eiG.o
_test in ccVj9eiG.o
_objc_exception_try_exit, referenced from:
_test in ccVj9eiG.o
_objc_exception_extract, referenced from:
_test in ccVj9eiG.o
_test in ccVj9eiG.o
.objc_class_name_Object, referenced from:
literal-pointer@__OBJC@__cls_refs@Object in ccVj9eiG.o
.objc_class_name_Frob in ccVj9eiG.o
_objc_exception_try_enter, referenced from:
_test in ccVj9eiG.o
_test in ccVj9eiG.o
_objc_msgSend, referenced from:
_test in ccVj9eiG.o
_objc_exception_match, referenced from:
_test in ccVj9eiG.o
ld64-59.2 failed: symbol(s) not found
collect2: ld returned 1 exit status
FAIL: objc/execute/exceptions/catchall-1.m compilation, -O0
UNRESOLVED: objc/execute/exceptions/catchall-1.m execution, -O0
I should mention that I don't have this build of gcc trunk
installed so it is being tested out of the build directory.
However, it should be smart enough to at least look in a
ppc64 subdirectory for the required libobjc.dylib, no?
Jack
ps I'll file a PR on this shortly. I imagine this is all a
Makefile issue so we really should try to fix it for gcc 4.2.
More information about the Gcc
mailing list