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. 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 > -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

