glibc/sysdeps/powerpc/powerpc64/le/configure
Gabriel F. T. Gomes 3a33b06969 powerpc64*: fix the order of implied sysdeps directories
The creation of the divergent sysdeps directory for powerpc64le

commit 2f7f3cd8cd
Author: Paul E. Murphy <murphyp@linux.vnet.ibm.com>
Date:   Fri Jul 15 18:04:40 2016 -0500

    powerpc64le: Create divergent sysdep directory for powerpc64le.

allowed float128 to be enabled for powerpc64le (little-endian) and not
for powerpc64 (big-endian).  Since the only intended difference between
them was the presence or absence of the float128 interface, the sysdeps
directory for powerpc64le explicitly reused the files from powerpc64
(through the use of Implies files).

Although this works, it also means that files under the powerpc64
directory might be preferred over files under powerpc64le.  For
instance, on a build for powerpc64le with target set to power9, a file
from powerpc64/power5 might get built, even though a file with the same
name exists in powerpc64le/power8.  That happens because the processor
hierarchy was only defined in the sysdeps directory for powerpc64 (and
borrowed by powerpc64le).

This patch fixes this behavior, by creating new subdirectories under
powerpc64 (i.e.: powerpc64/be and powerpc64/le) and creating new Implies
files to provide the hierarchy of processors for powerpc64 and
powerpc64le separately.  These changes have no effect on installed,
stripped binaries (which remain unchanged).

Tested that installed stripped binaries are unchanged and that there are
no regressions on powerpc64 and powerpc64le.
2018-04-27 16:32:01 -03:00

76 lines
2.3 KiB
Plaintext

# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/powerpc/powerpc64le.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports binary128 floating point type" >&5
$as_echo_n "checking if $CC supports binary128 floating point type... " >&6; }
if ${libc_cv_compiler_powerpc64le_binary128_ok+:} false; then :
$as_echo_n "(cached) " >&6
else
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -Werror -mfloat128"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
__float128 a, b, c, d, e;
int i;
__float128
foobar (__float128 x)
{
a = __builtin_nansq ("0");
b = __builtin_huge_valq ();
c = __builtin_infq ();
d = __builtin_fabsq (x);
e = __builtin_nanq ("0");
i = __builtin_signbit (x);
return __builtin_copysignq (x, x);
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
libc_cv_compiler_powerpc64le_binary128_ok=yes
else
libc_cv_compiler_powerpc64le_binary128_ok=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
CFLAGS="$save_CFLAGS"
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_compiler_powerpc64le_binary128_ok" >&5
$as_echo "$libc_cv_compiler_powerpc64le_binary128_ok" >&6; }
if test "$libc_cv_compiler_powerpc64le_binary128_ok" != "yes"; then :
critic_missing="$critic_missing binary128 floating point type (GCC >= 6.2) is required on powerpc64le."
fi
OLD_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $libc_cv_cc_submachine"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the target machine is at least POWER8" >&5
$as_echo_n "checking if the target machine is at least POWER8... " >&6; }
if ${libc_cv_target_power8_ok+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifndef _ARCH_PWR8
#error invalid target architecture
#endif
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
libc_cv_target_power8_ok=yes
else
libc_cv_target_power8_ok=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_target_power8_ok" >&5
$as_echo "$libc_cv_target_power8_ok" >&6; }
if test "$libc_cv_target_power8_ok" != "yes"; then :
critic_missing="$critic_missing POWER8 or newer is required on powerpc64le."
fi
CFLAGS="$OLD_CFLAGS"
test -n "$critic_missing" && as_fn_error $? "*** $critic_missing" "$LINENO" 5