[quagga-dev 12956] Re: PIC/PIE default build and links flags fails to build on GCC 5?

Paul Jakma paul at jakma.org
Thu Aug 20 22:03:41 BST 2015


E.g.:

commit 716b3248280e379ea293e775c47b50f8a1e7f9c2
Date:   Thu Aug 20 21:30:17 2015 +0100

     build: Remove the old PIC/PIE patch, let libtool sort it out

     * Remove the old change from '08 to add in PIE arguments at automake level.
       Versions of libtool since then know how to deal with -fpie and do the right
       thing according to whether its building shared or executable objects.
       So just pass '-fpie' as CFLAG and let libtool do its thing.

diff --git a/bgpd/Makefile.am b/bgpd/Makefile.am
index 92fa10c..4659ac6 100644
--- a/bgpd/Makefile.am
+++ b/bgpd/Makefile.am
@@ -4,8 +4,7 @@ AM_CPPFLAGS = -I.. -I$(top_srcdir) -I$(top_srcdir)/lib -I$(top_builddir)/lib
  DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)/\"
  INSTALL_SDATA=@INSTALL@ -m 600

-AM_CFLAGS = $(PICFLAGS) $(WERROR)
-AM_LDFLAGS = $(PILDFLAGS)
+AM_CFLAGS = $(WERROR)

  noinst_LIBRARIES = libbgp.a
  sbin_PROGRAMS = bgpd
diff --git a/configure.ac b/configure.ac
index 403dff7..f202cc4 100755
--- a/configure.ac
+++ b/configure.ac
@@ -144,6 +144,7 @@ if test "x${cflags_specified}" = "x" ; then
          AC_C_FLAG([-Os], [
            AC_C_FLAG([-O2])
          ])
+        AC_C_FLAG([-fpie])
          AC_C_FLAG([-fno-omit-frame-pointer])
          AC_C_FLAG([-Wall])
          AC_C_FLAG([-Wextra])
@@ -212,7 +213,7 @@ AC_GNU_SOURCE
  dnl -------
  dnl libtool
  dnl -------
-AC_PROG_LIBTOOL
+LT_INIT

  dnl ----------------------
  dnl Packages configuration
@@ -1479,29 +1480,6 @@ dnl ----------
  CONFDATE=`date '+%Y%m%d'`
  AC_SUBST(CONFDATE)

-dnl Conditionally enable PIE support for GNU toolchains.
-AC_ARG_ENABLE(pie, AS_HELP_STRING([--disable-pie], [Do not build tools as a Position Independent Executables]))
-if test "$enable_pie" != "no"; then
-  AC_CACHE_CHECK([whether $CC accepts PIE flags], [ap_cv_cc_pie], [
-    save_CFLAGS=$CFLAGS
-    save_LDFLAGS=$LDFLAGS
-    CFLAGS="$CFLAGS -fPIE"
-    LDFLAGS="$LDFLAGS -pie"
-    AC_LINK_IFELSE([AC_LANG_SOURCE([[static int foo[30000]; int main () { return 0; }]])],
-      [ap_cv_cc_pie=yes], [ap_cv_cc_pie=no]
-    )
-    CFLAGS=$save_CFLAGS
-    LDFLAGS=$save_LDFLAGS
-  ])
-  if test "$ap_cv_cc_pie" = "yes"; then
-    PICFLAGS="-fPIE"
-    PILDFLAGS="-pie"
-  fi
-fi
-
-AC_SUBST(PICFLAGS)
-AC_SUBST(PILDFLAGS)
-
  dnl -------
  dnl DejaGNU
  dnl -------
diff --git a/isisd/Makefile.am b/isisd/Makefile.am
index 4e67b22..ff6ce3c 100644
--- a/isisd/Makefile.am
+++ b/isisd/Makefile.am
@@ -6,8 +6,7 @@ DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)/\"
  INSTALL_SDATA=@INSTALL@ -m 600
  LIBS = @LIBS@

-AM_CFLAGS = $(PICFLAGS) $(WERROR)
-AM_LDFLAGS = $(PILDFLAGS)
+AM_CFLAGS = $(WERROR)

  noinst_LIBRARIES = libisis.a
  sbin_PROGRAMS = isisd 
diff --git a/ospf6d/Makefile.am b/ospf6d/Makefile.am
index cbd850f..75f2257 100644
--- a/ospf6d/Makefile.am
+++ b/ospf6d/Makefile.am
@@ -4,8 +4,7 @@ AM_CPPFLAGS = -I.. -I$(top_srcdir) -I$(top_srcdir)/lib -I$(top_builddir)/lib
  DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)/\"
  INSTALL_SDATA=@INSTALL@ -m 600

-AM_CFLAGS = $(PICFLAGS) $(WERROR)
-AM_LDFLAGS = $(PILDFLAGS)
+AM_CFLAGS = $(WERROR)

  noinst_LIBRARIES = libospf6.a
  sbin_PROGRAMS = ospf6d
diff --git a/ospfclient/Makefile.am b/ospfclient/Makefile.am
index c4f0da8..8a3ad21 100644
--- a/ospfclient/Makefile.am
+++ b/ospfclient/Makefile.am
@@ -22,6 +22,5 @@ ospfclient_SOURCES = \
  ospfclient_LDADD = libospfapiclient.la \
  	../ospfd/libospf.la ../lib/libzebra.la @LIBCAP@

-ospfclient_CFLAGS = $(AM_CFLAGS) $(PICFLAGS)
-ospfclient_LDFLAGS = $(AM_LDFLAGS) $(PILDFLAGS)
-
+ospfclient_CFLAGS = $(AM_CFLAGS)
+ospfclient_LDFLAGS = $(AM_LDFLAGS)
diff --git a/pimd/Makefile.am b/pimd/Makefile.am
index bf8a158..f57c4c2 100644
--- a/pimd/Makefile.am
+++ b/pimd/Makefile.am
@@ -39,8 +39,7 @@ DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)/\" $(PIM_DEFS)
  INSTALL_SDATA=@INSTALL@ -m 600
  LIBS = @LIBS@

-AM_CFLAGS = $(PICFLAGS) $(WERROR)
-AM_LDFLAGS = $(PILDFLAGS)
+AM_CFLAGS = $(WERROR)

  noinst_LIBRARIES = libpim.a
  sbin_PROGRAMS = pimd 
diff --git a/ripd/Makefile.am b/ripd/Makefile.am
index 34c5f18..571a499 100644
--- a/ripd/Makefile.am
+++ b/ripd/Makefile.am
@@ -4,8 +4,7 @@ AM_CPPFLAGS = -I.. -I$(top_srcdir) -I$(top_srcdir)/lib -I$(top_builddir)/lib
  DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)/\"
  INSTALL_SDATA=@INSTALL@ -m 600

-AM_CFLAGS = $(PICFLAGS) $(WERROR)
-AM_LDFLAGS = $(PILDFLAGS)
+AM_CFLAGS = $(WERROR)

  noinst_LIBRARIES = librip.a
  sbin_PROGRAMS = ripd
diff --git a/ripngd/Makefile.am b/ripngd/Makefile.am
index 0487459..df0f7d3 100644
--- a/ripngd/Makefile.am
+++ b/ripngd/Makefile.am
@@ -4,8 +4,7 @@ AM_CPPFLAGS = -I.. -I$(top_srcdir) -I$(top_srcdir)/lib -I$(top_builddir)/lib
  DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)/\"
  INSTALL_SDATA=@INSTALL@ -m 600

-AM_CFLAGS = $(PICFLAGS) $(WERROR)
-AM_LDFLAGS = $(PILDFLAGS)
+AM_CFLAGS = $(WERROR)

  noinst_LIBRARIES = libripng.a
  sbin_PROGRAMS = ripngd
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 6dfab53..16c9e4c 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -18,9 +18,6 @@ EXTRA_DIST = \
  AM_CPPFLAGS = -I.. -I$(top_srcdir) -I$(top_srcdir)/lib -I$(top_builddir)/lib
  DEFS = @DEFS@ $(LOCAL_OPTS) -DSYSCONFDIR=\"$(sysconfdir)/\"

-AM_CFLAGS = $(PICFLAGS)
-AM_LDFLAGS = $(PILDFLAGS)
-
  if BGPD
  TESTS_BGPD = aspathtest testbgpcap ecommtest testbgpmpattr testbgpmpath
  DEJATOOL += bgpd
diff --git a/vtysh/Makefile.am b/vtysh/Makefile.am
index 850b505..d347735 100644
--- a/vtysh/Makefile.am
+++ b/vtysh/Makefile.am
@@ -5,8 +5,7 @@ DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)/\"

  LIBS = @LIBS@ @CURSES@ @LIBPAM@

-AM_CFLAGS = $(PICFLAGS) $(WERROR)
-AM_LDFLAGS = $(PILDFLAGS)
+AM_CFLAGS = $(WERROR)

  bin_PROGRAMS = vtysh

diff --git a/watchquagga/Makefile.am b/watchquagga/Makefile.am
index 939ecd7..1f05f26 100644
--- a/watchquagga/Makefile.am
+++ b/watchquagga/Makefile.am
@@ -3,8 +3,7 @@
  AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/lib -I$(top_builddir)/lib
  DEFS = @DEFS@ -DSTATEDIR=\"$(localstatedir)/\"

-AM_CFLAGS = $(PICFLAGS) $(WERROR)
-AM_LDFLAGS = $(PILDFLAGS)
+AM_CFLAGS = $(WERROR)

  sbin_PROGRAMS = watchquagga

diff --git a/zebra/Makefile.am b/zebra/Makefile.am
index 7dcbd66..01779c9 100644
--- a/zebra/Makefile.am
+++ b/zebra/Makefile.am
@@ -20,8 +20,7 @@ if HAVE_NETLINK
  othersrc = zebra_fpm_netlink.c
  endif

-AM_CFLAGS = $(PICFLAGS) $(WERROR)
-AM_LDFLAGS = $(PILDFLAGS)
+AM_CFLAGS = $(WERROR)

  sbin_PROGRAMS = zebra


-- 
Paul Jakma	paul at jakma.org	@pjakma	Key ID: 64A2FF6A
Fortune:
November, n.:
 	The eleventh twelfth of a weariness.
 		-- Ambrose Bierce, "The Devil's Dictionary"




More information about the Quagga-dev mailing list