I was talking to Mike, and he asked me to post the requirements to fix NASM to work properly with Xcode to the mailing list.
NASM does not support dead stripping with Xcode. With .S files the .subsections_via_symbols directive is used to ensure dead stripping by the linker. The .subsections_via_symbols directive sets the MH_SUBSECTIONS_VIA_SYMBOLS flag in the mach_header of the generated .o file. There needs to be some way to set the MH_SUBSECTIONS_VIA_SYMBOLS flag in the Mach-O header. .subsections_via_symbols is defined here: https://developer.apple.com/library/mac/documentation/DeveloperTools/Reference/Assembler/040-Assembler_Directives/asm_directives.html NASM does not produce any debug information for the macho32 and macho64 output formats. The Mach-O object files need to contain DWARF 4, older versions of the tools used DWARF 2. The Xcode build generates Mach-O object files and links them together into a Mach-O. The Mach-O can be wrapped up in a dSYM (single file for debugging, including the object files that are not part of the Mach-O). The Mach-O file is converted by a tool, mtoc, into a PE/COFF executable. We use the Mach-O/dSYM for debugging. We even place the Mach-O UUID in the PE/COFF debug section so we can look symbols up via UUID. Thanks, Andrew Fish ------------------------------------------------------------------------------ Comprehensive Server Monitoring with Site24x7. Monitor 10 servers for $9/Month. Get alerted through email, SMS, voice calls or mobile push notifications. Take corrective actions from your mobile device. http://pubads.g.doubleclick.net/gampad/clk?id=154624111&iu=/4140/ostg.clktrk _______________________________________________ edk2-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/edk2-devel
