Re: [PATCH 10/23] [AARCH64] Detect ILP32 in configure scripts.
From: Joseph Myers
Date: Tue Jun 28 2016 - 13:35:53 EST
On Tue, 28 Jun 2016, Yury Norov wrote:
> On Tue, Jun 28, 2016 at 05:07:49PM +0000, Joseph Myers wrote:
> > <https://sourceware.org/ml/libc-alpha/2016-06/msg00785.html> and
> > <https://sourceware.org/ml/libc-alpha/2014-10/msg00639.html> still apply.
> > Please make the changes requested there before any reposting of the patch
> > series.
>
> Yes, I forgot about glibc version. I don't want to add changelogs
> because I think patches order should/may be changed, and as all that
> changelogs touch single file, there will be nightmare to rebase
> series.
The convention is that you include the ChangeLog entry as part of the
patch description, rather than changing the ChangeLog file, to avoid this
issue. But with the formatting exactly matching what would go in the
ChangeLog file, so that for the final commit you just need to update the
date in it and then prepend to the ChangeLog file.
> >> diff --git a/sysdeps/aarch64/preconfigure
> >> b/sysdeps/aarch64/preconfigure
> >> index d9bd1f8..4bcd8e3 100644
> >> --- a/sysdeps/aarch64/preconfigure
> >> +++ b/sysdeps/aarch64/preconfigure
> >> @@ -1,6 +1,15 @@
> >> case "$machine" in
> >> aarch64*)
> >> base_machine=aarch64
> >> - machine=aarch64
> >> + case "$CC $CFLAGS $CPPFLAGS " in
> >> + *" -mabi=ilp32 "*) aarch64_config_abi=ilp32 ;;
> >> + *" -mabi=lp64 "*) aarch64_config_abi=lp64 ;;
> >> + *) aarch64_config_abi=default ;;
> >> + esac
> >> + case $aarch64_config_abi in
> >> + default) machine=aarch64/lp64 aarch64_config_abi=lp64
> >> ;;
> >
> > It would seem better to test how the compiler behaves (what it
> > predefines), as now done for MIPS, so that this works with a compiler
> > configured --with-abi=ilp32 without needing to add an explicit ABI
> > option
> > to CC or CFLAGS.
>
> I didn't understand what you mean here and forgot to ask.
> I didn't work much on glibc, and not familiar to it's build
> system. Could you explain it little more detailed please?
See sysdeps/mips/preconfigure. It runs $CC $CFLAGS $CPPFLAGS -E -dM -xc
/dev/null and extracts predefined macros that relate to the ABI from the
output. This avoids needing to hardcode anything about what the default
ABI might be for a compiler if neither -mabi= option is passed.
--
Joseph S. Myers
joseph@xxxxxxxxxxxxxxxx