c++tools: Fix PIE [PR 98324]
authorNathan Sidwell <nathan@acm.org>
Wed, 23 Dec 2020 12:50:00 +0000 (04:50 -0800)
committerNathan Sidwell <nathan@acm.org>
Wed, 23 Dec 2020 12:50:00 +0000 (04:50 -0800)
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.

c++tools/Makefile.in
c++tools/configure
c++tools/configure.ac

index 7dc67ad9e06a35589289584dca064adf06a11e68..590a856af908c083828fff9a1a8f5a351f1020b3 100644 (file)
@@ -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)
index e32558e936abd427be07717f223594f6f892a34c..89441f50d1db19d1861c29ddca5b282e36594a30 100755 (executable)
@@ -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'
index 21b3a0668e609e227fc53700589609f6a59f8703..1100dc24cd135dfd07d4d40bf645be41ce247919 100644 (file)
@@ -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([[