Laszlo, I think the equivalent flag for GCC builds is --whole-archive.
I tried adding that flag to DLINK_FLAGS in GCC5, and I get the following error building OVMF from edk2/master with -D SOURCE_DEBUG_ENABLE set. DxeLoad.obj (symbol from plugin): In function `InstallIplPermanentMemoryPpis': (.text+0x0): multiple definition of `mMemoryDiscoveredNotifyList' SecPeiDebugAgentLib.obj (symbol from plugin):(.text+0x0): first defined here collect2: error: ld returned 1 exit status Visual Studio 2015 Update 2 has also added a new linker flag called /WHOLEARCHIVE. I am working on evaluating that flag to see if it catches the same issue. Mike > -----Original Message----- > From: Laszlo Ersek [mailto:[email protected]] > Sent: Thursday, May 25, 2017 9:09 AM > To: Kinney, Michael D <[email protected]>; Ard Biesheuvel > <[email protected]>; Andrew Fish ([email protected]) <[email protected]> > Cc: Wu, Hao A <[email protected]>; [email protected]; Fan, Jeff > <[email protected]> > Subject: Re: [edk2] [Patch] SourceLevelDebugPkg/SecPeiDebugAgentLib: Fix > duplicate > symbol > > 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

