Re: gcov cannot find $UNIX2003 symbols in Xcode 3
Re: gcov cannot find $UNIX2003 symbols in Xcode 3
- Subject: Re: gcov cannot find $UNIX2003 symbols in Xcode 3
- From: Philip Aker <email@hidden>
- Date: Mon, 29 Oct 2007 08:40:40 -0700
On 2007-29-10, at 07:13, Aaron Montgomery wrote:
Hopefully this isn't sitting in some FAQ somewhere. Just upgraded
to Xcode 3.0 with a small Carbon project that uses Unit Tests
(CPTest) and gcov. I am now getting a linker error. Looks like the
gcov library is failing to find some functions (link line and
errors below).
I don't remember if I've tried compiling this since moving to an
Intel processor, so perhaps the Xcode 3 is a red herring and this
is really an i386 issue.
Any suggestions?
Aaron
Ld /Users/eeyore/Developer/SuperAdd/build/Debug/SuperAdd.app/
Contents/MacOS/SuperAdd normal i386
cd /Users/eeyore/Developer/SuperAdd
/Developer/usr/bin/g++-4.0 -o /Users/eeyore/Developer/SuperAdd/
build/Debug/SuperAdd.app/Contents/MacOS/SuperAdd -L/Users/eeyore/
Developer/SuperAdd/build/Debug -F/Users/eeyore/Developer/SuperAdd/
build/Debug -filelist /Users/eeyore/Developer/SuperAdd/build/
SuperAdd.build/Debug/SuperAdd.build/Objects-normal/i386/
SuperAdd.LinkFileList -framework Carbon -arch i386 -mmacosx-
version-min=10.4 -lgcov -isysroot /Developer/SDKs/MacOSX10.4u.sdk
Undefined symbols:
"_fcntl$UNIX2003", referenced from:
___gcov_open in libgcov.a(_gcov.o)
"_close$UNIX2003", referenced from:
___gcov_open in libgcov.a(_gcov.o)
"_open$UNIX2003", referenced from:
___gcov_open in libgcov.a(_gcov.o)
ld: symbol(s) not found
collect2: ld returned 1 exit status
On 2007-29-10, at 07:13, Aaron Montgomery wrote:
Hopefully this isn't sitting in some FAQ somewhere. Just upgraded
to Xcode 3.0 with a small Carbon project that uses Unit Tests
(CPTest) and gcov. I am now getting a linker error. Looks like the
gcov library is failing to find some functions (link line and
errors below).
I don't remember if I've tried compiling this since moving to an
Intel processor, so perhaps the Xcode 3 is a red herring and this
is really an i386 issue.
Any suggestions?
Aaron
Ld /Users/eeyore/Developer/SuperAdd/build/Debug/SuperAdd.app/
Contents/MacOS/SuperAdd normal i386
cd /Users/eeyore/Developer/SuperAdd
/Developer/usr/bin/g++-4.0 -o /Users/eeyore/Developer/SuperAdd/
build/Debug/SuperAdd.app/Contents/MacOS/SuperAdd -L/Users/eeyore/
Developer/SuperAdd/build/Debug -F/Users/eeyore/Developer/SuperAdd/
build/Debug -filelist /Users/eeyore/Developer/SuperAdd/build/
SuperAdd.build/Debug/SuperAdd.build/Objects-normal/i386/
SuperAdd.LinkFileList -framework Carbon -arch i386 -mmacosx-
version-min=10.4 -lgcov -isysroot /Developer/SDKs/MacOSX10.4u.sdk
Undefined symbols:
"_fcntl$UNIX2003", referenced from:
___gcov_open in libgcov.a(_gcov.o)
"_close$UNIX2003", referenced from:
___gcov_open in libgcov.a(_gcov.o)
"_open$UNIX2003", referenced from:
___gcov_open in libgcov.a(_gcov.o)
ld: symbol(s) not found
collect2: ld returned 1 exit status
Anything to do with:
CFBundle Lookup of Decorated Symbols
Some functions in the System framework have behavioral variants
intended to conform to the UNIX03 specification. The symbols for
these variants have a suffix, $UNIX2003, even though in code the
functions may appear to be unchanged; their use in linkage depends on
compile-time flags. There is also a $DARWIN_EXTSN suffix used for
certain other behavioral variants. CFBundleGetFunctionPointerForName
(s) does not supply any special treatment for these symbols. Clients
wishing to use CFBundle to look up these functions must decide
whether they wish the UNIX03 or other variant, or the unsuffixed base
version of the function, and supply appropriate names to
CFBundleGetFunctionPointerForName. None of these suffixes are used on
earlier versions of Mac OS X, and the $UNIX2003 suffix is not used in
64-bit architectures, so clients attempting to obtain the suffixed
versions should probably fall back to the unsuffixed versions if the
suffixed versions are not found. The /usr/bin/nm tool is useful for
determining which symbols a framework exports, and which symbols an
executable imports. Note also that CFBundleGetFunctionPointerForName
(s) does not supply any special treatment for C++ mangling of
symbols. Clients wishing to look up these symbols using CFBundle must
apply the mangling themselves.
?
Philip Aker
echo email@hidden@pn | tr a-z@. n-za-m.@
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden