Re: Building kext for 10.3.9 and/or 10.4 with Xcode 3 on Leopard
Re: Building kext for 10.3.9 and/or 10.4 with Xcode 3 on Leopard
- Subject: Re: Building kext for 10.3.9 and/or 10.4 with Xcode 3 on Leopard
- From: Chris Espinosa <email@hidden>
- Date: Tue, 8 Jan 2008 22:54:54 -0800
On Jan 8, 2008, at 10:31 PM, B.J. Buchalter wrote:
As a further followup to this, I found the -no_uuid ld flag and
added it to the other linker flags in my Xcode config, but the UUID
is still placed in the binary. What can I do now? TIA.
Ld /Volumes/shared/Users/bj/development/miodriver/build/
MobileIODriverXCode_intel.build/Development-64bit/
MobileIODriver.build/Objects-normal/i386/MobileIODriver normal i386
cd /Volumes/shared/Users/bj/development/miodriver
/Developer/usr/bin/g++-4.0 -o /Volumes/shared/Users/bj/
development/miodriver/build/MobileIODriverXCode_intel.build/
Development-64bit/MobileIODriver.build/Objects-normal/i386/
MobileIODriver -L/Volumes/shared/Users/bj/development/miodriver/
build/Development-64bit -F/Volumes/shared/Users/bj/development/
miodriver/build/Development-64bit -F/Developer/SDKs/MacOSX10.4u.sdk/
System/Library/Frameworks -filelist /Volumes/shared/Users/bj/
development/miodriver/build/MobileIODriverXCode_intel.build/
Development-64bit/MobileIODriver.build/Objects-normal/i386/
MobileIODriver.LinkFileList -llibAudioFloatLib.a -arch i386 -static -
nostdlib -r -lkmodc++ /Volumes/shared/Users/bj/development/miodriver/
build/MobileIODriverXCode_intel.build/Development-64bit/
MobileIODriver.build/Objects-normal/i386/MobileIODriver_info.o -
lkmod -lcc_kext -lcpp_kext -mmacosx-version-min=10.4 -no_uuid -
isysroot /Developer/SDKs/MacOSX10.4u.sdk
On Jan 9, 2008, at 12:58 AM, B.J. Buchalter wrote:
As a follow up to my question, if I kextload -t the kext on the
older systems, I get the following from kextload:
kld(): <path to kext> load command 2 unknown cmd field
so it seems that the problem is that Xcode 3 is building a binary
that is incompatible with the kernel loader on the older systems.
If I use otool -l on the two executables, the most obvious (non-
trivial) difference is that the Xcode 3 built kext has:
Load command 2
cmd LC_UUID
cmdsize 24
uuid 0xd4 0xbe 0x60 0x0f 0xba 0xbf 0x46 0x3b
0x9b 0x5f 0x1c 0xdd 0xd3 0x09 0xfa 0xc3
and the Xcode 2.4.1 built kext does not.
Anyone know how I either remove this UUID or keep it from being
built into the binary in the first place under Xcode 3?
On Jan 8, 2008, at 10:31 PM, B.J. Buchalter wrote:
We have a kext project that we have been building with a split SDK
for the ppc side and the intel side; we used the 10.3.9 SDK for
ppc and the 10.4u SDK for intel; this had been working fine for
Xcode 2.4.1 under Panther for deployment on 10.3.9 and 10.4.x. We
migrated the project to Xcode 3 and 10.5 and everything built fine
(no compile or link errors) and the built driver loads fine on
10.5.x but does not appear to load on 10.3.9 nor 10.4.x
Any suggestions as to what we need to do to configure the Xcode
build process to work properly targeting the older OS versions
while still building from Xcode 3?
I think you want to add -no_uuid to the Other Strip Flags, not the
Other Linker Flags, and make sure that stripping is done.
Chris
_______________________________________________
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