Stripping symbols from a kext will insert a command that prevents loading on pre-10.7 systems
| Originator: | hello | ||
| Number: | rdar://15528467 | Date Originated: | 21-Nov-2013 01:35 PM |
| Status: | Duplicate | Resolved: | |
| Product: | Developer Tools | Product Version: | XCode 5.0.1 |
| Classification: | Serious Bug | Reproducible: | Always |
Summary: There was a regression introduced in Xcode 5.0.1's copy of strip that modifies our kext in such a way that it won't load on 10.6. Steps to Reproduce: This bug manifests itself if you have the strip symbols option selected in Xcode. Running strip in Terminal is sufficient to reproduce the problem. >otool -arch i386 -lv transmitdiskfs | grep LC_FUNCTION_STARTS (returns nothing) >strip -S transmitdiskfs -o transmitdiskfs.stripped >otool -arch i386 -lv transmitdiskfs.stripped | grep LC_FUNCTION_STARTS (returns cmd LC_FUNCTION_STARTS) Apparently the LC_FUNCTION_STARTS command is unrecognized on pre-10.7 systems Expected Results: The binary is not modified in any detrimental way when it's stripped Regression: We've confirmed that version 4.4.3 of Transmit Disk was build with Xcode 5.0 and it loads fine on 10.6. Further, the kext in that app is *unmodified* from the version that is in SVN despite it having been stripped. Starting with version 4.4.4, built with Xcode 5.0.1, the kext binary is different from what's in SVN. Notes: When a 10.6 user attempts to load the broken kext the following appears in Console: 11/21/13 10:23:04 AM com.apple.kextd[10] Failed to load /Users/panic/Library/Application Support/Transmit/Transmit Disk.app/Contents/Resources/transmitdiskfs.fs/Contents/Resources/com.panic.TransmitDisk.transmitdiskfs.components/transmitdiskfs.kext - (libkern/kext) link error. 11/21/13 10:23:04 AM kernel kxld[com.panic.TransmitDisk.transmitdiskfs]: The Mach-O file is malformed: Invalid segment type in MH_OBJECT kext: 38. 11/21/13 10:23:04 AM kernel Can't load kext com.panic.TransmitDisk.transmitdiskfs - link failed. 11/21/13 10:23:04 AM kernel Failed to load executable for kext com.panic.TransmitDisk.transmitdiskfs. 11/21/13 10:23:04 AM kernel Kext com.panic.TransmitDisk.transmitdiskfs failed to load (0xdc008016). 11/21/13 10:23:04 AM kernel Failed to load kext com.panic.TransmitDisk.transmitdiskfs (error 0xdc008016).
Comments
Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!
Closed as a dupe of rdar://15252891