mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-30 00:31:08 +00:00
3a33b06969
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.
76 lines
2.3 KiB
Plaintext
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
|