diff options
author | Keegan McAllister <mcallister.keegan@gmail.com> | 2012-04-08 00:42:10 -0400 |
---|---|---|
committer | Keith Winstein <keithw@mit.edu> | 2012-04-13 12:27:27 -0400 |
commit | d2434d1a797454497c7294305cf243d64b6c28b0 (patch) | |
tree | 45295bb9d9ec16e7d4dc5544f2cb4d387526a7af | |
parent | 62b6137ff5b1c280ba99a0ba1b64b4a03cb3f779 (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.ac | 11 | ||||
-rw-r--r-- | src/crypto/Makefile.am | 2 | ||||
-rw-r--r-- | src/examples/Makefile.am | 2 | ||||
-rw-r--r-- | src/frontend/Makefile.am | 2 | ||||
-rw-r--r-- | src/network/Makefile.am | 2 | ||||
-rw-r--r-- | src/protobufs/Makefile.am | 2 | ||||
-rw-r--r-- | src/statesync/Makefile.am | 2 | ||||
-rw-r--r-- | src/terminal/Makefile.am | 2 | ||||
-rw-r--r-- | src/tests/Makefile.am | 2 | ||||
-rw-r--r-- | src/util/Makefile.am | 2 |
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 |