/*! @file boot2/sectorder.s @copyright David Elliott @abstract Declares some Mach-O segments/sections in a particular order @discussion Normally as will assemble files as if the first line was .text. You must give it the -n option to stop this behavior. A very small portion of the booter absolutely must be located within the real-mode segment which has a 64k limit. We accomplish this by putting those portions in their own Mach-O segment and using this file to declare that this segment must be located before the normal __TEXT segment. A further constraint is that the first section in this file must also begin with the real-mode entrypoint which begins at the boot2 symbol. Failure to link this file first usually results in these portions that should be as low as possible in the binary being as high as possible in the binary because most normal assembler files (particularly those generated by a compiler) will declare the __TEXT and then the __DATA segment resulting in __LOSEG being located after __DATA as the static link editor processes sections in the order they appear. This makes the situation even worse because now __DATA,__bss and __DATA,__common appear before __LOSEG. */ // Predeclare sections in the order we want them in the final complete binary .section __LOSEG, __text .section __LOSEG, __cstring,cstring_literals .section __LOSEG, __const .section __LOSEG, __data .section __TEXT,__text