From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from out2-smtp.messagingengine.com (out2-smtp.messagingengine.com [66.111.4.26]) by mx.groups.io with SMTP id smtpd.web08.3436.1660964793599058399 for ; Fri, 19 Aug 2022 20:06:33 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="signature has expired" header.i=@bsdio.com header.s=fm2 header.b=ofbVwF0x; spf=pass (domain: bsdio.com, ip: 66.111.4.26, mailfrom: rebecca@bsdio.com) Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.nyi.internal (Postfix) with ESMTP id D6CBB5C0209; Fri, 19 Aug 2022 23:06:32 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute5.internal (MEProxy); Fri, 19 Aug 2022 23:06:32 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdio.com; h=cc :cc:content-type:date:date:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:sender:subject :subject:to:to; s=fm2; t=1660964792; x=1661051192; bh=ZB0gt/7wbE BG76Uj3f5IAldggoCQcq7Z+X5ei66LXYw=; b=ofbVwF0xVmP5Q7hAcaqa1v/nIC 9iieBHlCVUYkR4yFqEhKq51HFZxq3ZoRur3ZXOSPaFGIwSS64Q30SCYCed0XXCRn LD7RpRGmc765iLm7LWZMovoSxEypRMjNOktVImqt6zLZbLbLFs3CERB+GPpVWctA NdPFOtaGi68gd/TKTu7E8QzmNL1ymVUmOVVqjdd1LHRpcGIzcfVh6eLclnjNn8a4 dw+y5DHEyYXEB6wGpvNH74Y/wOh+914qNj3m8VGebWFWjzlD+/lGEgxa+LxnYcKC 3O3DPmUQzYHRveAa26FzCxr+Nw3XpcQsbmedQyyiT0JZ5BzITSzGiGoIrqZQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:date:date:feedback-id :feedback-id:from:from:in-reply-to:in-reply-to:message-id :mime-version:references:reply-to:sender:subject:subject:to:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; t=1660964792; x=1661051192; bh=ZB0gt/7wbEBG76Uj3f5IAldggoCQ cq7Z+X5ei66LXYw=; b=0yhxBNpUnJN/S7kHdnNxUSTDY0/+G9RL9kA4ArTI3KRj J6gf0C2yE37kHu6VvJXMe90sBWWYdVr47X7rrQghPUKy3tNHWBMdcYZequTmIrb6 zAiej7g3Sa1jgR3l7COpFNqSDLstNXwAwNwPSQVAUo6Egk/rHxcyAnXCxndWY1oq uHK9DA/5p1bg4xzy3L09GAFhjzX2Hm0bmi2ivcgZr+kcvOYUXRd963UuSjx7IQdO QIskh2rzSUBuHeGOfcqv6irRRNGTjPiO6ArG3QpzucF5pSrcg/mrCWBGmXbHeJuH CXVp+hsIJyfToLupRc6LgM/z7XQz5agRulk0wAuS2w== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrvdeivddgieegucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurheptgfkffggfgfuvfevfhfhjgesrgdtreertdefjeenucfhrhhomheptfgvsggv tggtrgcuvehrrghnuceorhgvsggvtggtrgessghsughiohdrtghomheqnecuggftrfgrth htvghrnhepkeffhefhtefhgfdthfdujeeggfdujeekgedthfejueduudegffevfeffkedu hffhnecuffhomhgrihhnpehgrhhouhhpshdrihhonecuvehluhhsthgvrhfuihiivgeptd enucfrrghrrghmpehmrghilhhfrhhomheprhgvsggvtggtrgessghsughiohdrtghomh X-ME-Proxy: Feedback-ID: i5b994698:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri, 19 Aug 2022 23:06:31 -0400 (EDT) Message-ID: <16f27ae8-5553-1cf3-e6c9-79c0d03a868f@bsdio.com> Date: Fri, 19 Aug 2022 21:06:29 -0600 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 Subject: Re: [edk2-devel] Problems building some Arm platforms (__stack_chk_guard/__stack_chk_fail, _GLOBAL_OFFSET_TABLE_) To: Pedro Falcato Cc: edk2-devel-groups-io , "Kinney, Michael D" , Leif Lindholm , Ard Biesheuvel , =?UTF-8?Q?Marvin_H=c3=a4user?= References: <170CE325F85990DA.4359@groups.io> <5cd26f56-65c2-7994-04fa-1721fe9b1514@bsdio.com> <7c9dad7d-a229-cfb2-6a19-e63178713f72@bsdio.com> From: "Rebecca Cran" In-Reply-To: Content-Type: multipart/alternative; boundary="------------EO07wH7mJ44oKYaEQnpphITR" Content-Language: en-US --------------EO07wH7mJ44oKYaEQnpphITR Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Other platform such as Platform/Qemu/SbsaQemu/SbsaQemu.dsc have:   # Add support for GCC stack protector   NULL|MdePkg/Library/BaseStackCheckLib/BaseStackCheckLib.inf -- Rebecca Cran On 8/19/22 20:34, Pedro Falcato wrote: > I see the issue: We're not passing -fno-stack-protector to AARCH64 GCC > toolchains (although arguably we should just enable support for > it...). Can you try hacking up your tools_def to add > -fno-stack-protector to GCC_AARCH64_CC_FLAGS? It should fix your build > issues. > > On Sat, Aug 20, 2022 at 2:51 AM Rebecca Cran wrote: > > I'm using gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1) on > Ubuntu 20.04.4, from the Ubuntu repo. > > I'm building it with: > > > export PACKAGES_PATH=$PWD/edk2:$PWD/edk2-platforms:$PWD/edk2-non-osi > export WORKSPACE=$PWD > export GCC5_AARCH64_PREFIX=aarch64-linux-gnu- > > . ./edk2/edksetup.sh > build -p ./Features/Ext4Pkg/Ext4Pkg.dsc -a AARCH64 -b RELEASE -t GCC5 > > > Some of the messages are: > > > "aarch64-linux-gnu-gcc" -o > /home/bcran/src/beaglebone/Build/Ext4Pkg/RELEASE_GCC5/AARCH64/Features/Ext4Pkg/Ext4Dxe/Ext4Dxe/DEBUG/Ext4Dxe.dll > -Wl,--emit-relocs -nostdlib -Wl,--gc-sections -u _ModuleEntryPoint > -Wl,-e,_ModuleEntryPoint,-Map,/home/bcran/src/beaglebone/Build/Ext4Pkg/RELEASE_GCC5/AARCH64/Features/Ext4Pkg/Ext4Dxe/Ext4Dxe/DEBUG/Ext4Dxe.map > -z common-page-size=0x20 -z common-page-size=0x1000 -flto -Os > -L/home/bcran/src/beaglebone/edk2/ArmPkg/Library/GccLto > -llto-aarch64 -Wl,-plugin-opt=-pass-through=-llto-aarch64 > -Wno-lto-type-mismatch > -Wl,--start-group,@/home/bcran/src/beaglebone/Build/Ext4Pkg/RELEASE_GCC5/AARCH64/Features/Ext4Pkg/Ext4Dxe/Ext4Dxe/OUTPUT/static_library_files.lst,--end-group > -g -Os -fshort-wchar -fno-builtin -fno-strict-aliasing -Wall > -Werror -Wno-array-bounds -include AutoGen.h -fno-common > -ffunction-sections -fdata-sections > -DSTRING_ARRAY_NAME=Ext4DxeStrings -g -Os -fshort-wchar > -fno-builtin -fno-strict-aliasing -Wall -Werror -Wno-array-bounds > -include AutoGen.h -fno-common -mlittle-endian -fno-short-enums > -fverbose-asm -funsigned-char -ffunction-sections -fdata-sections > -Wno-address -fno-asynchronous-unwind-tables -fno-unwind-tables > -fno-pic -fno-pie -ffixed-x18 -mcmodel=small -flto > -Wno-unused-but-set-variable -Wno-unused-const-variable -D > DISABLE_NEW_DEPRECATED_INTERFACES > -Wl,--script=/home/bcran/src/beaglebone/edk2/BaseTools/Scripts/GccBase.lds > -Wl,--defsym=PECOFF_HEADER_SIZE=0x228 -Wno-error > /usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: > /tmp/Ext4Dxe.dll.sETaOX.ltrans0.ltrans.o: in function > `InternalAllocatePool.constprop.0': > /home/bcran/src/beaglebone/edk2/MdePkg/Library/UefiMemoryAllocationLib/MemoryAllocationLib.c:368: > undefined reference to `__stack_chk_guard' > /usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: > /tmp/Ext4Dxe.dll.sETaOX.ltrans0.ltrans.o: relocation > R_AARCH64_ADR_PREL_PG_HI21 against symbol `__stack_chk_guard' > which may bind externally can not be used when making a shared > object; recompile with -fPIC > /home/bcran/src/beaglebone/edk2/MdePkg/Library/UefiMemoryAllocationLib/MemoryAllocationLib.c:368:(.text.InternalAllocatePool.constprop.0+0xc): > dangerous relocation: unsupported relocation > /usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: > /home/bcran/src/beaglebone/edk2/MdePkg/Library/UefiMemoryAllocationLib/MemoryAllocationLib.c:368: > undefined reference to `__stack_chk_guard' > /usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: > /home/bcran/src/beaglebone/edk2/MdePkg/Library/UefiMemoryAllocationLib/MemoryAllocationLib.c:382: > undefined reference to `__stack_chk_fail' > /usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: > /tmp/Ext4Dxe.dll.sETaOX.ltrans0.ltrans.o: in function > `OrderedCollectionInsert.constprop.0': > /home/bcran/src/beaglebone/edk2/MdePkg/Library/BaseOrderedCollectionRedBlackTreeLib/BaseOrderedCollectionRedBlackTreeLib.c:584: > undefined reference to `__stack_chk_guard' > > -- > Rebecca Cran > > > On 8/19/22 18:46, Pedro Falcato wrote: >> Hi Rebecca, >> >> What EDK2 toolchain are you using? And how is your toolchain >> configured (or where did you get it from?)? It seems that it's >> trying to use the stack protector automatically... >> >> Thanks, >> Pedro >> >> >> On Sat, 20 Aug 2022, 00:40 Rebecca Cran, wrote: >> >> ./Features/Ext4Pkg/Ext4Pkg.dsc is also failing - with errors >> about __stack_chk_guard and __stack_chk_fail. >> >> >> And I get an error from Andy Hayes' email: "Your message >> couldn't be delivered to the recipient because you don't have >> permission to send to it." >> >> >> -- >> Rebecca Cran >> >> >> On 8/19/22 17:35, Rebecca Cran wrote: >>> >>> I have an armplatbld.sh script that goes through and tries >>> to build as many of the Arm (AARCH64 and ARM) platforms in >>> edk2-platforms as possible. >>> >>> I'm think this used to work for these, but I'm getting some >>> errors now. >>> >>> I'm using edk2-platforms >>> 46686eeb7e78efe603badd86f13777d9fb070fb8 and edk2 >>> e2ac68a23b4954d5c0399913a1df3dd9fd90315d. >>> >>> >>> Drivers/ASIX/Asix.dsc (fails with undefined references to >>> __stack_chk_guard and __stack_chk_fail) >>> >>> Drivers/DisplayLink/DisplayLinkPkg/DisplayLinkPkg.dsc (fails >>> with undefined references to __stack_chk_guard and >>> __stack_chk_fail) >>> Platform/Socionext/DeveloperBox/DeveloperBoxMm.dsc (fails >>> with bad definition for symbol >>> '_GLOBAL_OFFSET_TABLE_'@0x72d8 or unsupported symbol type.  >>> For example, absolute and undefined symbols are not supported.) >>> >>> Drivers/StandaloneMmCpu/StandaloneMmCpu (fails with >>> undefined references to __stack_chk_guard and __stack_chk_fail) >>> Platform/StandaloneMm/PlatformStandaloneMmPkg/PlatformStandaloneMmRpmb.dsc(fails >>> with bad definition for symbol >>> '_GLOBAL_OFFSET_TABLE_'@0x72d8 or unsupported symbol type.  >>> For example, absolute and undefined symbols are not supported.) >>> >>> >>> -- >>> Rebecca Cran >>> >>> >> > > > -- > Pedro Falcato --------------EO07wH7mJ44oKYaEQnpphITR Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit

Other platform such as Platform/Qemu/SbsaQemu/SbsaQemu.dsc have:


  # Add support for GCC stack protector
  NULL|MdePkg/Library/BaseStackCheckLib/BaseStackCheckLib.inf


--

Rebecca Cran


On 8/19/22 20:34, Pedro Falcato wrote:
I see the issue: We're not passing -fno-stack-protector to AARCH64 GCC toolchains (although arguably we should just enable support for it...). Can you try hacking up your tools_def to add -fno-stack-protector to GCC_AARCH64_CC_FLAGS? It should fix your build issues.

On Sat, Aug 20, 2022 at 2:51 AM Rebecca Cran <rebecca@bsdio.com> wrote:

I'm using gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1) on Ubuntu 20.04.4, from the Ubuntu repo.

I'm building it with:


export PACKAGES_PATH=$PWD/edk2:$PWD/edk2-platforms:$PWD/edk2-non-osi
export WORKSPACE=$PWD
export GCC5_AARCH64_PREFIX=aarch64-linux-gnu-

. ./edk2/edksetup.sh
build -p ./Features/Ext4Pkg/Ext4Pkg.dsc -a AARCH64 -b RELEASE -t GCC5


Some of the messages are:


"aarch64-linux-gnu-gcc" -o /home/bcran/src/beaglebone/Build/Ext4Pkg/RELEASE_GCC5/AARCH64/Features/Ext4Pkg/Ext4Dxe/Ext4Dxe/DEBUG/Ext4Dxe.dll -Wl,--emit-relocs -nostdlib -Wl,--gc-sections -u _ModuleEntryPoint -Wl,-e,_ModuleEntryPoint,-Map,/home/bcran/src/beaglebone/Build/Ext4Pkg/RELEASE_GCC5/AARCH64/Features/Ext4Pkg/Ext4Dxe/Ext4Dxe/DEBUG/Ext4Dxe.map -z common-page-size=0x20 -z common-page-size=0x1000 -flto -Os -L/home/bcran/src/beaglebone/edk2/ArmPkg/Library/GccLto -llto-aarch64 -Wl,-plugin-opt=-pass-through=-llto-aarch64 -Wno-lto-type-mismatch -Wl,--start-group,@/home/bcran/src/beaglebone/Build/Ext4Pkg/RELEASE_GCC5/AARCH64/Features/Ext4Pkg/Ext4Dxe/Ext4Dxe/OUTPUT/static_library_files.lst,--end-group   -g -Os -fshort-wchar -fno-builtin -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -include AutoGen.h -fno-common -ffunction-sections -fdata-sections -DSTRING_ARRAY_NAME=Ext4DxeStrings -g -Os -fshort-wchar -fno-builtin -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -include AutoGen.h -fno-common -mlittle-endian -fno-short-enums -fverbose-asm -funsigned-char -ffunction-sections -fdata-sections -Wno-address -fno-asynchronous-unwind-tables -fno-unwind-tables -fno-pic -fno-pie -ffixed-x18 -mcmodel=small -flto -Wno-unused-but-set-variable -Wno-unused-const-variable -D DISABLE_NEW_DEPRECATED_INTERFACES -Wl,--script=/home/bcran/src/beaglebone/edk2/BaseTools/Scripts/GccBase.lds -Wl,--defsym=PECOFF_HEADER_SIZE=0x228 -Wno-error
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /tmp/Ext4Dxe.dll.sETaOX.ltrans0.ltrans.o: in function `InternalAllocatePool.constprop.0':
/home/bcran/src/beaglebone/edk2/MdePkg/Library/UefiMemoryAllocationLib/MemoryAllocationLib.c:368: undefined reference to `__stack_chk_guard'
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /tmp/Ext4Dxe.dll.sETaOX.ltrans0.ltrans.o: relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `__stack_chk_guard' which may bind externally can not be used when making a shared object; recompile with -fPIC
/home/bcran/src/beaglebone/edk2/MdePkg/Library/UefiMemoryAllocationLib/MemoryAllocationLib.c:368:(.text.InternalAllocatePool.constprop.0+0xc): dangerous relocation: unsupported relocation
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /home/bcran/src/beaglebone/edk2/MdePkg/Library/UefiMemoryAllocationLib/MemoryAllocationLib.c:368: undefined reference to `__stack_chk_guard'
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /home/bcran/src/beaglebone/edk2/MdePkg/Library/UefiMemoryAllocationLib/MemoryAllocationLib.c:382: undefined reference to `__stack_chk_fail'
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: /tmp/Ext4Dxe.dll.sETaOX.ltrans0.ltrans.o: in function `OrderedCollectionInsert.constprop.0':
/home/bcran/src/beaglebone/edk2/MdePkg/Library/BaseOrderedCollectionRedBlackTreeLib/BaseOrderedCollectionRedBlackTreeLib.c:584: undefined reference to `__stack_chk_guard'

--
Rebecca Cran


On 8/19/22 18:46, Pedro Falcato wrote:
Hi Rebecca,

What EDK2 toolchain are you using? And how is your toolchain configured (or where did you get it from?)? It seems that it's trying to use the stack protector automatically...

Thanks,
Pedro


On Sat, 20 Aug 2022, 00:40 Rebecca Cran, <rebecca@bsdio.com> wrote:

./Features/Ext4Pkg/Ext4Pkg.dsc is also failing - with errors about __stack_chk_guard and __stack_chk_fail.


And I get an error from Andy Hayes' email: "Your message couldn't be delivered to the recipient because you don't have permission to send to it."


--
Rebecca Cran


On 8/19/22 17:35, Rebecca Cran wrote:

I have an armplatbld.sh script that goes through and tries to build as many of the Arm (AARCH64 and ARM) platforms in edk2-platforms as possible.

I'm think this used to work for these, but I'm getting some errors now.

I'm using edk2-platforms 46686eeb7e78efe603badd86f13777d9fb070fb8 and edk2 e2ac68a23b4954d5c0399913a1df3dd9fd90315d.


Drivers/ASIX/Asix.dsc (fails with undefined references to __stack_chk_guard and __stack_chk_fail)

Drivers/DisplayLink/DisplayLinkPkg/DisplayLinkPkg.dsc (fails with undefined references to __stack_chk_guard and __stack_chk_fail)
Platform/Socionext/DeveloperBox/DeveloperBoxMm.dsc (fails with bad definition for symbol '_GLOBAL_OFFSET_TABLE_'@0x72d8 or unsupported symbol type.  For example, absolute and undefined symbols are not supported.)

Drivers/StandaloneMmCpu/StandaloneMmCpu (fails with undefined references to __stack_chk_guard and __stack_chk_fail)
Platform/StandaloneMm/PlatformStandaloneMmPkg/PlatformStandaloneMmRpmb.dsc (fails with bad definition for symbol '_GLOBAL_OFFSET_TABLE_'@0x72d8 or unsupported symbol type.  For example, absolute and undefined symbols are not supported.)


--
Rebecca Cran



--
Pedro Falcato
--------------EO07wH7mJ44oKYaEQnpphITR--