Hello,
I'm in the process of moving a bunch of projects to Xcode 5.1 from Xcode 5.0.2. One of these is a kernel extension for a PCI-based device. After building the kext with Xcode 5.1, I'm getting the following errors in the console using the
Xcode 5.1-generated kext. I made no changes to the project file, just compiled with the new Xcode.
Apr 9 11:13:24 jeremymacpro kernel[0]: kxld[com.Me.DX]: The following symbols are unresolved for this kext:
Apr 9 11:13:24 jeremymacpro kernel[0]: kxld[com.Me.DX]:
__ZN11IOPCIDevice19extendedConfigRead8Ey
Apr 9 11:13:24 jeremymacpro kernel[0]: kxld[com.Me.DX]:
__ZN11IOPCIDevice20extendedConfigRead16Ey
Apr 9 11:13:24 jeremymacpro kernel[0]: kxld[com.Me.DX]:
__ZN11IOPCIDevice20extendedConfigRead32Ey
Apr 9 11:13:24 jeremymacpro kernel[0]: kxld[com.Me.DX]:
__ZN11IOPCIDevice20extendedConfigWrite8Eyh
Apr 9 11:13:24 jeremymacpro kernel[0]: kxld[com.Me.DX]:
__ZN11IOPCIDevice21extendedConfigWrite16Eyt
Apr 9 11:13:24 jeremymacpro kernel[0]: kxld[com.Me.DX]:
__ZN11IOPCIDevice21extendedConfigWrite32Eyj
Unfortunately, the original author of the kext is no longer around, and I'm a bit of a neophyte with kexts. Also, our code isn't directly referencing the extended commands that are being complained about but is using the base configRead8
etc. But our non-extended calls are definitely the cause of these errors; if I comment our use of configRead8 the extendedConfigRead8 errors disappear.
To try and see if this was an isolated problem to our kext, I added some calls to the AppleSamplePCI sample project (in such a way that they would not actually be executed but not stripped), and it worked fine. More head scratching ensued.
If I go back to Xcode 5.0.2, everything is fine.
Any thoughts?
Jeremy