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>
|
||||
|
||||
* 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])
|
||||
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.])
|
||||
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>
|
||||
|
||||
PR demangler/94797
|
||||
|
126
libiberty/configure
vendored
126
libiberty/configure
vendored
@ -1674,6 +1674,52 @@ $as_echo "$ac_res" >&6; }
|
||||
|
||||
} # 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
|
||||
# ----------------------------------------------
|
||||
# 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_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
|
||||
# ----------------------------------
|
||||
# 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
|
||||
|
||||
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
|
||||
save_LDFLAGS="$LDFLAGS"
|
||||
LDFLAGS="$LDFLAGS -Wl,-z,ibt,-z,shstk"
|
||||
if test "$cross_compiling" = yes; then :
|
||||
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
|
||||
$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
|
||||
fi
|
||||
|
||||
LDFLAGS="$save_LDFLAGS"
|
||||
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
|
||||
fi
|
||||
@ -5406,6 +5432,8 @@ else
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||
$as_echo "no" >&6; }
|
||||
fi
|
||||
CFLAGS="$save_CFLAGS"
|
||||
LDFLAGS="$save_LDFLAGS"
|
||||
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user