[darwinbuild-dev] Missing Availability.h with 9G55

William Siegrist wsiegrist at apple.com
Tue Apr 28 23:34:55 PDT 2009


On Apr 28, 2009, at 7:14 PM, Craig Setera wrote:

> First, let me thank you for helping out so much as I try to make  
> this work.  The fact that I'm trying to do this "for fun" probably  
> tells you a bit about how geeky I really am.  It appears that I'm  
> down to a single remaining error:
>
> Mig /SourceCache/ppp/ppp-314.0.1/Controller/pppcontroller.defs
>    mkdir "/private/var/tmp/ppp/ppp-314.0.1.obj/ppp.build/pppd  
> (Tool).build/DerivedSources"
>    cd /SourceCache/ppp/ppp-314.0.1
>    /XCD/loper/usr/bin/mig -header "/private/var/tmp/ppp/ 
> ppp-314.0.1.obj/ppp.build/pppd (Tool).build/DerivedSources/ 
> pppcontroller.h" -user "/private/var/tmp/ppp/ppp-314.0.1.obj/ 
> ppp.build/pppd (Tool).build/DerivedSources/pppcontrollerUser.c" - 
> sheader /dev/null -server /dev/null -I/private/var/tmp/ppp/ 
> ppp-314.0.1.sym/BuiltProducts/include -I../../Family -I/private/var/ 
> tmp/ppp/ppp-314.0.1.root/usr/include /SourceCache/ppp/ppp-314.0.1/ 
> Controller/pppcontroller.defs
> dyld: Library not loaded: /System/Library/Frameworks/ 
> CoreServices.framework/Versions/A/Frameworks/CFNetwork.framework/ 
> Versions/A/CFNetwork
>  Referenced from: /System/Library/Frameworks/Foundation.framework/ 
> Versions/C/Foundation
>  Reason: image not found
> cc: Invalid arch name : -D__MACH30__
> mig: fatal: "<no name yet>", line -1: no SubSystem declaration
> rmdir: /tmp/mig.C5pcvL: No such file or directory
>
> Is this related to the architecture comment at the bottom of this  
> email chain?  If so, can you give me some insight into how to go  
> about altering things appropriately?
>

If you look at the following file, you'll see it links to Foundation  
(the first item in the list):

# otool -L BuildRoot/usr/bin/arch
BuildRoot/usr/bin/arch:
	/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation  
(compatibility version 300.0.0, current version 677.19.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 111.1.1)
	/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current  
version 227.0.0)
	/System/Library/Frameworks/CoreFoundation.framework/Versions/A/ 
CoreFoundation (compatibility version 150.0.0, current version 476.13.0)

So move arch out of the way:

# mv BuildRoot/usr/bin/arch BuildRoot/usr/bin/arch.bak

And replace it with a shell script like the following:

#!/bin/sh
/usr/bin/uname -m

... and make it executable:

# chmod a+x BuildRoot/usr/bin/arch

(Note that when the build is in progress, it is chrooted, so "/usr/ 
bin" in the shell script is really "BuildRoot/usr/bin")




> One of the interesting things is that this is definitely not part of  
> an XCode target that I actually care to build.  It appears that the  
> reason that "darwinbuild -target=pppd ppp" won't work is because the  
> target is actually called "pppd (Tool)".  I've tried a number of  
> combinations of quoting to try to pass that value through to  
> xcodebuilder, but I keep getting things like:
>
> private/var/tmp/ppp/build-ppp-314.0.1~20.sh: line 157: syntax error  
> near unexpected token `('
>

Darwinbuild does not wrap the target in quotes, so the following  
forces a set of quotes to make it into the xcodebuild command:

darwinbuild -target="\"pppd (Tool)\"" ppp


-Bill




More information about the darwinbuild-dev mailing list