Re: Xcode 2.5 on Leopard: trouble with -isysroot and friends
Re: Xcode 2.5 on Leopard: trouble with -isysroot and friends
- Subject: Re: Xcode 2.5 on Leopard: trouble with -isysroot and friends
- From: Ken Thomases <email@hidden>
- Date: Wed, 21 May 2008 13:25:16 -0500
On May 21, 2008, at 12:54 PM, Chris Espinosa wrote:
On May 21, 2008, at 10:20 AM, Ken Thomases wrote:
As you can see, I'm specifying the SDK using -isysroot. In this
case, the command is attempting to link against my own custom X11
libraries. The Xcursor library is located. It has the following
dependencies:
$ otool -L /Users/ken/work/cxmac/x11r6/image/X11/lib/libXcursor.dylib
/Users/ken/work/cxmac/x11r6/image/X11/lib/libXcursor.dylib:
/Users/ken/work/cxmac/x11r6/image/X11/lib/libXcursor.1.dylib
(compatibility version 1.0.2, current version 1.0.2)
/Users/ken/work/cxmac/x11r6/image/X11/lib/libXrender.1.dylib
(compatibility version 1.2.2, current version 1.2.2)
/Users/ken/work/cxmac/x11r6/image/X11/lib/libXext.6.dylib
(compatibility version 11.0.0, current version 11.0.0)
/Users/ken/work/cxmac/x11r6/image/X11/lib/libX11.6.dylib
(compatibility version 9.0.0, current version 9.0.0)
/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current
version 1.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
version 88.3.9)
So, Xcursor depends on Xrender, which is in the same location.
However, it seems that gcc/collect2/ld (or whatever) is
inappropriately applying the SDK root to paths which are not
present in the SDK. In this case, it's transforming the path "/
Users/ken/work/cxmac/x11r6/image/X11/lib/libXrender.1.dylib" into "/
Xcode2.5/SDKs/MacOSX10.4u.sdk/Users/ken/work/cxmac/x11r6/image/X11/
lib/libXrender.1.dylib". Note that it's only applying the SDK root
to the dependencies. It's having no trouble finding the Xcursor
library which is explicitly passed on the command line. So, given
two similarly-constructed paths, it's handling them differently.
Could you dig up or reproduce the linker invocation that created
libXcursor.dylib? Perhaps by using relative paths (rather than
absolute paths into your build folder) or by postprocessing with
install_name_tool might do the trick.
So, you're suggesting that libXcursor.dylib should be made dependent
on merely "libXrender.1.dylib" rather than "/Users/ken/work/cxmac/
x11r6/image/X11/lib/libXrender.1.dylib"? Or maybe "@loader_path/
libXrender.1.dylib" would work?
Thanks for the suggestion. I'll look into it. Unfortunately, the X11
build system (especially of the vintage that I'm working with) is
byzantine. Post-processing may work.
In the meantime, I've filed a bug for this issue: #5952556. It
includes very simple steps to reproduce without involving any
complicated setups or libraries.
Thanks,
Ken
_______________________________________________
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