> On May 25, 2017, at 9:08 AM, Laszlo Ersek <[email protected]> wrote: > > On 05/25/17 03:47, Kinney, Michael D wrote: >> Andrew, >> >> I think I have found an alternate fix for this XCODE5 specific >> build failure. Since there appears to be a difference in the >> linker behavior between MSFT/GCC/XCODE tool chains, I reviewed >> the 'ld' command line options used in XCODE5 tool chain in >> tools_def.txt. >> >> There is a flag set call '-all_load'. The description of this >> flag is 'Loads all members of static archive libraries.'. >> >> I tried removing this flag from the XCODE5 specific SLINK_FLAGS >> and DLINK_FLAGS statements in tools_def.txt, and the duplicate >> symbol build failure is no longer present. I am able to build >> and boot OVMF with XCODE5 with -D SOURCE_DEBUG_ENABLE flag set. >> >> This seems to make XCODE5 linker behavior match the MSFT and GCC >> linker behavior. >> >> Do you know why '-all_load' is used in XCODE5 and what impacts >> there may be from removing it? > > Please don't remove -all_load from there; instead we should figure out > if the same can be brought to MSFT and GCC. >
Not to mention I was told by the Xcode linker developer that -all_load was required to ensure in all cases the Mach-O produced would be compatible with conversion to PE/COFF. Thanks, Andrew Fish > The error message that XCODE5 emitted caught a real bug (undefined > behavior according to ISO C, see my previous email), and so we should > keep that detection enabled (we should even extend it to other > toolchains, if that's possible). > > As for docs, I found this: > > http://www.manpages.info/macosx/ld.1.html > <http://www.manpages.info/macosx/ld.1.html> > >> -all_load >> Loads all members of static archive libraries. This option does >> not apply to dynamic shared libraries. > > > Thanks > Laszlo _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

