mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-27 03:51:15 +08:00
727b7b1864
config/ 2020-06-24 H.J. Lu <hongjiu.lu@intel.com> Sync with GCC 2020-05-29 H.J. Lu <hjl.tools@gmail.com> PR bootstrap/95413 * cet.m4: Replace save_CFLAGS and save_LDFLAGS with cet_save_CFLAGS and cet_save_LDFLAGS. include/ 2020-06-24 H.J. Lu <hongjiu.lu@intel.com> Sync with GCC 2020-06-23 Nick Alcock <nick.alcock@oracle.com> * libiberty.h (bsearch_r): New. 2020-04-17 Martin Liska <mliska@suse.cz> Jonathan Yong <10walls@gmail.com> PR gcov-profile/94570 * filenames.h (defined): Do not define HAVE_DOS_BASED_FILE_SYSTEM for CYGWIN. libiberty/ 2020-06-23 Nick Alcock <nick.alcock@oracle.com> * bsearch_r.c: New file. * Makefile.in (CFILES): Add bsearch_r.c. (REQUIRED_OFILES): Add bsearch_r.o. * functions.texi: Regenerate. 2020-05-29 H.J. Lu <hjl.tools@gmail.com> PR bootstrap/95413 * configure: Regenerated. 2020-05-15 Iain Buclaw <ibuclaw@gdcproject.org> * d-demangle.c (dlang_attributes): Add @live attribute. * testsuite/d-demangle-expected: Add new tests. 2020-05-14 Rainer Schuetze <r.sagitario@gmx.de> Iain Buclaw <ibuclaw@gdcproject.org> * d-demangle.c (enum dlang_symbol_kinds): Remove enum. (struct dlang_info): New struct (dlang_decode_backref): New function. (dlang_backref): New function. (dlang_symbol_backref): New function. (dlang_type_backref): New function. (dlang_symbol_name_p): New function. (dlang_function_type_noreturn): New function. (dlang_function_type): Add 'info' parameter. Decode function type with dlang_function_type_noreturn. (dlang_function_args): Add 'info' parameter. (dlang_type): Add 'info' parameter. Handle back referenced types. (dlang_identifier): Replace 'kind' parameter with 'info'. Handle back referenced symbols. Split off decoding of plain identifiers to... (dlang_lname): ...here. (dlang_parse_mangle): Replace 'kind' parameter with 'info'. Decode function type and return with dlang_type. (dlang_parse_qualified): Replace 'kind' parameter with 'info', add 'suffix_modifier' parameter. Decode function type with dlang_function_type_noreturn. (dlang_parse_tuple): Add 'info' parameter. (dlang_template_symbol_param): New function. (dlang_template_args): Add 'info' parameter. Decode symbol parameter with dlang_template_symbol_param. Handle back referenced values, and externally mangled parameters. (dlang_parse_template): Add 'info' parameter. (dlang_demangle_init_info): New function. (dlang_demangle): Initialize and pass 'info' parameter. * testsuite/d-demangle-expected: Add new tests.
166 lines
3.1 KiB
Plaintext
166 lines
3.1 KiB
Plaintext
dnl
|
|
dnl GCC_CET_FLAGS
|
|
dnl (SHELL-CODE_HANDLER)
|
|
dnl
|
|
AC_DEFUN([GCC_CET_FLAGS],[dnl
|
|
GCC_ENABLE(cet, auto, ,[enable Intel CET in target libraries],
|
|
permit yes|no|auto)
|
|
AC_MSG_CHECKING([for CET support])
|
|
|
|
# NB: Avoid nested save_CFLAGS and save_LDFLAGS.
|
|
case "$host" in
|
|
i[[34567]]86-*-linux* | x86_64-*-linux*)
|
|
case "$enable_cet" in
|
|
auto)
|
|
# Check if target supports multi-byte NOPs
|
|
# and if assembler supports CET insn.
|
|
cet_save_CFLAGS="$CFLAGS"
|
|
CFLAGS="$CFLAGS -fcf-protection"
|
|
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])
|
|
CFLAGS="$cet_save_CFLAGS"
|
|
;;
|
|
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
|
|
;;
|
|
*)
|
|
enable_cet=no
|
|
;;
|
|
esac
|
|
if test x$enable_cet = xyes; then
|
|
$1="-fcf-protection -mshstk"
|
|
AC_MSG_RESULT([yes])
|
|
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
|
|
cet_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="$cet_save_CFLAGS"
|
|
;;
|
|
*)
|
|
may_have_cet=no
|
|
enable_cet=no
|
|
;;
|
|
esac
|
|
|
|
cet_save_CFLAGS="$CFLAGS"
|
|
CFLAGS="$CFLAGS -fcf-protection=none"
|
|
cet_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
|
|
if test x$cross_compiling = xno; 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
|
|
else
|
|
# Enable CET in cross compiler if possible so that it will run on both
|
|
# CET and non-CET hosts.
|
|
have_cet=yes
|
|
fi
|
|
if test x$enable_cet = xyes; then
|
|
$1="-fcf-protection"
|
|
AC_MSG_RESULT([yes])
|
|
else
|
|
AC_MSG_RESULT([no])
|
|
fi
|
|
CFLAGS="$cet_save_CFLAGS"
|
|
LDFLAGS="$cet_save_LDFLAGS"
|
|
])
|