aboutsummaryrefslogtreecommitdiff
path: root/c++tools
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@acm.org>2020-12-23 04:50:00 -0800
committerNathan Sidwell <nathan@acm.org>2020-12-23 04:50:00 -0800
commit544f477536010f055c26bc959b18fccf67902750 (patch)
tree3fd179013a8e62c479043edb1252d04787b2bd3f /c++tools
parent077fefbfaec6838568a15e74e9e2adecce693aef (diff)
downloadgcc-544f477536010f055c26bc959b18fccf67902750.zip
gcc-544f477536010f055c26bc959b18fccf67902750.tar.gz
gcc-544f477536010f055c26bc959b18fccf67902750.tar.bz2
c++tools: Fix PIE [PR 98324]
This adds --enable-default-pie support to c++tools, so that the sample server is build -fPIE if requested. PR bootstrap/98324 c++tools/ * Makefile.in: Add FLAGPIE. * configure.ac: Add --enable-default-pie support. * configure: Rebuilt.
Diffstat (limited to 'c++tools')
-rw-r--r--c++tools/Makefile.in6
-rwxr-xr-xc++tools/configure13
-rw-r--r--c++tools/configure.ac7
3 files changed, 24 insertions, 2 deletions
diff --git a/c++tools/Makefile.in b/c++tools/Makefile.in
index 7dc67ad..590a856 100644
--- a/c++tools/Makefile.in
+++ b/c++tools/Makefile.in
@@ -28,7 +28,9 @@ AUTOCONF := @AUTOCONF@
AUTOHEADER := @AUTOHEADER@
CXX := @CXX@
CXXFLAGS := @CXXFLAGS@
-CXXOPTS := $(CXXFLAGS) -fno-exceptions -fno-rtti
+PIEFLAG := @PIEFLAG@
+CXXOPTS := $(CXXFLAGS) $(PIEFLAG) -fno-exceptions -fno-rtti
+LDFLAGS := @LDFLAGS@
exeext := @EXEEXT@
LIBIBERTY := ../libiberty/libiberty.a
VERSION.O := ../gcc/version.o
@@ -88,7 +90,7 @@ MAPPER.O := server.o resolver.o
CODYLIB = ../libcody/libcody.a
CXXINC += -I$(srcdir)/../libcody -I$(srcdir)/../include -I$(srcdir)/../gcc -I.
g++-mapper-server$(exeext): $(MAPPER.O) $(CODYLIB)
- +$(CXX) $(LDFLAGS) -o $@ $^ $(VERSION.O) $(LIBIBERTY)
+ +$(CXX) $(LDFLAGS) $(PIEFLAG) -o $@ $^ $(VERSION.O) $(LIBIBERTY)
# copy to gcc dir so tests there can run
all::../gcc/g++-mapper-server$(exeext)
diff --git a/c++tools/configure b/c++tools/configure
index e32558e..89441f5 100755
--- a/c++tools/configure
+++ b/c++tools/configure
@@ -629,6 +629,7 @@ CPP
ac_ct_CC
CFLAGS
CC
+PIEFLAG
MAINTAINER
CXX_AUX_TOOLS
AUTOHEADER
@@ -699,6 +700,7 @@ ac_user_opts='
enable_option_checking
enable_c___tools
enable_maintainer_mode
+enable_default_pie
with_gcc_major_version_only
'
ac_precious_vars='build_alias
@@ -1329,6 +1331,7 @@ Optional Features:
--enable-maintainer-mode
enable maintainer mode. Add rules to rebuild
configurey bits
+ --enable-default-pie enable Position Independent Executable as default
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
@@ -2939,6 +2942,16 @@ $as_echo "$maintainer_mode" >&6; }
test "$maintainer_mode" = yes && MAINTAINER=yes
+# Check whether --enable-default-pie was given.
+# Check whether --enable-default-pie was given.
+if test "${enable_default_pie+set}" = set; then :
+ enableval=$enable_default_pie; PIEFLAG=-fPIE
+else
+ PIEFLAG=
+fi
+
+
+
# Check if O_CLOEXEC is defined by fcntl
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
diff --git a/c++tools/configure.ac b/c++tools/configure.ac
index 21b3a06..1100dc2 100644
--- a/c++tools/configure.ac
+++ b/c++tools/configure.ac
@@ -66,6 +66,13 @@ AC_MSG_RESULT([$maintainer_mode])
test "$maintainer_mode" = yes && MAINTAINER=yes
AC_SUBST(MAINTAINER)
+# Check whether --enable-default-pie was given.
+AC_ARG_ENABLE(default-pie,
+[AS_HELP_STRING([--enable-default-pie],
+ [enable Position Independent Executable as default])],
+[PIEFLAG=-fPIE], [PIEFLAG=])
+AC_SUBST([PIEFLAG])
+
# Check if O_CLOEXEC is defined by fcntl
AC_CACHE_CHECK(for O_CLOEXEC, ac_cv_o_cloexec, [
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[