Is isysroot useful for non-universal?

Marcus Calhoun-Lopez mcalhoun at macports.org
Sat Mar 21 22:03:47 PDT 2009


Ryan Schmidt <ryandesign at ...> writes:

> 
> 
> On Mar 21, 2009, at 21:34, Marcus Calhoun-Lopez wrote:
> 
> > It is mentioned in http://trac.macports.org/ticket/17356#comment:6
> > that universal builds do not suffer from bad .la files because of - 
> > isysroot.
> 
> That ticket specifically talks about bad .la files installed by some  
> Apple software, relating to X11. We should not need workarounds in  
> MacPorts for these bad files. Apple should distribute software  
> updates to fix the bad files they installed. Further, this specific  
> problem is no longer observed for the majority of users who will  
> presumably not have selected the +system_x11 variant.

Sorry, I was not suggesting a workaround for this particular problem.
I was making the point that isysroot would have been useful
when the problem first arose.

> > Perhaps -isysroot could be used to solve other problems as well.
> 
> What kinds of problems? Do you mean those kinds of problems that  
> arise from the user installing things in /usr/local and MacPorts- 
> installed software inadvertently linking with it?
...
> > It also does not see any changes the user might have made.
> 
> What kinds of changes are you talking about? Do you mean rogue  
> software installed by the user in system prefixes like / and /usr? I  
> suppose this would help MacPorts avoid linking with additional  
> software the user has installed there. I don't see it helping if the  
> user has replaced existing software.

Yes, I was thinking of unsupported configurations.
It seems that, with some regularity, reported problems can
be traced to /usr/local or some other installed software.
I was thinking that we could reduce the time spent tracking
down these problems with isysroot and syslibroot.

> 
> > If I understand the behavior, any compiler call with
> > -isysroot would not see /usr/local/include.
> 
>  From where do you get that understanding? Is this from the fact that  
> there is no /Developer/SDKs/*/usr/local/include? Any documentation  
> you have on -isysroot would be helpful; I know nothing about it other  
> than the way in which Apple says to use it for building a universal  
> binary.

The documentation on isysroot seems a little sparse.
According to the cross development documents, isysrtoot is not
even in the man pages because "this feature is likely to change in the future."
So my somewhat limited knowledge is from experiments.
As I understand it, -isysroot /Developer/SDKs/MacOSX10.5.sdk
treats /Developer/SDKs/MacOSX10.5.sdk/ as / when it comes to includes.
So it won't find anything in /usr/local/include because
/Developer/SDKs/MacOSX10.5.sdk/usr/local/include
does not exist.

-Marcus


-Marcus





More information about the macports-dev mailing list