Enable Intel CET in liblto_plugin.so on Intel CET enabled host
authorH.J. Lu <hjl.tools@gmail.com>
Sat, 25 Apr 2020 17:06:59 +0000 (10:06 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Sat, 25 Apr 2020 17:07:16 +0000 (10:07 -0700)
commit8fc8bf801e46d0d478c50bddecf5d8edf9511849
tree264541c8d248fc5cf9585868948d00834ce54757
parentcf3f7b309ffdd888fdd85048ac9b4bcdc2713a45
Enable Intel CET in liblto_plugin.so on Intel CET enabled host

Since ld is Intel CET enabled on Intel CET enabled host, dlopen fails on
liblto_plugin.so if it isn't Intel CET enabled.  Add GCC_CET_HOST_FLAGS
to cet.m4, use it in libiberty and lto-plugin to always enable Intel
CET in liblto_plugin.so on Intel CET enabled host.

On Linux/x86 host, enable Intel CET by default if assembler and compiler
support Intel CET so that the generated liblto_plugin.so can be used on
both CET and non-CET machines.  It is an error to disable Intel CET in
liblto_plugin.so on Intel CET enabled host.

config/

PR bootstrap/94739
* cet.m4 (GCC_CET_HOST_FLAGS): New.

libiberty/

PR bootstrap/94739
* Makefile.in (COMPILE.c): Add @CET_HOST_FLAGS@.
(configure_deps): Add $(srcdir)/../config/cet.m4 and
$(srcdir)/../config/enable.m4.
* aclocal.m4: Include ../config/cet.m4 and ../config/enable.m4.
* configure.ac: Add GCC_CET_HOST_FLAGS(CET_HOST_FLAGS) and
AC_SUBST(CET_HOST_FLAGS).
* configure: Regenerated.

lto-plugin/

PR bootstrap/94739
* Makefile.am (AM_CFLAGS): Add $(CET_HOST_FLAGS).
* configure.ac: Add GCC_CET_HOST_FLAGS(CET_HOST_FLAGS) and
AC_SUBST(CET_HOST_FLAGS).
* Makefile.in: Regenerated.
* aclocal.m4: Likewise.
* configure: Likewise.
13 files changed:
config/ChangeLog
config/cet.m4
libiberty/ChangeLog
libiberty/Makefile.in
libiberty/aclocal.m4
libiberty/configure
libiberty/configure.ac
lto-plugin/ChangeLog
lto-plugin/Makefile.am
lto-plugin/Makefile.in
lto-plugin/aclocal.m4
lto-plugin/configure
lto-plugin/configure.ac