On 13 August 2015 at 07:44, Gao, Liming <[email protected]> wrote: > Reviewed-by: Liming Gao <[email protected]> >
Thanks Committed as SVN r18217 -- Ard. > -----Original Message----- > From: Ard Biesheuvel [mailto:[email protected]] > Sent: Thursday, August 13, 2015 1:19 PM > To: [email protected]; [email protected]; Liu, Yingke D > Cc: Gao, Liming; Ard Biesheuvel > Subject: [PATCH v2] BaseTools IA32/X64: prevent .eh_frame sections from being > generated > > After the recent GNU linker script changes, the following warning is emitted > many times during the OVMF build: > > BFD: <...>: warning: Empty loadable segment detected, is this intentional ? > > This is caused by the fact that, now that the section layout has changed > somewhat, the .eh_frame section is assigned an ELF segment of its own, which > ends up with no contents at all after we strip the .eh_frame section from the > output. (Note that the program headers that contain the segment information > are completely irrelevant to us since the PE/COFF conversion does not rely on > them.) > > Since we only retain the .eh_frame data for external debugging, and not for > things like stack unwinding or generating backtraces at runtime, we can > remedy the situation by passing -fno-asynchronous-unwind-tables on the GCC > command line. This option instructs the compiler to emit the unwind data into > a debug section called .debug_frame instead of into .eh_frame. > > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Ard Biesheuvel <[email protected]> > Reviewed-by: Laszlo Ersek <[email protected]> > Build-tested-by: Laszlo Ersek <[email protected]> > --- > v2: give IA32 the same treatment as X86 > add Laszlo's acks > --- > BaseTools/Conf/tools_def.template | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/BaseTools/Conf/tools_def.template > b/BaseTools/Conf/tools_def.template > index 6e2d4909b9fc..859fbe14ad59 100644 > --- a/BaseTools/Conf/tools_def.template > +++ b/BaseTools/Conf/tools_def.template > @@ -3839,8 +3839,8 @@ DEFINE GCC_ARM_RC_FLAGS = -I binary -O > elf32-littlearm -B arm > DEFINE GCC_AARCH64_RC_FLAGS = -I binary -O elf64-littleaarch64 -B > aarch64 --rename-section .data=.hii > > DEFINE GCC44_ALL_CC_FLAGS = -g -fshort-wchar -fno-strict-aliasing > -Wall -Werror -Wno-array-bounds -ffunction-sections -fdata-sections -c > -include AutoGen.h -DSTRING_ARRAY_NAME=$(BASE_NAME)Strings > -DEFINE GCC44_IA32_CC_FLAGS = DEF(GCC44_ALL_CC_FLAGS) -m32 > -malign-double -fno-stack-protector -D EFI32 > -DEFINE GCC44_X64_CC_FLAGS = DEF(GCC44_ALL_CC_FLAGS) -m64 > -fno-stack-protector "-DEFIAPI=__attribute__((ms_abi))" -DNO_BUILTIN_VA_FUNCS > -mno-red-zone -Wno-address -mcmodel=large > +DEFINE GCC44_IA32_CC_FLAGS = DEF(GCC44_ALL_CC_FLAGS) -m32 > -malign-double -fno-stack-protector -D EFI32 -fno-asynchronous-unwind-tables > +DEFINE GCC44_X64_CC_FLAGS = DEF(GCC44_ALL_CC_FLAGS) -m64 > -fno-stack-protector "-DEFIAPI=__attribute__((ms_abi))" -DNO_BUILTIN_VA_FUNCS > -mno-red-zone -Wno-address -mcmodel=large -fno-asynchronous-unwind-tables > DEFINE GCC44_IA32_X64_DLINK_COMMON = -nostdlib -n -q --gc-sections -z > common-page-size=0x20 > DEFINE GCC44_IA32_X64_ASLDLINK_FLAGS = DEF(GCC44_IA32_X64_DLINK_COMMON) > --entry ReferenceAcpiTable -u ReferenceAcpiTable > DEFINE GCC44_IA32_X64_DLINK_FLAGS = DEF(GCC44_IA32_X64_DLINK_COMMON) > --entry $(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Map > $(DEST_DIR_DEBUG)/$(BASE_NAME).map > -- > 1.9.1 > _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

