This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug ada/80117] Standard'Word_Size is wrong for aarch64 ILP32
- From: "timo.teras at iki dot fi" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 13 Jul 2017 05:35:24 +0000
- Subject: [Bug ada/80117] Standard'Word_Size is wrong for aarch64 ILP32
- Auto-submitted: auto-generated
- References: <bug-80117-4@http.gcc.gnu.org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80117
--- Comment #23 from Timo Teräs <timo.teras at iki dot fi> ---
(In reply to Andrew Pinski from comment #22)
> (In reply to Timo Teräs from comment #21)
> > This caused a regression for non-multilib builds. Now my non-multilib lp64
> > build fails with:
> > a-cfinve.ads:245:04: warning: in instantiation at a-coboho.adb:55
> > a-cfinve.ads:245:04: warning: types for unchecked conversion have different
> > sizes
> >
> > Probably because the logic added in this patch to Makefile.in picks up
> > 64-bit file only when multilib is enabled.
>
> On which branch? The logic for GCC 7 and GCC 8 are different as Makefile.in
> changes are not used any more. Also did you modify anything as multilib
> itself should be enabled anyways for aarch64 due to the use /lib64
GCC 6.4.0 with some patches.
Should have looked how it detects the multilib type. We have the build
hardwired to use /lib always with
--- ./gcc/config/aarch64/t-aarch64-linux.orig
+++ ./gcc/config/aarch64/t-aarch64-linux
@@ -22,7 +22,7 @@
LIB1ASMFUNCS = _aarch64_sync_cache_range
AARCH_BE = $(if $(findstring TARGET_BIG_ENDIAN_DEFAULT=1, $(tm_defines)),_be)
-MULTILIB_OSDIRNAMES = mabi.lp64=../lib64$(call
if_multiarch,:aarch64$(AARCH_BE)-linux-gnu)
+MULTILIB_OSDIRNAMES = mabi.lp64=../lib
MULTIARCH_DIRNAME = $(call if_multiarch,aarch64$(AARCH_BE)-linux-gnu)
MULTILIB_OSDIRNAMES += mabi.ilp32=../libilp32
So it's conflict between this. This works everywhere else, so I wonder if we
could have the ada makefile check the abi somehow more reliably than pathname?