[edk2-devel] Building EDK2 code on arm64 (aarch64) - BaseTools fails
Is there any expectation that EDK2 will build on non-x86 systems? I tried building BaseTools (from git master, ae2fb9ead47b5abaf2a4e815b5f57c8f4838b221) using GCC 8.2 on a SoftIron OverDrive 1000 (running FreeBSD) but there are lots of errors, such as: gcc -c -I .. -I ../Include/Common -I ../Include/ -I ../Include/IndustryStandard -I ../Common/ -I .. -I . -I ../Include/Arm/ -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-restrict -Wno-unused-result -nostdlib -g -O2 BasePeCoff.c -o BasePeCoff.o BasePeCoff.c: In function 'PeCoffLoaderGetPeHeader': BasePeCoff.c:120:49: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast] *PeHdr = (EFI_IMAGE_OPTIONAL_HEADER_UNION *) ((UINTN)ImageContext->Handle + ImageContext->PeCoffHeaderOffset); ^ BasePeCoff.c:120:12: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] *PeHdr = (EFI_IMAGE_OPTIONAL_HEADER_UNION *) ((UINTN)ImageContext->Handle + ImageContext->PeCoffHeaderOffset); ^ BasePeCoff.c: In function 'PeCoffLoaderImageAddress': BasePeCoff.c:551:10: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] return (UINT8 *) ((UINTN) ImageContext->ImageAddress + Address); ^ -- Rebecca Cran -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#38772): https://edk2.groups.io/g/devel/message/38772 Mute This Topic: https://groups.io/mt/31015935/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] Building EDK2 code on arm64 (aarch64) - BaseTools fails
On 4/10/19 6:57 AM, Rebecca Cran via Groups.Io wrote: > Is there any expectation that EDK2 will build on non-x86 systems? I have no problem using Ubuntu Bionic on Aarch64 using the default GCC. $ lsb_release -cd Description:Ubuntu 18.04.2 LTS Codename: bionic $ uname -ms Linux aarch64 $ gcc -v gcc version 7.3.0 (Ubuntu/Linaro 7.3.0-27ubuntu1~18.04) > I tried building BaseTools (from git master, > ae2fb9ead47b5abaf2a4e815b5f57c8f4838b221) using GCC 8.2 on a SoftIron > OverDrive 1000 (running FreeBSD) but there are lots of errors, such as: > > > gcc -c -I .. -I ../Include/Common -I ../Include/ -I > ../Include/IndustryStandard -I ../Common/ -I .. -I . -I ../Include/Arm/ > -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror > -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-restrict > -Wno-unused-result -nostdlib -g -O2 BasePeCoff.c -o BasePeCoff.o > BasePeCoff.c: In function 'PeCoffLoaderGetPeHeader': > BasePeCoff.c:120:49: error: cast from pointer to integer of different > size [-Werror=pointer-to-int-cast] > *PeHdr = (EFI_IMAGE_OPTIONAL_HEADER_UNION *) > ((UINTN)ImageContext->Handle + ImageContext->PeCoffHeaderOffset); > ^ > BasePeCoff.c:120:12: error: cast to pointer from integer of different > size [-Werror=int-to-pointer-cast] > *PeHdr = (EFI_IMAGE_OPTIONAL_HEADER_UNION *) > ((UINTN)ImageContext->Handle + ImageContext->PeCoffHeaderOffset); > ^ > BasePeCoff.c: In function 'PeCoffLoaderImageAddress': > BasePeCoff.c:551:10: error: cast to pointer from integer of different > size [-Werror=int-to-pointer-cast] > return (UINT8 *) ((UINTN) ImageContext->ImageAddress + Address); > ^ This doesn't look like an architecture problem. It seems your GCC version isn't checked correctly by BaseTools. This warning is supposed to be disabled, see: StdLib/LibC/Stdio/Stdio.inf: GCC:*_*_*_CC_FLAGS= -fno-builtin -Wno-pointer-to-int-cast -Wno-int-to-pointer-cast -Wno-format -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#38815): https://edk2.groups.io/g/devel/message/38815 Mute This Topic: https://groups.io/mt/31015935/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] Building EDK2 code on arm64 (aarch64) - BaseTools fails
On 2019-04-10 08:41, Philippe Mathieu-Daudé wrote: This doesn't look like an architecture problem. It seems your GCC version isn't checked correctly by BaseTools. This warning is supposed to be disabled, see: StdLib/LibC/Stdio/Stdio.inf: GCC:*_*_*_CC_FLAGS= -fno-builtin -Wno-pointer-to-int-cast -Wno-int-to-pointer-cast -Wno-format Thanks! I shouldn't have posted so late, I didn't look closely enough at the error messages before sending my email. -- Rebecca Cran -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#38817): https://edk2.groups.io/g/devel/message/38817 Mute This Topic: https://groups.io/mt/31015935/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] Building EDK2 code on arm64 (aarch64) - BaseTools fails
On 04/10/19 06:57, Rebecca Cran via Groups.Io wrote: > Is there any expectation that EDK2 will build on non-x86 systems? Yes. It should certainly build on aarch64 (Linux at least). > > I tried building BaseTools (from git master, > ae2fb9ead47b5abaf2a4e815b5f57c8f4838b221) using GCC 8.2 on a SoftIron > OverDrive 1000 (running FreeBSD) but there are lots of errors, such as: The issue here must be "FreeBSD". That's not supported as a build host OS, to my knowledge. I assume the build platform check in the BaseTools makefiles / scripts fail due to FreeBSD. edk2 platforms are otherwise regularly built on aarch64 Linux. Thanks Laszlo > > > gcc -c -I .. -I ../Include/Common -I ../Include/ -I > ../Include/IndustryStandard -I ../Common/ -I .. -I . -I ../Include/Arm/ > -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror > -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-restrict > -Wno-unused-result -nostdlib -g -O2 BasePeCoff.c -o BasePeCoff.o > BasePeCoff.c: In function 'PeCoffLoaderGetPeHeader': > BasePeCoff.c:120:49: error: cast from pointer to integer of different > size [-Werror=pointer-to-int-cast] > *PeHdr = (EFI_IMAGE_OPTIONAL_HEADER_UNION *) > ((UINTN)ImageContext->Handle + ImageContext->PeCoffHeaderOffset); > ^ > BasePeCoff.c:120:12: error: cast to pointer from integer of different > size [-Werror=int-to-pointer-cast] > *PeHdr = (EFI_IMAGE_OPTIONAL_HEADER_UNION *) > ((UINTN)ImageContext->Handle + ImageContext->PeCoffHeaderOffset); > ^ > BasePeCoff.c: In function 'PeCoffLoaderImageAddress': > BasePeCoff.c:551:10: error: cast to pointer from integer of different > size [-Werror=int-to-pointer-cast] > return (UINT8 *) ((UINTN) ImageContext->ImageAddress + Address); > ^ > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#38829): https://edk2.groups.io/g/devel/message/38829 Mute This Topic: https://groups.io/mt/31015935/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] Building EDK2 code on arm64 (aarch64) - BaseTools fails
Yes. No test on FreeBSD. If possible, can you contribute the patch to fix this issue on FreeBSD? Thanks Liming >-Original Message- >From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of >Laszlo Ersek >Sent: Thursday, April 11, 2019 1:31 AM >To: devel@edk2.groups.io; rebe...@bluestop.org >Subject: Re: [edk2-devel] Building EDK2 code on arm64 (aarch64) - BaseTools >fails > >On 04/10/19 06:57, Rebecca Cran via Groups.Io wrote: >> Is there any expectation that EDK2 will build on non-x86 systems? > >Yes. It should certainly build on aarch64 (Linux at least). > >> >> I tried building BaseTools (from git master, >> ae2fb9ead47b5abaf2a4e815b5f57c8f4838b221) using GCC 8.2 on a SoftIron >> OverDrive 1000 (running FreeBSD) but there are lots of errors, such as: > >The issue here must be "FreeBSD". That's not supported as a build host >OS, to my knowledge. > >I assume the build platform check in the BaseTools makefiles / scripts >fail due to FreeBSD. > >edk2 platforms are otherwise regularly built on aarch64 Linux. > >Thanks >Laszlo > >> >> >> gcc -c -I .. -I ../Include/Common -I ../Include/ -I >> ../Include/IndustryStandard -I ../Common/ -I .. -I . -I ../Include/Arm/ >> -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror >> -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-restrict >> -Wno-unused-result -nostdlib -g -O2 BasePeCoff.c -o BasePeCoff.o >> BasePeCoff.c: In function 'PeCoffLoaderGetPeHeader': >> BasePeCoff.c:120:49: error: cast from pointer to integer of different >> size [-Werror=pointer-to-int-cast] >> *PeHdr = (EFI_IMAGE_OPTIONAL_HEADER_UNION *) >> ((UINTN)ImageContext->Handle + ImageContext->PeCoffHeaderOffset); >> ^ >> BasePeCoff.c:120:12: error: cast to pointer from integer of different >> size [-Werror=int-to-pointer-cast] >> *PeHdr = (EFI_IMAGE_OPTIONAL_HEADER_UNION *) >> ((UINTN)ImageContext->Handle + ImageContext->PeCoffHeaderOffset); >> ^ >> BasePeCoff.c: In function 'PeCoffLoaderImageAddress': >> BasePeCoff.c:551:10: error: cast to pointer from integer of different >> size [-Werror=int-to-pointer-cast] >> return (UINT8 *) ((UINTN) ImageContext->ImageAddress + Address); >> ^ >> >> > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#38839): https://edk2.groups.io/g/devel/message/38839 Mute This Topic: https://groups.io/mt/31015935/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] Building EDK2 code on arm64 (aarch64) - BaseTools fails
On 2019-04-10 18:09, Liming Gao wrote: Yes. No test on FreeBSD. If possible, can you contribute the patch to fix this issue on FreeBSD? Thanks. I'm working on fixing it now: it looks like it needs new compiler flags in BaseTools/Source/C/Makefiles/header.makefile, as well as recognizing arm64 as a platform name in addition to aarch64. -- Rebecca Cran -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#38844): https://edk2.groups.io/g/devel/message/38844 Mute This Topic: https://groups.io/mt/31015935/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] Building EDK2 code on arm64 (aarch64) - BaseTools fails
On 2019-04-10 20:07, Rebecca Cran via Groups.Io wrote: Thanks. I'm working on fixing it now: it looks like it needs new compiler flags in BaseTools/Source/C/Makefiles/header.makefile, as well as recognizing arm64 as a platform name in addition to aarch64 It didn't need any compiler flag changes after all: it only needed the change to recognize 'arm64' as a platform name, in addition to avoiding falling through to the 'arm' case which was causing it to still pull in the ARM instead of AARCH64 headers. -- Rebecca Cran -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#38847): https://edk2.groups.io/g/devel/message/38847 Mute This Topic: https://groups.io/mt/31015935/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-