mirror of
https://github.com/gcc-mirror/gcc.git
synced 2024-11-21 13:40:47 +00:00
libiberty: Disable hwcaps for sha1.o
This patch
commit bf4f40cc31
Author: Jakub Jelinek <jakub@redhat.com>
Date: Tue Nov 28 13:14:05 2023 +0100
libiberty: Use x86 HW optimized sha1
broke Solaris/x86 bootstrap with the native as:
libtool: compile: /var/gcc/regression/master/11.4-gcc/build/./gcc/gccgo -B/var/gcc/regression/master/11.4-gcc/build/./gcc/ -B/vol/gcc/i386-pc-solaris2.11/bin/ -B/vol/gcc/i386-pc-solaris2.11/lib/ -isystem /vol/gcc/i386-pc-solaris2.11/include -isystem /vol/gcc/i386-pc-solaris2.11/sys-include -fchecking=1 -minline-all-stringops -O2 -g -I . -c -fgo-pkgpath=internal/goarch /vol/gcc/src/hg/master/local/libgo/go/internal/goarch/goarch.go zgoarch.go
ld.so.1: go1: fatal: /var/gcc/regression/master/11.4-gcc/build/gcc/go1: hardware capability (CA_SUNW_HW_2) unsupported: 0x4000000 [ SHA1 ]
gccgo: fatal error: Killed signal terminated program go1
As is already done in a couple of other similar cases, this patches
disables hwcaps support for libiberty.
Initially, this didn't work because config/hwcaps.m4 uses target_os, but
didn't ensure it is defined.
Tested on i386-pc-solaris2.11 with as and gas.
2023-11-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
config:
* hwcaps.m4 (GCC_CHECK_ASSEMBLER_HWCAP): Require
AC_CANONICAL_TARGET.
libiberty:
* configure.ac (GCC_CHECK_ASSEMBLER_HWCAP): Invoke.
* configure, aclocal.m4: Regenerate.
* Makefile.in (COMPILE.c): Add HWCAP_CFLAGS.
This commit is contained in:
parent
248bf19714
commit
f2c52c0dfd
@ -7,6 +7,7 @@ dnl HWCAP_CFLAGS='-Wa,-nH' if possible.
|
|||||||
dnl
|
dnl
|
||||||
AC_DEFUN([GCC_CHECK_ASSEMBLER_HWCAP], [
|
AC_DEFUN([GCC_CHECK_ASSEMBLER_HWCAP], [
|
||||||
test -z "$HWCAP_CFLAGS" && HWCAP_CFLAGS=''
|
test -z "$HWCAP_CFLAGS" && HWCAP_CFLAGS=''
|
||||||
|
AC_REQUIRE([AC_CANONICAL_TARGET])
|
||||||
|
|
||||||
# Restrict the test to Solaris, other assemblers (e.g. AIX as) have -nH
|
# Restrict the test to Solaris, other assemblers (e.g. AIX as) have -nH
|
||||||
# with a different meaning.
|
# with a different meaning.
|
||||||
|
@ -114,7 +114,7 @@ INCDIR=$(srcdir)/$(MULTISRCTOP)../include
|
|||||||
|
|
||||||
COMPILE.c = $(CC) -c @DEFS@ $(CFLAGS) $(CPPFLAGS) -I. -I$(INCDIR) \
|
COMPILE.c = $(CC) -c @DEFS@ $(CFLAGS) $(CPPFLAGS) -I. -I$(INCDIR) \
|
||||||
$(HDEFINES) @ac_libiberty_warn_cflags@ -D_GNU_SOURCE \
|
$(HDEFINES) @ac_libiberty_warn_cflags@ -D_GNU_SOURCE \
|
||||||
@CET_HOST_FLAGS@
|
@CET_HOST_FLAGS@ @HWCAP_CFLAGS@
|
||||||
|
|
||||||
# Just to make sure we don't use a built-in rule with VPATH
|
# Just to make sure we don't use a built-in rule with VPATH
|
||||||
.c.$(objext):
|
.c.$(objext):
|
||||||
|
2
libiberty/aclocal.m4
vendored
2
libiberty/aclocal.m4
vendored
@ -16,7 +16,9 @@ m4_include([../config/acx.m4])
|
|||||||
m4_include([../config/cet.m4])
|
m4_include([../config/cet.m4])
|
||||||
m4_include([../config/enable.m4])
|
m4_include([../config/enable.m4])
|
||||||
m4_include([../config/gcc-plugin.m4])
|
m4_include([../config/gcc-plugin.m4])
|
||||||
|
m4_include([../config/hwcaps.m4])
|
||||||
m4_include([../config/no-executables.m4])
|
m4_include([../config/no-executables.m4])
|
||||||
|
m4_include([../config/override.m4])
|
||||||
m4_include([../config/picflag.m4])
|
m4_include([../config/picflag.m4])
|
||||||
m4_include([../config/warnings.m4])
|
m4_include([../config/warnings.m4])
|
||||||
m4_include([acinclude.m4])
|
m4_include([acinclude.m4])
|
||||||
|
91
libiberty/configure
vendored
91
libiberty/configure
vendored
@ -626,6 +626,11 @@ pexecute
|
|||||||
target_header_dir
|
target_header_dir
|
||||||
CHECK
|
CHECK
|
||||||
LIBOBJS
|
LIBOBJS
|
||||||
|
HWCAP_CFLAGS
|
||||||
|
target_os
|
||||||
|
target_vendor
|
||||||
|
target_cpu
|
||||||
|
target
|
||||||
CET_HOST_FLAGS
|
CET_HOST_FLAGS
|
||||||
NOASANFLAG
|
NOASANFLAG
|
||||||
PICFLAG
|
PICFLAG
|
||||||
@ -1325,6 +1330,7 @@ _ACEOF
|
|||||||
System types:
|
System types:
|
||||||
--build=BUILD configure for building on BUILD [guessed]
|
--build=BUILD configure for building on BUILD [guessed]
|
||||||
--host=HOST cross-compile to build programs to run on HOST [BUILD]
|
--host=HOST cross-compile to build programs to run on HOST [BUILD]
|
||||||
|
--target=TARGET configure for building compilers for TARGET [HOST]
|
||||||
_ACEOF
|
_ACEOF
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -2462,6 +2468,9 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# This works around the fact that libtool configuration may change LD
|
# This works around the fact that libtool configuration may change LD
|
||||||
# for this particular configuration, but some shells, instead of
|
# for this particular configuration, but some shells, instead of
|
||||||
# keeping the changes in LD private, export them just because LD is
|
# keeping the changes in LD private, export them just because LD is
|
||||||
@ -5631,6 +5640,88 @@ LDFLAGS="$cet_save_LDFLAGS"
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5
|
||||||
|
$as_echo_n "checking target system type... " >&6; }
|
||||||
|
if ${ac_cv_target+:} false; then :
|
||||||
|
$as_echo_n "(cached) " >&6
|
||||||
|
else
|
||||||
|
if test "x$target_alias" = x; then
|
||||||
|
ac_cv_target=$ac_cv_host
|
||||||
|
else
|
||||||
|
ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` ||
|
||||||
|
as_fn_error $? "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5
|
||||||
|
fi
|
||||||
|
|
||||||
|
fi
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5
|
||||||
|
$as_echo "$ac_cv_target" >&6; }
|
||||||
|
case $ac_cv_target in
|
||||||
|
*-*-*) ;;
|
||||||
|
*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;;
|
||||||
|
esac
|
||||||
|
target=$ac_cv_target
|
||||||
|
ac_save_IFS=$IFS; IFS='-'
|
||||||
|
set x $ac_cv_target
|
||||||
|
shift
|
||||||
|
target_cpu=$1
|
||||||
|
target_vendor=$2
|
||||||
|
shift; shift
|
||||||
|
# Remember, the first character of IFS is used to create $*,
|
||||||
|
# except with old shells:
|
||||||
|
target_os=$*
|
||||||
|
IFS=$ac_save_IFS
|
||||||
|
case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac
|
||||||
|
|
||||||
|
|
||||||
|
# The aliases save the names the user supplied, while $host etc.
|
||||||
|
# will get canonicalized.
|
||||||
|
test -n "$target_alias" &&
|
||||||
|
test "$program_prefix$program_suffix$program_transform_name" = \
|
||||||
|
NONENONEs,x,x, &&
|
||||||
|
program_prefix=${target_alias}-
|
||||||
|
|
||||||
|
test -z "$HWCAP_CFLAGS" && HWCAP_CFLAGS=''
|
||||||
|
|
||||||
|
|
||||||
|
# Restrict the test to Solaris, other assemblers (e.g. AIX as) have -nH
|
||||||
|
# with a different meaning.
|
||||||
|
case ${target_os} in
|
||||||
|
solaris2*)
|
||||||
|
ac_save_CFLAGS="$CFLAGS"
|
||||||
|
CFLAGS="$CFLAGS -Wa,-nH"
|
||||||
|
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for as that supports -Wa,-nH" >&5
|
||||||
|
$as_echo_n "checking for as that supports -Wa,-nH... " >&6; }
|
||||||
|
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
|
/* end confdefs.h. */
|
||||||
|
|
||||||
|
int
|
||||||
|
main ()
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
_ACEOF
|
||||||
|
if ac_fn_c_try_compile "$LINENO"; then :
|
||||||
|
ac_hwcap_flags=yes
|
||||||
|
else
|
||||||
|
ac_hwcap_flags=no
|
||||||
|
fi
|
||||||
|
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||||
|
if test "$ac_hwcap_flags" = "yes"; then
|
||||||
|
HWCAP_CFLAGS="-Wa,-nH $HWCAP_CFLAGS"
|
||||||
|
fi
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_hwcap_flags" >&5
|
||||||
|
$as_echo "$ac_hwcap_flags" >&6; }
|
||||||
|
|
||||||
|
CFLAGS="$ac_save_CFLAGS"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
echo "# Warning: this fragment is automatically generated" > temp-frag
|
echo "# Warning: this fragment is automatically generated" > temp-frag
|
||||||
|
|
||||||
if [ -n "${frag}" ] && [ -f "${frag}" ]; then
|
if [ -n "${frag}" ] && [ -f "${frag}" ]; then
|
||||||
|
@ -265,6 +265,8 @@ AC_SUBST(NOASANFLAG)
|
|||||||
GCC_CET_HOST_FLAGS(CET_HOST_FLAGS)
|
GCC_CET_HOST_FLAGS(CET_HOST_FLAGS)
|
||||||
AC_SUBST(CET_HOST_FLAGS)
|
AC_SUBST(CET_HOST_FLAGS)
|
||||||
|
|
||||||
|
GCC_CHECK_ASSEMBLER_HWCAP
|
||||||
|
|
||||||
echo "# Warning: this fragment is automatically generated" > temp-frag
|
echo "# Warning: this fragment is automatically generated" > temp-frag
|
||||||
|
|
||||||
if [[ -n "${frag}" ]] && [[ -f "${frag}" ]]; then
|
if [[ -n "${frag}" ]] && [[ -f "${frag}" ]]; then
|
||||||
|
Loading…
Reference in New Issue
Block a user