about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAngus Lees <gus@debian.org>2015-11-20 12:48:19 -0200
committerBruno Tavares <connect+github@bltavares.com>2015-11-20 12:51:10 -0200
commit07b7f2fbc922ec7aa0c99d06d042e1d553e2a25a (patch)
treee27f5575cea1fd0637428388c1ab0c7cdb0ce9b7
parent6861c51453963317849b4488ddc6a110e4f3470a (diff)
downloadrust-07b7f2fbc922ec7aa0c99d06d042e1d553e2a25a.tar.gz
rust-07b7f2fbc922ec7aa0c99d06d042e1d553e2a25a.zip
Set CFLAGS/LDFLAGS/etc according to Debian policy
Debian wants to build all binaries with particular hardening flags.
The Rust makefiles are inconsistent in which architectures they
correctly include CFLAGS/etc from the enivoronment (see mk/cfg/*).

This patch adds LDFLAGS, and then unconditionally prepends
CFLAGS/LDFLAGS/etc to the build commands.
-rwxr-xr-xconfigure9
-rw-r--r--mk/platform.mk4
2 files changed, 9 insertions, 4 deletions
diff --git a/configure b/configure
index 4fb6cb53bd8..1c63f74db3b 100755
--- a/configure
+++ b/configure
@@ -1053,12 +1053,13 @@ fi
 # point in the script; after this point, script logic should inspect
 # $CFG_USING_CLANG rather than $CFG_ENABLE_CLANG.
 
-# Set CFG_{CC,CXX,CPP,CFLAGS,CXXFLAGS}
+# Set CFG_{CC,CXX,CPP,CFLAGS,CXXFLAGS,LDFLAGS}
 envopt CC
 envopt CXX
 envopt CPP
 envopt CFLAGS
 envopt CXXFLAGS
+envopt LDFLAGS
 
 # stdc++ name in use
 # used to manage non-standard name (on OpenBSD for example)
@@ -1667,9 +1668,9 @@ do
 
         CXX=$LLVM_CXX
         CC=$LLVM_CC
-        CFLAGS=$LLVM_CFLAGS
-        CXXFLAGS=$LLVM_CXXFLAGS
-        LDFLAGS=$LLVM_LDFLAGS
+        CFLAGS="$CFLAGS $LLVM_CFLAGS"
+        CXXFLAGS="$CXXFLAGS $LLVM_CXXFLAGS"
+        LDFLAGS="$LDFLAGS $LLVM_LDFLAGS"
 
         if [ -z "$CFG_DISABLE_LIBCPP" ] && [ -n "$CFG_USING_CLANG" ]; then
             LLVM_OPTS="$LLVM_OPTS --enable-libcpp"
diff --git a/mk/platform.mk b/mk/platform.mk
index e6669f5c58d..fd8416e8a6e 100644
--- a/mk/platform.mk
+++ b/mk/platform.mk
@@ -189,21 +189,25 @@ define CFG_MAKE_TOOLCHAIN
   endif
 
   CFG_COMPILE_C_$(1) = $$(CC_$(1)) \
+        $$(CFLAGS) \
         $$(CFG_GCCISH_CFLAGS) \
         $$(CFG_GCCISH_CFLAGS_$(1)) \
         -c $$(call CFG_CC_OUTPUT_$(1),$$(1)) $$(2)
   CFG_LINK_C_$(1) = $$(CC_$(1)) \
+        $$(LDFLAGS) \
         $$(CFG_GCCISH_LINK_FLAGS) -o $$(1) \
         $$(CFG_GCCISH_LINK_FLAGS_$(1)) \
         $$(CFG_GCCISH_DEF_FLAG_$(1))$$(3) $$(2) \
         $$(call CFG_INSTALL_NAME_$(1),$$(4))
   CFG_COMPILE_CXX_$(1) = $$(CXX_$(1)) \
+        $$(CXXFLAGS) \
         $$(CFG_GCCISH_CFLAGS) \
         $$(CFG_GCCISH_CXXFLAGS) \
         $$(CFG_GCCISH_CFLAGS_$(1)) \
         $$(CFG_GCCISH_CXXFLAGS_$(1)) \
         -c $$(call CFG_CC_OUTPUT_$(1),$$(1)) $$(2)
   CFG_LINK_CXX_$(1) = $$(CXX_$(1)) \
+        $$(LDFLAGS) \
         $$(CFG_GCCISH_LINK_FLAGS) -o $$(1) \
         $$(CFG_GCCISH_LINK_FLAGS_$(1)) \
         $$(CFG_GCCISH_DEF_FLAG_$(1))$$(3) $$(2) \