Re: [edk2] [PATCH v3 12/12] BaseTools/X86|IA32: move to unified GCC linker script
Yes. -Original Message- From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of Ard Biesheuvel Sent: Thursday, July 30, 2015 10:26 PM To: Gao, Liming Cc: Justen, Jordan L; edk2-devel@lists.01.org; ler...@redhat.com; Liu, Yingke D; leif.lindh...@linaro.org Subject: Re: [edk2] [PATCH v3 12/12] BaseTools/X86|IA32: move to unified GCC linker script On 30 July 2015 at 02:59, Gao, Liming wrote: > Jordan: > I have verified 4K aligned image build. > > Test-by: Liming Gao > Thanks Liming Just to be clear, I assume you added something like this """ diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc index a86a7f57143b..90dc29a5157d 100644 --- a/OvmfPkg/OvmfPkgX64.dsc +++ b/OvmfPkg/OvmfPkgX64.dsc @@ -48,6 +48,9 @@ [BuildOptions] INTEL:*_*_X64_GENFW_FLAGS = --keepexceptiontable !endif +[BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER] + GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000 + # # SKU Identification section - list of all SKU IDs supported by this Platform. """ when you did the test? Thanks, Ard. > -Original Message- > From: Justen, Jordan L > Sent: Thursday, July 30, 2015 5:16 AM > To: Ard Biesheuvel; edk2-devel@lists.01.org; Liu, Yingke D; Gao, > Liming > Cc: ler...@redhat.com; leif.lindh...@linaro.org; Ard Biesheuvel > Subject: Re: [PATCH v3 12/12] BaseTools/X86|IA32: move to unified GCC > linker script > > Subject prefix: BaseTools/X86|IA32 => BaseTools IA32/X64 > > What about 1 more step? :) > > This change starts to make use of the -z common-page-size and > --defsym=PECOFF_HEADER_SIZE params, but the description says 'move to unified > script'. > > So, how about first modifying the gcc*-ld-script files to use -z > common-page-size and --defsym=PECOFF_HEADER_SIZE and then the last patch is > trivial: > > BaseTools IA32/X64: Use GccBase.lds instead of gcc*-ld-script > > These scripts all now have the same contents, so we only need to use > GccBase.lds. Therefore we can delete gcc-4K-align-ld-script, > gcc4.4-ld-script and gcc4.9-ld-script. > > With that change, the series is > > Reviewed-by: Jordan Justen > > although, I would like someone to test the changes on a '4k' aligned image > build. Liming, do you know who might be able to do that? > > -Jordan > > On 2015-07-29 08:12:02, Ard Biesheuvel wrote: >> Drop the GCC 4.4/X86 and 4.9/X86 specific linker scripts and use the >> new unified one instead. >> >> Contributed-under: TianoCore Contribution Agreement 1.0 >> Signed-off-by: Ard Biesheuvel >> --- >> BaseTools/Conf/tools_def.template| 28 +-- >> BaseTools/Scripts/gcc-4K-align-ld-script | 38 >> BaseTools/Scripts/gcc4.4-ld-script | 38 >> BaseTools/Scripts/gcc4.9-ld-script | 38 >> 4 files changed, 26 insertions(+), 116 deletions(-) >> >> diff --git a/BaseTools/Conf/tools_def.template >> b/BaseTools/Conf/tools_def.template >> index d3dfdc41ada1..eeb488fb3597 100644 >> --- a/BaseTools/Conf/tools_def.template >> +++ b/BaseTools/Conf/tools_def.template >> @@ -3847,10 +3847,12 @@ DEFINE GCC_AARCH64_RC_FLAGS= -I binary -O >> elf64-littleaarch64 -B aarch64 >> 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_X64_DLINK_COMMON = -nostdlib -n -q --gc-sections >> --script=$(EDK_TOOLS_PATH)/Scripts/gcc4.4-ld-script >> +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 >> +DEFINE GCC44_IA32_DLINK2_FLAGS = DEF(GCC_DLINK2_FLAGS_COMMON) >> --defsym=PECOFF_HEADER_SIZE=0x220 >> DEFINE GCC44_X64_DLINK_FLAGS = DEF(GCC44_IA32_X64_DLINK_FLAGS) >> -melf_x86_64 --o
Re: [edk2] [PATCH v3 12/12] BaseTools/X86|IA32: move to unified GCC linker script
On 30 July 2015 at 02:59, Gao, Liming wrote: > Jordan: > I have verified 4K aligned image build. > > Test-by: Liming Gao > Thanks Liming Just to be clear, I assume you added something like this """ diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc index a86a7f57143b..90dc29a5157d 100644 --- a/OvmfPkg/OvmfPkgX64.dsc +++ b/OvmfPkg/OvmfPkgX64.dsc @@ -48,6 +48,9 @@ [BuildOptions] INTEL:*_*_X64_GENFW_FLAGS = --keepexceptiontable !endif +[BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER] + GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000 + # # SKU Identification section - list of all SKU IDs supported by this Platform. """ when you did the test? Thanks, Ard. > -Original Message- > From: Justen, Jordan L > Sent: Thursday, July 30, 2015 5:16 AM > To: Ard Biesheuvel; edk2-devel@lists.01.org; Liu, Yingke D; Gao, Liming > Cc: ler...@redhat.com; leif.lindh...@linaro.org; Ard Biesheuvel > Subject: Re: [PATCH v3 12/12] BaseTools/X86|IA32: move to unified GCC linker > script > > Subject prefix: BaseTools/X86|IA32 => BaseTools IA32/X64 > > What about 1 more step? :) > > This change starts to make use of the -z common-page-size and > --defsym=PECOFF_HEADER_SIZE params, but the description says 'move to unified > script'. > > So, how about first modifying the gcc*-ld-script files to use -z > common-page-size and --defsym=PECOFF_HEADER_SIZE and then the last patch is > trivial: > > BaseTools IA32/X64: Use GccBase.lds instead of gcc*-ld-script > > These scripts all now have the same contents, so we only need to use > GccBase.lds. Therefore we can delete gcc-4K-align-ld-script, > gcc4.4-ld-script and gcc4.9-ld-script. > > With that change, the series is > > Reviewed-by: Jordan Justen > > although, I would like someone to test the changes on a '4k' aligned image > build. Liming, do you know who might be able to do that? > > -Jordan > > On 2015-07-29 08:12:02, Ard Biesheuvel wrote: >> Drop the GCC 4.4/X86 and 4.9/X86 specific linker scripts and use the >> new unified one instead. >> >> Contributed-under: TianoCore Contribution Agreement 1.0 >> Signed-off-by: Ard Biesheuvel >> --- >> BaseTools/Conf/tools_def.template| 28 +-- >> BaseTools/Scripts/gcc-4K-align-ld-script | 38 >> BaseTools/Scripts/gcc4.4-ld-script | 38 >> BaseTools/Scripts/gcc4.9-ld-script | 38 >> 4 files changed, 26 insertions(+), 116 deletions(-) >> >> diff --git a/BaseTools/Conf/tools_def.template >> b/BaseTools/Conf/tools_def.template >> index d3dfdc41ada1..eeb488fb3597 100644 >> --- a/BaseTools/Conf/tools_def.template >> +++ b/BaseTools/Conf/tools_def.template >> @@ -3847,10 +3847,12 @@ DEFINE GCC_AARCH64_RC_FLAGS= -I binary -O >> elf64-littleaarch64 -B aarch64 >> 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_X64_DLINK_COMMON = -nostdlib -n -q --gc-sections >> --script=$(EDK_TOOLS_PATH)/Scripts/gcc4.4-ld-script >> +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 >> +DEFINE GCC44_IA32_DLINK2_FLAGS = DEF(GCC_DLINK2_FLAGS_COMMON) >> --defsym=PECOFF_HEADER_SIZE=0x220 >> DEFINE GCC44_X64_DLINK_FLAGS = DEF(GCC44_IA32_X64_DLINK_FLAGS) >> -melf_x86_64 --oformat=elf64-x86-64 >> +DEFINE GCC44_X64_DLINK2_FLAGS= DEF(GCC_DLINK2_FLAGS_COMMON) >> --defsym=PECOFF_HEADER_SIZE=0x228 >> DEFINE GCC44_ASM_FLAGS = DEF(GCC_ASM_FLAGS) >> >> DEFINE GCC45_IA32_CC_FLAGS = DEF(GCC44_IA32_CC_FLAGS) >> @@ -3858,7 +3860,9 @@ DEFINE GCC45_X64_CC_FLAGS= >> DEF(GCC44_X64_CC_FLAGS) >> DEFINE GCC45_IA32_X64_DLINK_COMMON = DEF(GCC44_IA32_X64_DLINK_COMMON) >> DEFINE GCC45_IA32_X64_ASLDLINK_FLAGS = DEF(GCC44_IA32_X64_ASLDLINK_FLAGS) >> DEFINE GCC45_IA32_X64_DLINK_FLAGS= DEF(GCC44_IA32_X64_DLINK_FLAGS) >> +DEFINE GCC45_IA32_DLINK2_FLAGS = DEF(GCC44_IA32_DLINK2_FLAGS) >> DEFINE GCC45_X64_DLINK_FLAGS = DEF(GCC44_X64_DLINK_FLAGS) >> +DEFINE GCC45_X64_DLINK2_FLAGS= DEF(GCC44_X64_DLINK2_FLAGS) >> DEFINE GCC45_ASM_
Re: [edk2] [PATCH v3 12/12] BaseTools/X86|IA32: move to unified GCC linker script
Jordan: I have verified 4K aligned image build. Test-by: Liming Gao Thanks Liming -Original Message- From: Justen, Jordan L Sent: Thursday, July 30, 2015 5:16 AM To: Ard Biesheuvel; edk2-devel@lists.01.org; Liu, Yingke D; Gao, Liming Cc: ler...@redhat.com; leif.lindh...@linaro.org; Ard Biesheuvel Subject: Re: [PATCH v3 12/12] BaseTools/X86|IA32: move to unified GCC linker script Subject prefix: BaseTools/X86|IA32 => BaseTools IA32/X64 What about 1 more step? :) This change starts to make use of the -z common-page-size and --defsym=PECOFF_HEADER_SIZE params, but the description says 'move to unified script'. So, how about first modifying the gcc*-ld-script files to use -z common-page-size and --defsym=PECOFF_HEADER_SIZE and then the last patch is trivial: BaseTools IA32/X64: Use GccBase.lds instead of gcc*-ld-script These scripts all now have the same contents, so we only need to use GccBase.lds. Therefore we can delete gcc-4K-align-ld-script, gcc4.4-ld-script and gcc4.9-ld-script. With that change, the series is Reviewed-by: Jordan Justen although, I would like someone to test the changes on a '4k' aligned image build. Liming, do you know who might be able to do that? -Jordan On 2015-07-29 08:12:02, Ard Biesheuvel wrote: > Drop the GCC 4.4/X86 and 4.9/X86 specific linker scripts and use the > new unified one instead. > > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Ard Biesheuvel > --- > BaseTools/Conf/tools_def.template| 28 +-- > BaseTools/Scripts/gcc-4K-align-ld-script | 38 > BaseTools/Scripts/gcc4.4-ld-script | 38 > BaseTools/Scripts/gcc4.9-ld-script | 38 > 4 files changed, 26 insertions(+), 116 deletions(-) > > diff --git a/BaseTools/Conf/tools_def.template > b/BaseTools/Conf/tools_def.template > index d3dfdc41ada1..eeb488fb3597 100644 > --- a/BaseTools/Conf/tools_def.template > +++ b/BaseTools/Conf/tools_def.template > @@ -3847,10 +3847,12 @@ DEFINE GCC_AARCH64_RC_FLAGS= -I binary -O > elf64-littleaarch64 -B aarch64 > 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_X64_DLINK_COMMON = -nostdlib -n -q --gc-sections > --script=$(EDK_TOOLS_PATH)/Scripts/gcc4.4-ld-script > +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 > +DEFINE GCC44_IA32_DLINK2_FLAGS = DEF(GCC_DLINK2_FLAGS_COMMON) > --defsym=PECOFF_HEADER_SIZE=0x220 > DEFINE GCC44_X64_DLINK_FLAGS = DEF(GCC44_IA32_X64_DLINK_FLAGS) > -melf_x86_64 --oformat=elf64-x86-64 > +DEFINE GCC44_X64_DLINK2_FLAGS= DEF(GCC_DLINK2_FLAGS_COMMON) > --defsym=PECOFF_HEADER_SIZE=0x228 > DEFINE GCC44_ASM_FLAGS = DEF(GCC_ASM_FLAGS) > > DEFINE GCC45_IA32_CC_FLAGS = DEF(GCC44_IA32_CC_FLAGS) > @@ -3858,7 +3860,9 @@ DEFINE GCC45_X64_CC_FLAGS= > DEF(GCC44_X64_CC_FLAGS) > DEFINE GCC45_IA32_X64_DLINK_COMMON = DEF(GCC44_IA32_X64_DLINK_COMMON) > DEFINE GCC45_IA32_X64_ASLDLINK_FLAGS = DEF(GCC44_IA32_X64_ASLDLINK_FLAGS) > DEFINE GCC45_IA32_X64_DLINK_FLAGS= DEF(GCC44_IA32_X64_DLINK_FLAGS) > +DEFINE GCC45_IA32_DLINK2_FLAGS = DEF(GCC44_IA32_DLINK2_FLAGS) > DEFINE GCC45_X64_DLINK_FLAGS = DEF(GCC44_X64_DLINK_FLAGS) > +DEFINE GCC45_X64_DLINK2_FLAGS= DEF(GCC44_X64_DLINK2_FLAGS) > DEFINE GCC45_ASM_FLAGS = DEF(GCC44_ASM_FLAGS) > > DEFINE GCC46_IA32_CC_FLAGS = DEF(GCC45_IA32_CC_FLAGS) -Wno-address > -Wno-unused-but-set-variable > @@ -3866,7 +3870,9 @@ DEFINE GCC46_X64_CC_FLAGS= > DEF(GCC45_X64_CC_FLAGS) -Wno-address -Wno > DEFINE GCC46_IA32_X64_DLINK_COMMON = DEF(GCC45_IA32_X64_DLINK_COMMON) > DEFINE GCC46_IA32_X64_ASLDLINK_FLAGS = DEF(GCC45_IA32_X64_ASLDLINK_FLAGS) > DEFINE GCC46_IA32_X64_DLINK_FLAGS= DEF(GCC45_IA32_X64_DLINK_FLAGS) > +DEFINE GCC46_IA32_DLINK2_FLAGS = DEF(GCC45_IA32_DLINK2_FLAGS) > DEFINE GCC46_X64_DLINK_FLAGS = DEF(GCC45_X64_DLINK_FLAGS) > +DEFINE GCC46_X64_DLINK2_FLAGS= DEF(GCC45_X64_DLINK2_FLAGS) > DEFINE GCC46_ASM_FLAGS = DEF(GCC45_ASM_FLAGS) > DEFINE GCC46_ARM_ASM_FL
Re: [edk2] [PATCH v3 12/12] BaseTools/X86|IA32: move to unified GCC linker script
Subject prefix: BaseTools/X86|IA32 => BaseTools IA32/X64 What about 1 more step? :) This change starts to make use of the -z common-page-size and --defsym=PECOFF_HEADER_SIZE params, but the description says 'move to unified script'. So, how about first modifying the gcc*-ld-script files to use -z common-page-size and --defsym=PECOFF_HEADER_SIZE and then the last patch is trivial: BaseTools IA32/X64: Use GccBase.lds instead of gcc*-ld-script These scripts all now have the same contents, so we only need to use GccBase.lds. Therefore we can delete gcc-4K-align-ld-script, gcc4.4-ld-script and gcc4.9-ld-script. With that change, the series is Reviewed-by: Jordan Justen although, I would like someone to test the changes on a '4k' aligned image build. Liming, do you know who might be able to do that? -Jordan On 2015-07-29 08:12:02, Ard Biesheuvel wrote: > Drop the GCC 4.4/X86 and 4.9/X86 specific linker scripts and use > the new unified one instead. > > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Ard Biesheuvel > --- > BaseTools/Conf/tools_def.template| 28 +-- > BaseTools/Scripts/gcc-4K-align-ld-script | 38 > BaseTools/Scripts/gcc4.4-ld-script | 38 > BaseTools/Scripts/gcc4.9-ld-script | 38 > 4 files changed, 26 insertions(+), 116 deletions(-) > > diff --git a/BaseTools/Conf/tools_def.template > b/BaseTools/Conf/tools_def.template > index d3dfdc41ada1..eeb488fb3597 100644 > --- a/BaseTools/Conf/tools_def.template > +++ b/BaseTools/Conf/tools_def.template > @@ -3847,10 +3847,12 @@ DEFINE GCC_AARCH64_RC_FLAGS= -I binary -O > elf64-littleaarch64 -B aarch64 > 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_X64_DLINK_COMMON = -nostdlib -n -q --gc-sections > --script=$(EDK_TOOLS_PATH)/Scripts/gcc4.4-ld-script > +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 > +DEFINE GCC44_IA32_DLINK2_FLAGS = DEF(GCC_DLINK2_FLAGS_COMMON) > --defsym=PECOFF_HEADER_SIZE=0x220 > DEFINE GCC44_X64_DLINK_FLAGS = DEF(GCC44_IA32_X64_DLINK_FLAGS) > -melf_x86_64 --oformat=elf64-x86-64 > +DEFINE GCC44_X64_DLINK2_FLAGS= DEF(GCC_DLINK2_FLAGS_COMMON) > --defsym=PECOFF_HEADER_SIZE=0x228 > DEFINE GCC44_ASM_FLAGS = DEF(GCC_ASM_FLAGS) > > DEFINE GCC45_IA32_CC_FLAGS = DEF(GCC44_IA32_CC_FLAGS) > @@ -3858,7 +3860,9 @@ DEFINE GCC45_X64_CC_FLAGS= > DEF(GCC44_X64_CC_FLAGS) > DEFINE GCC45_IA32_X64_DLINK_COMMON = DEF(GCC44_IA32_X64_DLINK_COMMON) > DEFINE GCC45_IA32_X64_ASLDLINK_FLAGS = DEF(GCC44_IA32_X64_ASLDLINK_FLAGS) > DEFINE GCC45_IA32_X64_DLINK_FLAGS= DEF(GCC44_IA32_X64_DLINK_FLAGS) > +DEFINE GCC45_IA32_DLINK2_FLAGS = DEF(GCC44_IA32_DLINK2_FLAGS) > DEFINE GCC45_X64_DLINK_FLAGS = DEF(GCC44_X64_DLINK_FLAGS) > +DEFINE GCC45_X64_DLINK2_FLAGS= DEF(GCC44_X64_DLINK2_FLAGS) > DEFINE GCC45_ASM_FLAGS = DEF(GCC44_ASM_FLAGS) > > DEFINE GCC46_IA32_CC_FLAGS = DEF(GCC45_IA32_CC_FLAGS) -Wno-address > -Wno-unused-but-set-variable > @@ -3866,7 +3870,9 @@ DEFINE GCC46_X64_CC_FLAGS= > DEF(GCC45_X64_CC_FLAGS) -Wno-address -Wno > DEFINE GCC46_IA32_X64_DLINK_COMMON = DEF(GCC45_IA32_X64_DLINK_COMMON) > DEFINE GCC46_IA32_X64_ASLDLINK_FLAGS = DEF(GCC45_IA32_X64_ASLDLINK_FLAGS) > DEFINE GCC46_IA32_X64_DLINK_FLAGS= DEF(GCC45_IA32_X64_DLINK_FLAGS) > +DEFINE GCC46_IA32_DLINK2_FLAGS = DEF(GCC45_IA32_DLINK2_FLAGS) > DEFINE GCC46_X64_DLINK_FLAGS = DEF(GCC45_X64_DLINK_FLAGS) > +DEFINE GCC46_X64_DLINK2_FLAGS= DEF(GCC45_X64_DLINK2_FLAGS) > DEFINE GCC46_ASM_FLAGS = DEF(GCC45_ASM_FLAGS) > DEFINE GCC46_ARM_ASM_FLAGS = $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) > DEF(GCC_ASM_FLAGS) -mlittle-endian > DEFINE GCC46_ARM_CC_FLAGS= $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) > DEF(GCC44_ALL_CC_FLAGS) DEF(GCC_ARM_CC_FLAGS) -fstack-protector > @@ -3878,7 +3884,9 @@ DEFINE GCC47_X64_CC_FLAGS= > DEF(GCC46_X64_CC_FLAGS) > DEFINE GCC47_IA32_X64_DLINK_COMMON = DEF(GCC46_IA32_X64_DLINK_COMMON) > DEFI
[edk2] [PATCH v3 12/12] BaseTools/X86|IA32: move to unified GCC linker script
Drop the GCC 4.4/X86 and 4.9/X86 specific linker scripts and use the new unified one instead. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ard Biesheuvel --- BaseTools/Conf/tools_def.template| 28 +-- BaseTools/Scripts/gcc-4K-align-ld-script | 38 BaseTools/Scripts/gcc4.4-ld-script | 38 BaseTools/Scripts/gcc4.9-ld-script | 38 4 files changed, 26 insertions(+), 116 deletions(-) diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template index d3dfdc41ada1..eeb488fb3597 100644 --- a/BaseTools/Conf/tools_def.template +++ b/BaseTools/Conf/tools_def.template @@ -3847,10 +3847,12 @@ DEFINE GCC_AARCH64_RC_FLAGS= -I binary -O elf64-littleaarch64 -B aarch64 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_X64_DLINK_COMMON = -nostdlib -n -q --gc-sections --script=$(EDK_TOOLS_PATH)/Scripts/gcc4.4-ld-script +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 +DEFINE GCC44_IA32_DLINK2_FLAGS = DEF(GCC_DLINK2_FLAGS_COMMON) --defsym=PECOFF_HEADER_SIZE=0x220 DEFINE GCC44_X64_DLINK_FLAGS = DEF(GCC44_IA32_X64_DLINK_FLAGS) -melf_x86_64 --oformat=elf64-x86-64 +DEFINE GCC44_X64_DLINK2_FLAGS= DEF(GCC_DLINK2_FLAGS_COMMON) --defsym=PECOFF_HEADER_SIZE=0x228 DEFINE GCC44_ASM_FLAGS = DEF(GCC_ASM_FLAGS) DEFINE GCC45_IA32_CC_FLAGS = DEF(GCC44_IA32_CC_FLAGS) @@ -3858,7 +3860,9 @@ DEFINE GCC45_X64_CC_FLAGS= DEF(GCC44_X64_CC_FLAGS) DEFINE GCC45_IA32_X64_DLINK_COMMON = DEF(GCC44_IA32_X64_DLINK_COMMON) DEFINE GCC45_IA32_X64_ASLDLINK_FLAGS = DEF(GCC44_IA32_X64_ASLDLINK_FLAGS) DEFINE GCC45_IA32_X64_DLINK_FLAGS= DEF(GCC44_IA32_X64_DLINK_FLAGS) +DEFINE GCC45_IA32_DLINK2_FLAGS = DEF(GCC44_IA32_DLINK2_FLAGS) DEFINE GCC45_X64_DLINK_FLAGS = DEF(GCC44_X64_DLINK_FLAGS) +DEFINE GCC45_X64_DLINK2_FLAGS= DEF(GCC44_X64_DLINK2_FLAGS) DEFINE GCC45_ASM_FLAGS = DEF(GCC44_ASM_FLAGS) DEFINE GCC46_IA32_CC_FLAGS = DEF(GCC45_IA32_CC_FLAGS) -Wno-address -Wno-unused-but-set-variable @@ -3866,7 +3870,9 @@ DEFINE GCC46_X64_CC_FLAGS= DEF(GCC45_X64_CC_FLAGS) -Wno-address -Wno DEFINE GCC46_IA32_X64_DLINK_COMMON = DEF(GCC45_IA32_X64_DLINK_COMMON) DEFINE GCC46_IA32_X64_ASLDLINK_FLAGS = DEF(GCC45_IA32_X64_ASLDLINK_FLAGS) DEFINE GCC46_IA32_X64_DLINK_FLAGS= DEF(GCC45_IA32_X64_DLINK_FLAGS) +DEFINE GCC46_IA32_DLINK2_FLAGS = DEF(GCC45_IA32_DLINK2_FLAGS) DEFINE GCC46_X64_DLINK_FLAGS = DEF(GCC45_X64_DLINK_FLAGS) +DEFINE GCC46_X64_DLINK2_FLAGS= DEF(GCC45_X64_DLINK2_FLAGS) DEFINE GCC46_ASM_FLAGS = DEF(GCC45_ASM_FLAGS) DEFINE GCC46_ARM_ASM_FLAGS = $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ASM_FLAGS) -mlittle-endian DEFINE GCC46_ARM_CC_FLAGS= $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC44_ALL_CC_FLAGS) DEF(GCC_ARM_CC_FLAGS) -fstack-protector @@ -3878,7 +3884,9 @@ DEFINE GCC47_X64_CC_FLAGS= DEF(GCC46_X64_CC_FLAGS) DEFINE GCC47_IA32_X64_DLINK_COMMON = DEF(GCC46_IA32_X64_DLINK_COMMON) DEFINE GCC47_IA32_X64_ASLDLINK_FLAGS = DEF(GCC46_IA32_X64_ASLDLINK_FLAGS) DEFINE GCC47_IA32_X64_DLINK_FLAGS= DEF(GCC46_IA32_X64_DLINK_FLAGS) +DEFINE GCC47_IA32_DLINK2_FLAGS = DEF(GCC46_IA32_DLINK2_FLAGS) DEFINE GCC47_X64_DLINK_FLAGS = DEF(GCC46_X64_DLINK_FLAGS) +DEFINE GCC47_X64_DLINK2_FLAGS= DEF(GCC46_X64_DLINK2_FLAGS) DEFINE GCC47_ASM_FLAGS = DEF(GCC46_ASM_FLAGS) DEFINE GCC47_ARM_ASM_FLAGS = DEF(GCC46_ARM_ASM_FLAGS) DEFINE GCC47_AARCH64_ASM_FLAGS = $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ASM_FLAGS) -mlittle-endian @@ -3895,7 +3903,9 @@ DEFINE GCC48_X64_CC_FLAGS= DEF(GCC47_X64_CC_FLAGS) DEFINE GCC48_IA32_X64_DLINK_COMMON = DEF(GCC47_IA32_X64_DLINK_COMMON) DEFINE GCC48_IA32_X64_ASLDLINK_FLAGS = DEF(GCC47_IA32_X64_ASLDLINK_FLAGS) DEFINE GCC48_IA32_X64_DLINK_FLAGS= DEF(GCC47_IA32_X64_DLINK_FLAGS) +DEFINE GCC48_IA32_DLINK2_FLAGS = DEF(GCC47_IA32_DLINK2_FLAGS) DEFINE GCC48_X64_DLINK_FLAGS = DEF(GCC47_X64_DLINK_FLAGS) +DE