Re: [edk2-devel] Building EDK2 code on arm64 (aarch64) - BaseTools fails

2019-04-10 Thread Philippe Mathieu-Daudé
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

2019-04-10 Thread Rebecca Cran via Groups.Io

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

2019-04-10 Thread Laszlo Ersek
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

2019-04-10 Thread Liming Gao
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

2019-04-10 Thread Rebecca Cran via Groups.Io

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

2019-04-10 Thread Rebecca Cran via Groups.Io

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]
-=-=-=-=-=-=-=-=-=-=-=-