Reviewed-by: Michael D Kinney <michael.d.kin...@intel.com> Mike
> -----Original Message----- > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Pedro Falcato > Sent: Friday, December 16, 2022 11:50 AM > To: devel@edk2.groups.io > Cc: Pedro Falcato <pedro.falc...@gmail.com>; Marvin Häuser > <mhaeu...@posteo.de>; Feng, Bob C <bob.c.f...@intel.com>; Gao, > Liming <gaolim...@byosoft.com.cn>; Chen, Christine <yuwei.c...@intel.com> > Subject: [edk2-devel] [PATCH 1/1] BaseTools: Fix IA32 UINT64 alignment for > CLANG toolchains > > Currently, UINT64 is not 8-byte aligned for CLANG* toolchains on IA32, > which causes ABI differences between IA32 and X64 in such simple examples as: > > struct S {UINT32 A; UINT64 B;}; > > Pass -malign-double to align it to 8 bytes, as is done for GCC already. > > Signed-off-by: Pedro Falcato <pedro.falc...@gmail.com> > Cc: Marvin Häuser <mhaeu...@posteo.de> > Cc: Bob Feng <bob.c.f...@intel.com> > Cc: Liming Gao <gaolim...@byosoft.com.cn> > Cc: Yuwei Chen <yuwei.c...@intel.com> > --- > BaseTools/Conf/tools_def.template | 18 +++++++++--------- > 1 file changed, 9 insertions(+), 9 deletions(-) > > diff --git a/BaseTools/Conf/tools_def.template > b/BaseTools/Conf/tools_def.template > index c4e4c7ded0af..2c66a11ae31f 100755 > --- a/BaseTools/Conf/tools_def.template > +++ b/BaseTools/Conf/tools_def.template > @@ -2618,15 +2618,15 @@ DEFINE CLANG38_ALL_CC_FLAGS = > DEF(GCC48_ALL_CC_FLAGS) DEF(CLANG38_WARNIN > *_CLANG38_IA32_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS) > DEF(CLANG38_IA32_TARGET) > *_CLANG38_IA32_VFRPP_FLAGS = DEF(GCC_VFRPP_FLAGS) > DEF(CLANG38_IA32_TARGET) > > -DEBUG_CLANG38_IA32_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -m32 -Oz > -flto -march=i586 DEF(CLANG38_IA32_TARGET) -g > +DEBUG_CLANG38_IA32_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -m32 -Oz > -flto -march=i586 DEF(CLANG38_IA32_TARGET) -g - > malign-double > DEBUG_CLANG38_IA32_DLINK_FLAGS = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto > -Wl,-Oz -Wl,-melf_i386 -Wl,--oformat=elf32- > i386 > DEBUG_CLANG38_IA32_DLINK2_FLAGS = DEF(GCC5_IA32_DLINK2_FLAGS) -O3 > > -RELEASE_CLANG38_IA32_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -m32 -Oz > -flto -march=i586 DEF(CLANG38_IA32_TARGET) > +RELEASE_CLANG38_IA32_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -m32 -Oz > -flto -march=i586 DEF(CLANG38_IA32_TARGET) - > malign-double > RELEASE_CLANG38_IA32_DLINK_FLAGS = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto > -Wl,-Oz -Wl,-melf_i386 -Wl,--oformat=elf32- > i386 > RELEASE_CLANG38_IA32_DLINK2_FLAGS = DEF(GCC5_IA32_DLINK2_FLAGS) -O3 > > -NOOPT_CLANG38_IA32_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -m32 -O0 > -march=i586 DEF(CLANG38_IA32_TARGET) -g > +NOOPT_CLANG38_IA32_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -m32 -O0 > -march=i586 DEF(CLANG38_IA32_TARGET) -g -malign- > double > NOOPT_CLANG38_IA32_DLINK_FLAGS = DEF(GCC5_IA32_X64_DLINK_FLAGS) -Wl,-O0 > -Wl,-melf_i386 -Wl,--oformat=elf32-i386 > NOOPT_CLANG38_IA32_DLINK2_FLAGS = DEF(GCC5_IA32_DLINK2_FLAGS) -O0 > > @@ -2806,15 +2806,15 @@ DEFINE CLANGPDB_ALL_CC_FLAGS = > DEF(GCC48_ALL_CC_FLAGS) DEF(CLANGPDB_WARN > *_CLANGPDB_IA32_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS) > DEF(CLANGPDB_IA32_TARGET) > *_CLANGPDB_IA32_VFRPP_FLAGS = DEF(GCC_VFRPP_FLAGS) > DEF(CLANGPDB_IA32_TARGET) > > -DEBUG_CLANGPDB_IA32_CC_FLAGS = DEF(CLANGPDB_ALL_CC_FLAGS) -m32 -Oz > -flto -march=i586 DEF(CLANGPDB_IA32_TARGET) - > gcodeview > +DEBUG_CLANGPDB_IA32_CC_FLAGS = DEF(CLANGPDB_ALL_CC_FLAGS) -m32 -Oz > -flto -march=i586 DEF(CLANGPDB_IA32_TARGET) - > gcodeview -malign-double > DEBUG_CLANGPDB_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 > /OPT:REF /OPT:ICF=10 /ALIGN:32 /FILEALIGN:32 > /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /DLL > /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER > /SAFESEH:NO /BASE:0 /DEBUG:GHASH /MLLVM:-exception-model=wineh /lldmap > DEBUG_CLANGPDB_IA32_DLINK2_FLAGS = > > -RELEASE_CLANGPDB_IA32_CC_FLAGS = DEF(CLANGPDB_ALL_CC_FLAGS) -m32 -Oz > -flto -march=i586 DEF(CLANGPDB_IA32_TARGET) > +RELEASE_CLANGPDB_IA32_CC_FLAGS = DEF(CLANGPDB_ALL_CC_FLAGS) -m32 -Oz > -flto -march=i586 DEF(CLANGPDB_IA32_TARGET) - > malign-double > RELEASE_CLANGPDB_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 > /IGNORE:4254 /OPT:REF /OPT:ICF=10 /ALIGN:32 > /FILEALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /DLL > /ENTRY:$(IMAGE_ENTRY_POINT) > /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /MERGE:.rdata=.data > /MLLVM:-exception-model=wineh /lldmap > RELEASE_CLANGPDB_IA32_DLINK2_FLAGS = > > -NOOPT_CLANGPDB_IA32_CC_FLAGS = DEF(CLANGPDB_ALL_CC_FLAGS) -m32 -O0 > -march=i586 DEF(CLANGPDB_IA32_TARGET) - > gcodeview > +NOOPT_CLANGPDB_IA32_CC_FLAGS = DEF(CLANGPDB_ALL_CC_FLAGS) -m32 -O0 > -march=i586 DEF(CLANGPDB_IA32_TARGET) - > gcodeview -malign-double > NOOPT_CLANGPDB_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 > /OPT:REF /OPT:ICF=10 /ALIGN:32 /FILEALIGN:32 > /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /DLL > /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER > /SAFESEH:NO /BASE:0 /DEBUG:GHASH /MLLVM:-exception-model=wineh /lldmap > NOOPT_CLANGPDB_IA32_DLINK2_FLAGS = > > @@ -2907,15 +2907,15 @@ DEFINE CLANGDWARF_X64_DLINK2_FLAGS = > -Wl,--defsym=PECOFF_HEADER_SIZE=0x22 > *_CLANGDWARF_IA32_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS) > DEF(CLANG38_IA32_TARGET) > *_CLANGDWARF_IA32_VFRPP_FLAGS = DEF(GCC_VFRPP_FLAGS) > DEF(CLANG38_IA32_TARGET) > > -DEBUG_CLANGDWARF_IA32_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -m32 -Oz > -flto -march=i586 DEF(CLANG38_IA32_TARGET) -g > +DEBUG_CLANGDWARF_IA32_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -m32 -Oz > -flto -march=i586 DEF(CLANG38_IA32_TARGET) -g > -malign-double > DEBUG_CLANGDWARF_IA32_DLINK_FLAGS = > DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -flto -Wl,-O3 -Wl,-melf_i386 -Wl,-- > oformat,elf32-i386 > DEBUG_CLANGDWARF_IA32_DLINK2_FLAGS = DEF(CLANGDWARF_IA32_DLINK2_FLAGS) > -O3 -fuse-ld=lld > > -RELEASE_CLANGDWARF_IA32_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -m32 -Oz > -flto -march=i586 DEF(CLANG38_IA32_TARGET) > +RELEASE_CLANGDWARF_IA32_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -m32 -Oz > -flto -march=i586 DEF(CLANG38_IA32_TARGET) - > malign-double > RELEASE_CLANGDWARF_IA32_DLINK_FLAGS = > DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -flto -Wl,-O3 -Wl,-melf_i386 -Wl,-- > oformat,elf32-i386 > RELEASE_CLANGDWARF_IA32_DLINK2_FLAGS = DEF(CLANGDWARF_IA32_DLINK2_FLAGS) > -O3 -fuse-ld=lld > > -NOOPT_CLANGDWARF_IA32_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -m32 -O0 > -march=i586 DEF(CLANG38_IA32_TARGET) -g > +NOOPT_CLANGDWARF_IA32_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -m32 -O0 > -march=i586 DEF(CLANG38_IA32_TARGET) -g - > malign-double > NOOPT_CLANGDWARF_IA32_DLINK_FLAGS = > DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -Wl,-O0 -Wl,-melf_i386 > -Wl,--oformat,elf32- > i386 > NOOPT_CLANGDWARF_IA32_DLINK2_FLAGS = DEF(CLANGDWARF_IA32_DLINK2_FLAGS) > -O0 -fuse-ld=lld > > -- > 2.39.0 > > > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#97515): https://edk2.groups.io/g/devel/message/97515 Mute This Topic: https://groups.io/mt/95717275/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-