aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Keegan McAllister <mcallister.keegan@gmail.com>2012-04-08 00:42:10 -0400
committerGravatar Keith Winstein <keithw@mit.edu>2012-04-13 12:27:27 -0400
commitd2434d1a797454497c7294305cf243d64b6c28b0 (patch)
tree45295bb9d9ec16e7d4dc5544f2cb4d387526a7af
parent62b6137ff5b1c280ba99a0ba1b64b4a03cb3f779 (diff)
Check compiler support for -fno-default-inline and -pipe
clang was spewing warnings about the unrecognized -fno-default-inline. (Oddly, it warns only with -c, not when compiling directly to an executable.) For completeness we also check -pipe, even though clang is OK with that one. It should be fine to omit either flag. gcc -fno-default-inline drops the implicit 'inline' annotation on functions defined inside a class scope, but 'inline' is only a hint anyway. -fno-default-inline does not change linkage. -pipe is merely a compile speed optimization.
-rw-r--r--configure.ac11
-rw-r--r--src/crypto/Makefile.am2
-rw-r--r--src/examples/Makefile.am2
-rw-r--r--src/frontend/Makefile.am2
-rw-r--r--src/network/Makefile.am2
-rw-r--r--src/protobufs/Makefile.am2
-rw-r--r--src/statesync/Makefile.am2
-rw-r--r--src/terminal/Makefile.am2
-rw-r--r--src/tests/Makefile.am2
-rw-r--r--src/util/Makefile.am2
10 files changed, 20 insertions, 9 deletions
diff --git a/configure.ac b/configure.ac
index 758edd9..99b7960 100644
--- a/configure.ac
+++ b/configure.ac
@@ -101,6 +101,17 @@ AS_IF([test x"$hardening" != x"no"], [
AC_SUBST([HARDEN_CFLAGS])
AC_SUBST([HARDEN_LDFLAGS])
+# Also check for a few non-hardening-related flags.
+MISC_CXXFLAGS=""
+AC_LANG_PUSH(C++)
+AX_CHECK_COMPILE_FLAG([-fno-default-inline],
+ [MISC_CXXFLAGS="$MISC_CXXFLAGS -fno-default-inline"], [], [-Werror])
+AX_CHECK_COMPILE_FLAG([-pipe],
+ [MISC_CXXFLAGS="$MISC_CXXFLAGS -pipe"], [], [-Werror])
+AC_LANG_POP(C++)
+AC_SUBST([MISC_CXXFLAGS])
+
+# End of flag tests.
CC="$saved_CC"
CXX="$saved_CXX"
LD="$saved_LD"
diff --git a/src/crypto/Makefile.am b/src/crypto/Makefile.am
index 1ebaf16..c4c5310 100644
--- a/src/crypto/Makefile.am
+++ b/src/crypto/Makefile.am
@@ -1,4 +1,4 @@
-AM_CXXFLAGS = $(WARNING_CXXFLAGS) $(PICKY_CXXFLAGS) $(HARDEN_CFLAGS) -fno-default-inline -pipe
+AM_CXXFLAGS = $(WARNING_CXXFLAGS) $(PICKY_CXXFLAGS) $(HARDEN_CFLAGS) $(MISC_CXXFLAGS)
noinst_LIBRARIES = libmoshcrypto.a
diff --git a/src/examples/Makefile.am b/src/examples/Makefile.am
index 40421ad..9908b07 100644
--- a/src/examples/Makefile.am
+++ b/src/examples/Makefile.am
@@ -1,5 +1,5 @@
AM_CPPFLAGS = $(protobuf_CFLAGS)
-AM_CXXFLAGS = $(WARNING_CXXFLAGS) $(PICKY_CXXFLAGS) $(HARDEN_CFLAGS) -fno-default-inline -pipe
+AM_CXXFLAGS = $(WARNING_CXXFLAGS) $(PICKY_CXXFLAGS) $(HARDEN_CFLAGS) $(MISC_CXXFLAGS)
AM_LDFLAGS = $(HARDEN_LDFLAGS)
if BUILD_EXAMPLES
diff --git a/src/frontend/Makefile.am b/src/frontend/Makefile.am
index 231e56d..94df617 100644
--- a/src/frontend/Makefile.am
+++ b/src/frontend/Makefile.am
@@ -1,5 +1,5 @@
AM_CPPFLAGS = -I$(srcdir)/../statesync -I$(srcdir)/../terminal -I$(srcdir)/../network -I$(srcdir)/../crypto -I../protobufs -I$(srcdir)/../util $(BOOST_CPPFLAGS) $(TINFO_CFLAGS) $(protobuf_CFLAGS) $(poll_CFLAGS)
-AM_CXXFLAGS = $(WARNING_CXXFLAGS) $(PICKY_CXXFLAGS) $(HARDEN_CFLAGS) -fno-default-inline -pipe
+AM_CXXFLAGS = $(WARNING_CXXFLAGS) $(PICKY_CXXFLAGS) $(HARDEN_CFLAGS) $(MISC_CXXFLAGS)
AM_LDFLAGS = $(HARDEN_LDFLAGS)
LDADD = ../crypto/libmoshcrypto.a ../network/libmoshnetwork.a ../statesync/libmoshstatesync.a ../terminal/libmoshterminal.a ../util/libmoshutil.a ../protobufs/libmoshprotos.a $(poll_LIBS) -lm $(TINFO_LIBS) $(protobuf_LIBS)
if COND_THIRD_LIBSTDDJB
diff --git a/src/network/Makefile.am b/src/network/Makefile.am
index 50cff44..e952b6a 100644
--- a/src/network/Makefile.am
+++ b/src/network/Makefile.am
@@ -1,5 +1,5 @@
AM_CPPFLAGS = -I$(srcdir)/../util -I$(srcdir)/../crypto -I../protobufs $(BOOST_CPPFLAGS) $(protobuf_CFLAGS)
-AM_CXXFLAGS = $(WARNING_CXXFLAGS) $(PICKY_CXXFLAGS) $(HARDEN_CFLAGS) -fno-default-inline -pipe
+AM_CXXFLAGS = $(WARNING_CXXFLAGS) $(PICKY_CXXFLAGS) $(HARDEN_CFLAGS) $(MISC_CXXFLAGS)
noinst_LIBRARIES = libmoshnetwork.a
diff --git a/src/protobufs/Makefile.am b/src/protobufs/Makefile.am
index b1a612a..131ec4e 100644
--- a/src/protobufs/Makefile.am
+++ b/src/protobufs/Makefile.am
@@ -1,7 +1,7 @@
source = userinput.proto hostinput.proto transportinstruction.proto
AM_CPPFLAGS = $(protobuf_CFLAGS)
-AM_CXXFLAGS = $(WARNING_CXXFLAGS) $(HARDEN_CFLAGS) -fno-default-inline -pipe
+AM_CXXFLAGS = $(WARNING_CXXFLAGS) $(HARDEN_CFLAGS) $(MISC_CXXFLAGS)
SUFFIXES = .proto .pb.cc
diff --git a/src/statesync/Makefile.am b/src/statesync/Makefile.am
index 7926ce6..257c50d 100644
--- a/src/statesync/Makefile.am
+++ b/src/statesync/Makefile.am
@@ -1,5 +1,5 @@
AM_CPPFLAGS = -I$(srcdir)/../util -I$(srcdir)/../terminal -I../protobufs $(BOOST_CPPFLAGS) $(protobuf_CFLAGS)
-AM_CXXFLAGS = $(WARNING_CXXFLAGS) $(PICKY_CXXFLAGS) $(HARDEN_CFLAGS) -fno-default-inline -pipe
+AM_CXXFLAGS = $(WARNING_CXXFLAGS) $(PICKY_CXXFLAGS) $(HARDEN_CFLAGS) $(MISC_CXXFLAGS)
noinst_LIBRARIES = libmoshstatesync.a
diff --git a/src/terminal/Makefile.am b/src/terminal/Makefile.am
index 25d7b7f..dea7fb1 100644
--- a/src/terminal/Makefile.am
+++ b/src/terminal/Makefile.am
@@ -1,5 +1,5 @@
AM_CPPFLAGS = -I$(srcdir)/../util $(BOOST_CPPFLAGS) $(TINFO_CFLAGS)
-AM_CXXFLAGS = $(WARNING_CXXFLAGS) $(PICKY_CXXFLAGS) $(HARDEN_CFLAGS) -fno-default-inline -pipe
+AM_CXXFLAGS = $(WARNING_CXXFLAGS) $(PICKY_CXXFLAGS) $(HARDEN_CFLAGS) $(MISC_CXXFLAGS)
noinst_LIBRARIES = libmoshterminal.a
diff --git a/src/tests/Makefile.am b/src/tests/Makefile.am
index 349788c..cd0118d 100644
--- a/src/tests/Makefile.am
+++ b/src/tests/Makefile.am
@@ -1,4 +1,4 @@
-AM_CXXFLAGS = $(WARNING_CXXFLAGS) $(PICKY_CXXFLAGS) $(HARDEN_CFLAGS) -fno-default-inline -pipe
+AM_CXXFLAGS = $(WARNING_CXXFLAGS) $(PICKY_CXXFLAGS) $(HARDEN_CFLAGS) $(MISC_CXXFLAGS)
AM_LDFLAGS = $(HARDEN_LDFLAGS)
if BUILD_TESTS
diff --git a/src/util/Makefile.am b/src/util/Makefile.am
index 6d26c4d..1ab3133 100644
--- a/src/util/Makefile.am
+++ b/src/util/Makefile.am
@@ -1,4 +1,4 @@
-AM_CXXFLAGS = $(WARNING_CXXFLAGS) $(PICKY_CXXFLAGS) $(HARDEN_CFLAGS) -fno-default-inline -pipe
+AM_CXXFLAGS = $(WARNING_CXXFLAGS) $(PICKY_CXXFLAGS) $(HARDEN_CFLAGS) $(MISC_CXXFLAGS)
noinst_LIBRARIES = libmoshutil.a