Sync config and libiberty with GCC
config/ 2020-04-29 H.J. Lu <hongjiu.lu@intel.com> Sync with GCC 2020-04-28 H.J. Lu <hongjiu.lu@intel.com> PR bootstrap/94739 * cet.m4 (GCC_CET_HOST_FLAGS): Add -fcf-protection=none to -Wl,-z,ibt,-z,shstk. Check whether -fcf-protection=none -Wl,-z,ibt,-z,shstk works first. 2020-04-25 H.J. Lu <hongjiu.lu@intel.com> PR bootstrap/94739 * cet.m4 (GCC_CET_HOST_FLAGS): New. 2020-04-22 Jakub Jelinek <jakub@redhat.com> PR libfortran/94694 PR libfortran/94586 * math.m4 (GCC_CHECK_MATH_INLINE_BUILTIN_FALLBACK1, GCC_CHECK_MATH_INLINE_BUILTIN_FALLBACK2): New. libiberty/ 2020-04-28 H.J. Lu <hongjiu.lu@intel.com> PR bootstrap/94739 * configure: Regenerated.
This commit is contained in:
parent
42e165c30c
commit
87c66b2e70
|
@ -1,3 +1,25 @@
|
||||||
|
2020-04-29 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
|
Sync with GCC
|
||||||
|
2020-04-28 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
|
PR bootstrap/94739
|
||||||
|
* cet.m4 (GCC_CET_HOST_FLAGS): Add -fcf-protection=none to
|
||||||
|
-Wl,-z,ibt,-z,shstk. Check whether -fcf-protection=none
|
||||||
|
-Wl,-z,ibt,-z,shstk works first.
|
||||||
|
|
||||||
|
2020-04-25 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
|
PR bootstrap/94739
|
||||||
|
* cet.m4 (GCC_CET_HOST_FLAGS): New.
|
||||||
|
|
||||||
|
2020-04-22 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
PR libfortran/94694
|
||||||
|
PR libfortran/94586
|
||||||
|
* math.m4 (GCC_CHECK_MATH_INLINE_BUILTIN_FALLBACK1,
|
||||||
|
GCC_CHECK_MATH_INLINE_BUILTIN_FALLBACK2): New.
|
||||||
|
|
||||||
2020-02-19 Andrew Burgess <andrew.burgess@embecosm.com>
|
2020-02-19 Andrew Burgess <andrew.burgess@embecosm.com>
|
||||||
|
|
||||||
* ax_count_cpus.m4: New file, backported from GCC.
|
* ax_count_cpus.m4: New file, backported from GCC.
|
||||||
|
|
105
config/cet.m4
105
config/cet.m4
|
@ -48,3 +48,108 @@ else
|
||||||
AC_MSG_RESULT([no])
|
AC_MSG_RESULT([no])
|
||||||
fi
|
fi
|
||||||
])
|
])
|
||||||
|
|
||||||
|
dnl
|
||||||
|
dnl GCC_CET_HOST_FLAGS
|
||||||
|
dnl (SHELL-CODE_HANDLER)
|
||||||
|
dnl
|
||||||
|
AC_DEFUN([GCC_CET_HOST_FLAGS],[dnl
|
||||||
|
GCC_ENABLE(cet, auto, ,[enable Intel CET in host libraries],
|
||||||
|
permit yes|no|auto)
|
||||||
|
AC_MSG_CHECKING([for CET support])
|
||||||
|
|
||||||
|
case "$host" in
|
||||||
|
i[[34567]]86-*-linux* | x86_64-*-linux*)
|
||||||
|
may_have_cet=yes
|
||||||
|
save_CFLAGS="$CFLAGS"
|
||||||
|
CFLAGS="$CFLAGS -fcf-protection"
|
||||||
|
case "$enable_cet" in
|
||||||
|
auto)
|
||||||
|
# Check if target supports multi-byte NOPs
|
||||||
|
# and if assembler supports CET insn.
|
||||||
|
AC_COMPILE_IFELSE(
|
||||||
|
[AC_LANG_PROGRAM(
|
||||||
|
[],
|
||||||
|
[
|
||||||
|
#if !defined(__SSE2__)
|
||||||
|
#error target does not support multi-byte NOPs
|
||||||
|
#else
|
||||||
|
asm ("setssbsy");
|
||||||
|
#endif
|
||||||
|
])],
|
||||||
|
[enable_cet=yes],
|
||||||
|
[enable_cet=no])
|
||||||
|
;;
|
||||||
|
yes)
|
||||||
|
# Check if assembler supports CET.
|
||||||
|
AC_COMPILE_IFELSE(
|
||||||
|
[AC_LANG_PROGRAM(
|
||||||
|
[],
|
||||||
|
[asm ("setssbsy");])],
|
||||||
|
[],
|
||||||
|
[AC_MSG_ERROR([assembler with CET support is required for --enable-cet])])
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
CFLAGS="$save_CFLAGS"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
may_have_cet=no
|
||||||
|
enable_cet=no
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
save_CFLAGS="$CFLAGS"
|
||||||
|
CFLAGS="$CFLAGS -fcf-protection=none"
|
||||||
|
save_LDFLAGS="$LDFLAGS"
|
||||||
|
LDFLAGS="$LDFLAGS -Wl,-z,ibt,-z,shstk"
|
||||||
|
if test x$may_have_cet = xyes; then
|
||||||
|
# Check whether -fcf-protection=none -Wl,-z,ibt,-z,shstk work.
|
||||||
|
AC_TRY_LINK(
|
||||||
|
[],[return 0;],
|
||||||
|
[may_have_cet=yes],
|
||||||
|
[may_have_cet=no])
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test x$may_have_cet = xyes; then
|
||||||
|
AC_TRY_RUN([
|
||||||
|
static void
|
||||||
|
foo (void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
__attribute__ ((noinline, noclone))
|
||||||
|
xxx (void (*f) (void))
|
||||||
|
{
|
||||||
|
f ();
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
__attribute__ ((noinline, noclone))
|
||||||
|
bar (void)
|
||||||
|
{
|
||||||
|
xxx (foo);
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
main ()
|
||||||
|
{
|
||||||
|
bar ();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
],
|
||||||
|
[have_cet=no],
|
||||||
|
[have_cet=yes])
|
||||||
|
if test x$enable_cet = xno -a x$have_cet = xyes; then
|
||||||
|
AC_MSG_ERROR([Intel CET must be enabled on Intel CET enabled host])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if test x$enable_cet = xyes; then
|
||||||
|
$1="-fcf-protection"
|
||||||
|
AC_MSG_RESULT([yes])
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT([no])
|
||||||
|
fi
|
||||||
|
CFLAGS="$save_CFLAGS"
|
||||||
|
LDFLAGS="$save_LDFLAGS"
|
||||||
|
])
|
||||||
|
|
|
@ -48,3 +48,67 @@ main ()
|
||||||
[Define to 1 if you have the `$1' function.])
|
[Define to 1 if you have the `$1' function.])
|
||||||
fi
|
fi
|
||||||
])
|
])
|
||||||
|
|
||||||
|
dnl GCC_CHECK_MATH_INLINE_BUILTIN_FALLBACK1([name], [type])
|
||||||
|
dnl
|
||||||
|
dnl Check if math function NAME fallback for function with single
|
||||||
|
dnl TYPE argument and TYPE result can be implemented using
|
||||||
|
dnl __builtin_NAME expanded inline without needing unavailable math
|
||||||
|
dnl library function.
|
||||||
|
AC_DEFUN([GCC_CHECK_MATH_INLINE_BUILTIN_FALLBACK1],
|
||||||
|
[
|
||||||
|
AC_REQUIRE([GCC_CHECK_LIBM])
|
||||||
|
if test $gcc_cv_math_func_$1 = no; then
|
||||||
|
AC_CACHE_CHECK([for inline __builtin_$1], [gcc_cv_math_inline_builtin_$1],
|
||||||
|
[AC_LINK_IFELSE([AC_LANG_SOURCE([
|
||||||
|
$2
|
||||||
|
$1_fallback ($2 x)
|
||||||
|
{
|
||||||
|
return __builtin_$1 (x);
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
main ()
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
])],
|
||||||
|
[gcc_cv_math_inline_builtin_$1=yes],
|
||||||
|
[gcc_cv_math_inline_builtin_$1=no])])
|
||||||
|
if test $gcc_cv_math_inline_builtin_$1 = yes; then
|
||||||
|
AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_INLINE_BUILTIN_$1),[1],
|
||||||
|
[Define to 1 if `__builtin_$1' is expanded inline.])
|
||||||
|
fi
|
||||||
|
fi])
|
||||||
|
|
||||||
|
dnl GCC_CHECK_MATH_INLINE_BUILTIN_FALLBACK2([name], [type])
|
||||||
|
dnl
|
||||||
|
dnl Check if math function NAME fallback for function with two
|
||||||
|
dnl TYPE arguments and TYPE result can be implemented using
|
||||||
|
dnl __builtin_NAME expanded inline without needing unavailable math
|
||||||
|
dnl library function.
|
||||||
|
AC_DEFUN([GCC_CHECK_MATH_INLINE_BUILTIN_FALLBACK2],
|
||||||
|
[
|
||||||
|
AC_REQUIRE([GCC_CHECK_LIBM])
|
||||||
|
if test $gcc_cv_math_func_$1 = no; then
|
||||||
|
AC_CACHE_CHECK([for inline __builtin_$1], [gcc_cv_math_inline_builtin_$1],
|
||||||
|
[AC_LINK_IFELSE([AC_LANG_SOURCE([
|
||||||
|
$2
|
||||||
|
$1_fallback ($2 x, $2 y)
|
||||||
|
{
|
||||||
|
return __builtin_$1 (x, y);
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
main ()
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
])],
|
||||||
|
[gcc_cv_math_inline_builtin_$1=yes],
|
||||||
|
[gcc_cv_math_inline_builtin_$1=no])])
|
||||||
|
if test $gcc_cv_math_inline_builtin_$1 = yes; then
|
||||||
|
AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_INLINE_BUILTIN_$1),[1],
|
||||||
|
[Define to 1 if `__builtin_$1' is expanded inline.])
|
||||||
|
fi
|
||||||
|
fi])
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
2020-04-28 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
|
PR bootstrap/94739
|
||||||
|
* configure: Regenerated.
|
||||||
|
|
||||||
2020-04-27 Jakub Jelinek <jakub@redhat.com>
|
2020-04-27 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
PR demangler/94797
|
PR demangler/94797
|
||||||
|
|
|
@ -1674,6 +1674,52 @@ $as_echo "$ac_res" >&6; }
|
||||||
|
|
||||||
} # ac_fn_c_check_header_compile
|
} # ac_fn_c_check_header_compile
|
||||||
|
|
||||||
|
# ac_fn_c_try_link LINENO
|
||||||
|
# -----------------------
|
||||||
|
# Try to link conftest.$ac_ext, and return whether this succeeded.
|
||||||
|
ac_fn_c_try_link ()
|
||||||
|
{
|
||||||
|
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
|
||||||
|
rm -f conftest.$ac_objext conftest$ac_exeext
|
||||||
|
if { { ac_try="$ac_link"
|
||||||
|
case "(($ac_try" in
|
||||||
|
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
|
||||||
|
*) ac_try_echo=$ac_try;;
|
||||||
|
esac
|
||||||
|
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
|
||||||
|
$as_echo "$ac_try_echo"; } >&5
|
||||||
|
(eval "$ac_link") 2>conftest.err
|
||||||
|
ac_status=$?
|
||||||
|
if test -s conftest.err; then
|
||||||
|
grep -v '^ *+' conftest.err >conftest.er1
|
||||||
|
cat conftest.er1 >&5
|
||||||
|
mv -f conftest.er1 conftest.err
|
||||||
|
fi
|
||||||
|
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
||||||
|
test $ac_status = 0; } && {
|
||||||
|
test -z "$ac_c_werror_flag" ||
|
||||||
|
test ! -s conftest.err
|
||||||
|
} && test -s conftest$ac_exeext && {
|
||||||
|
test "$cross_compiling" = yes ||
|
||||||
|
test -x conftest$ac_exeext
|
||||||
|
}; then :
|
||||||
|
ac_retval=0
|
||||||
|
else
|
||||||
|
$as_echo "$as_me: failed program was:" >&5
|
||||||
|
sed 's/^/| /' conftest.$ac_ext >&5
|
||||||
|
|
||||||
|
ac_retval=1
|
||||||
|
fi
|
||||||
|
# Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
|
||||||
|
# created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
|
||||||
|
# interfere with the next link command; also delete a directory that is
|
||||||
|
# left behind by Apple's compiler. We do this before executing the actions.
|
||||||
|
rm -rf conftest.dSYM conftest_ipa8_conftest.oo
|
||||||
|
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
|
||||||
|
as_fn_set_status $ac_retval
|
||||||
|
|
||||||
|
} # ac_fn_c_try_link
|
||||||
|
|
||||||
# ac_fn_c_check_header_preproc LINENO HEADER VAR
|
# ac_fn_c_check_header_preproc LINENO HEADER VAR
|
||||||
# ----------------------------------------------
|
# ----------------------------------------------
|
||||||
# Tests whether HEADER is present, setting the cache variable VAR accordingly.
|
# Tests whether HEADER is present, setting the cache variable VAR accordingly.
|
||||||
|
@ -1940,52 +1986,6 @@ $as_echo "$ac_res" >&6; }
|
||||||
|
|
||||||
} # ac_fn_c_check_type
|
} # ac_fn_c_check_type
|
||||||
|
|
||||||
# ac_fn_c_try_link LINENO
|
|
||||||
# -----------------------
|
|
||||||
# Try to link conftest.$ac_ext, and return whether this succeeded.
|
|
||||||
ac_fn_c_try_link ()
|
|
||||||
{
|
|
||||||
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
|
|
||||||
rm -f conftest.$ac_objext conftest$ac_exeext
|
|
||||||
if { { ac_try="$ac_link"
|
|
||||||
case "(($ac_try" in
|
|
||||||
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
|
|
||||||
*) ac_try_echo=$ac_try;;
|
|
||||||
esac
|
|
||||||
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
|
|
||||||
$as_echo "$ac_try_echo"; } >&5
|
|
||||||
(eval "$ac_link") 2>conftest.err
|
|
||||||
ac_status=$?
|
|
||||||
if test -s conftest.err; then
|
|
||||||
grep -v '^ *+' conftest.err >conftest.er1
|
|
||||||
cat conftest.er1 >&5
|
|
||||||
mv -f conftest.er1 conftest.err
|
|
||||||
fi
|
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
|
||||||
test $ac_status = 0; } && {
|
|
||||||
test -z "$ac_c_werror_flag" ||
|
|
||||||
test ! -s conftest.err
|
|
||||||
} && test -s conftest$ac_exeext && {
|
|
||||||
test "$cross_compiling" = yes ||
|
|
||||||
test -x conftest$ac_exeext
|
|
||||||
}; then :
|
|
||||||
ac_retval=0
|
|
||||||
else
|
|
||||||
$as_echo "$as_me: failed program was:" >&5
|
|
||||||
sed 's/^/| /' conftest.$ac_ext >&5
|
|
||||||
|
|
||||||
ac_retval=1
|
|
||||||
fi
|
|
||||||
# Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
|
|
||||||
# created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
|
|
||||||
# interfere with the next link command; also delete a directory that is
|
|
||||||
# left behind by Apple's compiler. We do this before executing the actions.
|
|
||||||
rm -rf conftest.dSYM conftest_ipa8_conftest.oo
|
|
||||||
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
|
|
||||||
as_fn_set_status $ac_retval
|
|
||||||
|
|
||||||
} # ac_fn_c_try_link
|
|
||||||
|
|
||||||
# ac_fn_c_check_func LINENO FUNC VAR
|
# ac_fn_c_check_func LINENO FUNC VAR
|
||||||
# ----------------------------------
|
# ----------------------------------
|
||||||
# Tests whether FUNC exists, setting the cache variable VAR accordingly
|
# Tests whether FUNC exists, setting the cache variable VAR accordingly
|
||||||
|
@ -5345,9 +5345,36 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
save_CFLAGS="$CFLAGS"
|
||||||
|
CFLAGS="$CFLAGS -fcf-protection=none"
|
||||||
|
save_LDFLAGS="$LDFLAGS"
|
||||||
|
LDFLAGS="$LDFLAGS -Wl,-z,ibt,-z,shstk"
|
||||||
|
if test x$may_have_cet = xyes; then
|
||||||
|
# Check whether -fcf-protection=none -Wl,-z,ibt,-z,shstk work.
|
||||||
|
if test x$gcc_no_link = xyes; then
|
||||||
|
as_fn_error $? "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5
|
||||||
|
fi
|
||||||
|
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
|
/* end confdefs.h. */
|
||||||
|
|
||||||
|
int
|
||||||
|
main ()
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
_ACEOF
|
||||||
|
if ac_fn_c_try_link "$LINENO"; then :
|
||||||
|
may_have_cet=yes
|
||||||
|
else
|
||||||
|
may_have_cet=no
|
||||||
|
fi
|
||||||
|
rm -f core conftest.err conftest.$ac_objext \
|
||||||
|
conftest$ac_exeext conftest.$ac_ext
|
||||||
|
fi
|
||||||
|
|
||||||
if test x$may_have_cet = xyes; then
|
if test x$may_have_cet = xyes; then
|
||||||
save_LDFLAGS="$LDFLAGS"
|
|
||||||
LDFLAGS="$LDFLAGS -Wl,-z,ibt,-z,shstk"
|
|
||||||
if test "$cross_compiling" = yes; then :
|
if test "$cross_compiling" = yes; then :
|
||||||
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
|
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
|
||||||
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
|
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
|
||||||
|
@ -5393,7 +5420,6 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
|
||||||
conftest.$ac_objext conftest.beam conftest.$ac_ext
|
conftest.$ac_objext conftest.beam conftest.$ac_ext
|
||||||
fi
|
fi
|
||||||
|
|
||||||
LDFLAGS="$save_LDFLAGS"
|
|
||||||
if test x$enable_cet = xno -a x$have_cet = xyes; then
|
if test x$enable_cet = xno -a x$have_cet = xyes; then
|
||||||
as_fn_error $? "Intel CET must be enabled on Intel CET enabled host" "$LINENO" 5
|
as_fn_error $? "Intel CET must be enabled on Intel CET enabled host" "$LINENO" 5
|
||||||
fi
|
fi
|
||||||
|
@ -5406,6 +5432,8 @@ else
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||||
$as_echo "no" >&6; }
|
$as_echo "no" >&6; }
|
||||||
fi
|
fi
|
||||||
|
CFLAGS="$save_CFLAGS"
|
||||||
|
LDFLAGS="$save_LDFLAGS"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue