binutils-gdb/intl/configure.ac
Marek Polacek 60b42421e9 configure: Implement --enable-host-pie
This patch implements the --enable-host-pie configure option which
makes the compiler executables PIE.  This can be used to enhance
protection against ROP attacks, and can be viewed as part of a wider
trend to harden binaries.

Co-Authored by: Iain Sandoe  <iain@sandoe.co.uk>

	* configure.ac (--enable-host-pie): New check.  Set PICFLAG after this
	check.

intl/
	* configure.ac (--enable-host-shared): Don't set PICFLAG here.
	(--enable-host-pie): New check.  Set PICFLAG after this check.

libdecnumber/
	* configure.ac (--enable-host-shared): Don't set PICFLAG here.
	(--enable-host-pie): New check.  Set PICFLAG after this check.

zlib/
	* configure.ac (--enable-host-shared): Don't set PICFLAG here.
	(--enable-host-pie): New check.  Set PICFLAG after this check.
2023-08-12 09:58:23 +09:30

99 lines
2.8 KiB
Plaintext

AC_INIT
AC_USE_SYSTEM_EXTENSIONS
AC_CONFIG_SRCDIR(gettext.c)
AC_CONFIG_HEADER(config.h)
AC_CONFIG_MACRO_DIR(../config)
AM_GNU_GETTEXT_VERSION(0.12.1)
AM_GNU_GETTEXT([], [need-ngettext])
# This replaces the extensive use of DEFS in the original Makefile.in.
AC_DEFINE(IN_LIBINTL, 1, [Define because this is libintl.])
AC_DEFINE(IN_LIBRARY, 1, [Define because this is a library.])
AC_DEFINE(DEPENDS_ON_LIBICONV, 1, [Define because we depend on libiconv.])
AC_DEFINE(ENABLE_RELOCATABLE, 1, [Define to enable relocation.])
AC_DEFINE(NO_XMALLOC, 1, [Define if there is no xmalloc.])
AC_DEFINE(set_relocation_prefix, libintl_set_relocation_prefix,
[Define this entry point correctly.])
AC_DEFINE(relocate, libintl_relocate,
[Define this entry point correctly.])
MISSING=`cd $ac_aux_dir && ${PWDCMD-pwd}`/missing
AC_CHECK_PROGS([ACLOCAL], [aclocal], [$MISSING aclocal])
AC_CHECK_PROGS([AUTOCONF], [autoconf], [$MISSING autoconf])
AC_CHECK_PROGS([AUTOHEADER], [autoheader], [$MISSING autoheader])
AC_ARG_ENABLE(maintainer-mode,
[ --enable-maintainer-mode enable rules only needed by maintainers],,
enable_maintainer_mode=no)
if test "x$enable_maintainer_mode" = xno; then
MAINT='#'
else
MAINT=
fi
AC_SUBST(MAINT)
# Additional info for config.intl.
AC_SUBST(LIBINTL_DEP)
AC_SUBST(INCINTL)
LIBINTL_DEP=
INCINTL=
case $USE_INCLUDED_LIBINTL in
yes)
LIBINTL=`echo $LIBINTL | sed 's,${top_builddir},-L&/..,; s,\.\./intl/libintl\.a,../intl -lintl,' `
LIBINTL_DEP='${top_builddir}/../intl/libintl.a'
INCINTL='-I${top_builddir}/../intl'
;;
esac
# intl is sometimes linked into shared libraries even without --enable-shared
# (e.g. gdbsupport's inprocess agent): so always PICify, just in case.
GCC_PICFLAG
AC_SUBST(PICFLAG)
BISON3_YES='#'
BISON3_NO=
if test "$INTLBISON" != :; then
ac_bison3=no
AC_MSG_CHECKING([bison 3 or later])
changequote(<<,>>)dnl
ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
case $ac_prog_version in
[3-9].*)
changequote([,])dnl
ac_prog_version="$ac_prog_version, bison3"; ac_bison3=yes;;
*) ac_prog_version="$ac_prog_version, old";;
esac
AC_MSG_RESULT([$ac_prog_version])
if test $ac_bison3 = yes; then
BISON3_YES=
BISON3_NO='#'
fi
fi
AC_SUBST(BISON3_YES)
AC_SUBST(BISON3_NO)
# Enable --enable-host-shared.
AC_ARG_ENABLE(host-shared,
[AS_HELP_STRING([--enable-host-shared],
[build host code as shared libraries])])
AC_SUBST(enable_host_shared)
# Enable --enable-host-pie.
AC_ARG_ENABLE(host-pie,
[AS_HELP_STRING([--enable-host-pie],
[build host code as PIE])])
AC_SUBST(enable_host_pie)
if test x$enable_host_shared = xyes; then
PICFLAG=-fPIC
elif test x$enable_host_pie = xyes; then
PICFLAG=-fPIE
else
PICFLAG=
fi
AC_SUBST(PICFLAG)
AC_CONFIG_FILES(Makefile config.intl)
AC_OUTPUT