public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* Warnings cross-building AARCH64 package with GCC 6.2.1 (-Wlto-type-mismatch)
@ 2017-05-09  0:48 Rebecca Cran
  2017-06-20 16:24 ` Ard Biesheuvel
  0 siblings, 1 reply; 2+ messages in thread
From: Rebecca Cran @ 2017-05-09  0:48 UTC (permalink / raw)
  To: edk2-devel@lists.01.org

I suspect I should be trying to build AARCH64 stuff with something more
like gcc 4.8 instead of 6.2.1, but when I did build the
Overdrive1000Board package I saw lots of warnings complaining about the
implementation not matching the prototype (with
the warning being -Wlto-type-mismatch).  

I cross-compiled on an OpenSUSE x64 system with
aarch64-suse-linux-gcc-6, with the commandline:

build -a AARCH64 -t GCC5 -b RELEASE -p
OpenPlatformPkg/Platforms/AMD/Styx/Overdrive1000Board/Overdrive1000Board.dsc

ArmPlatformPkg is from
linaro git master, edk2 is tianocore git master

The warnings were all similar to:

/workspace/edk2/MdePkg/Include/Library/BaseMemoryLib.h:462:1:
warning: type of 'IsZeroGuid' does not match original declaration
[-Wlto-type-mismatch] IsZeroGuid ( ^
//workspace/edk2/MdePkg/Library/BaseMemoryLibOptDxe/Arm/MemLibGuid.c:158:1:
note: 'IsZeroGuid' was previously declared here IsZeroGuid (
 ^
/workspace/edk2/MdePkg/Library/BaseMemoryLibOptDxe/Arm/MemLibGuid.c:158:1:
note: code may be misoptimized unless -fno-strict-aliasing is used



Are these real problems, or just because gcc 6.2 and/or LTO aren't ready
for AARCH64 yet?


-- 
Rebecca


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Warnings cross-building AARCH64 package with GCC 6.2.1 (-Wlto-type-mismatch)
  2017-05-09  0:48 Warnings cross-building AARCH64 package with GCC 6.2.1 (-Wlto-type-mismatch) Rebecca Cran
@ 2017-06-20 16:24 ` Ard Biesheuvel
  0 siblings, 0 replies; 2+ messages in thread
From: Ard Biesheuvel @ 2017-06-20 16:24 UTC (permalink / raw)
  To: Rebecca Cran, Leif Lindholm; +Cc: edk2-devel@lists.01.org

On 9 May 2017 at 02:48, Rebecca Cran <rebecca@bluestop.org> wrote:
> I suspect I should be trying to build AARCH64 stuff with something more
> like gcc 4.8 instead of 6.2.1, but when I did build the
> Overdrive1000Board package I saw lots of warnings complaining about the
> implementation not matching the prototype (with
> the warning being -Wlto-type-mismatch).
>
> I cross-compiled on an OpenSUSE x64 system with
> aarch64-suse-linux-gcc-6, with the commandline:
>
> build -a AARCH64 -t GCC5 -b RELEASE -p
> OpenPlatformPkg/Platforms/AMD/Styx/Overdrive1000Board/Overdrive1000Board.dsc
>
> ArmPlatformPkg is from
> linaro git master, edk2 is tianocore git master
>
> The warnings were all similar to:
>
> /workspace/edk2/MdePkg/Include/Library/BaseMemoryLib.h:462:1:
> warning: type of 'IsZeroGuid' does not match original declaration
> [-Wlto-type-mismatch] IsZeroGuid ( ^
> //workspace/edk2/MdePkg/Library/BaseMemoryLibOptDxe/Arm/MemLibGuid.c:158:1:
> note: 'IsZeroGuid' was previously declared here IsZeroGuid (
>  ^
> /workspace/edk2/MdePkg/Library/BaseMemoryLibOptDxe/Arm/MemLibGuid.c:158:1:
> note: code may be misoptimized unless -fno-strict-aliasing is used
>
>
>
> Are these real problems, or just because gcc 6.2 and/or LTO aren't ready
> for AARCH64 yet?
>

Hi,

This issue is caused by the fact that some libraries are built with
-mstrict-align on AArch64. This is necessary since code that may
execute with the MMU off should not use unaligned access, which GCC
may emit by default for AArch64 targets.


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2017-06-20 16:23 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-05-09  0:48 Warnings cross-building AARCH64 package with GCC 6.2.1 (-Wlto-type-mismatch) Rebecca Cran
2017-06-20 16:24 ` Ard Biesheuvel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox