--- bazel-0.3.1/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkAction.java	2016-07-29 10:22:16.000000000 +0200
+++ bazel-0.3.1/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkAction.java	2016-10-13 15:21:35.036617890 +0200
@@ -214,6 +214,135 @@
               .getParentDirectory()
               .getPathString());
     }
+
+    String path = System.getenv("PATH");
+    result.put("PATH", path == null ? "/bin:/usr/bin" : path);
+
+    String ldLibraryPath = System.getenv("LD_LIBRARY_PATH");
+    if (ldLibraryPath != null) {
+      result.put("LD_LIBRARY_PATH", ldLibraryPath);
+    }
+
+    String tmpdir = System.getenv("TMPDIR");
+    if (tmpdir != null) {
+      result.put("TMPDIR", tmpdir);
+    }
+
+    String spack_prefix = System.getenv("SPACK_PREFIX");
+    if (spack_prefix != null) {
+      result.put("SPACK_PREFIX", spack_prefix);
+    }
+
+    String spack_env_path = System.getenv("SPACK_ENV_PATH");
+    if (spack_env_path != null) {
+      result.put("SPACK_ENV_PATH", spack_env_path);
+    }
+
+    String spack_debug_log_id = System.getenv("SPACK_DEBUG_LOG_ID");
+    if (spack_debug_log_id != null) {
+      result.put("SPACK_DEBUG_LOG_ID", spack_debug_log_id);
+    }
+
+    String spack_debug_log_dir = System.getenv("SPACK_DEBUG_LOG_DIR");
+    if (spack_debug_log_dir != null) {
+      result.put("SPACK_DEBUG_LOG_DIR", spack_debug_log_dir);
+    }
+
+    String spack_compiler_spec = System.getenv("SPACK_COMPILER_SPEC");
+    if (spack_compiler_spec != null) {
+      result.put("SPACK_COMPILER_SPEC", spack_compiler_spec);
+    }
+
+    String spack_cc_rpath_arg = System.getenv("SPACK_CC_RPATH_ARG");
+    if (spack_cc_rpath_arg != null) {
+      result.put("SPACK_CC_RPATH_ARG", spack_cc_rpath_arg);
+    }
+
+    String spack_cxx_rpath_arg = System.getenv("SPACK_CXX_RPATH_ARG");
+    if (spack_cxx_rpath_arg != null) {
+      result.put("SPACK_CXX_RPATH_ARG", spack_cxx_rpath_arg);
+    }
+
+    String spack_f77_rpath_arg = System.getenv("SPACK_F77_RPATH_ARG");
+    if (spack_f77_rpath_arg != null) {
+      result.put("SPACK_F77_RPATH_ARG", spack_f77_rpath_arg);
+    }
+
+    String spack_fc_rpath_arg = System.getenv("SPACK_FC_RPATH_ARG");
+    if (spack_fc_rpath_arg != null) {
+      result.put("SPACK_FC_RPATH_ARG", spack_fc_rpath_arg);
+    }
+
+    String spack_short_spec = System.getenv("SPACK_SHORT_SPEC");
+    if (spack_short_spec != null) {
+      result.put("SPACK_SHORT_SPEC", spack_short_spec);
+    }
+
+    String spack_cc = System.getenv("SPACK_CC");
+    if (spack_cc != null) {
+      result.put("SPACK_CC", spack_cc);
+    }
+
+    String spack_cxx = System.getenv("SPACK_CXX");
+    if (spack_cxx != null) {
+      result.put("SPACK_CXX", spack_cxx);
+    }
+
+    String spack_f77 = System.getenv("SPACK_F77");
+    if (spack_f77 != null) {
+      result.put("SPACK_F77", spack_f77);
+    }
+
+    String spack_fc = System.getenv("SPACK_FC");
+    if (spack_fc != null) {
+      result.put("SPACK_FC", spack_fc);
+    }
+
+    String spack_cflags = System.getenv("SPACK_CFLAGS");
+    if (spack_cflags != null) {
+      result.put("SPACK_CFLAGS", spack_cflags);
+    }
+
+    String spack_cxxflags = System.getenv("SPACK_CXXFLAGS");
+    if (spack_cxxflags != null) {
+      result.put("SPACK_CXXFLAGS", spack_cxxflags);
+    }
+
+    String spack_fcflags = System.getenv("SPACK_FCFLAGS");
+    if (spack_fcflags != null) {
+      result.put("SPACK_FCFLAGS", spack_fcflags);
+    }
+
+    String spack_fflags = System.getenv("SPACK_FFLAGS");
+    if (spack_fflags != null) {
+      result.put("SPACK_FFLAGS", spack_fflags);
+    }
+
+    String spack_ldflags = System.getenv("SPACK_LDFLAGS");
+    if (spack_ldflags != null) {
+      result.put("SPACK_LDFLAGS", spack_ldflags);
+    }
+
+    String spack_ldlibs = System.getenv("SPACK_LDLIBS");
+    if (spack_ldlibs != null) {
+      result.put("SPACK_LDLIBS", spack_ldlibs);
+    }
+
+    String spack_debug = System.getenv("SPACK_DEBUG");
+    if (spack_debug != null) {
+      result.put("SPACK_DEBUG", spack_debug);
+    }
+
+    String spack_test_command = System.getenv("SPACK_TEST_COMMAND");
+    if (spack_test_command != null) {
+      result.put("SPACK_TEST_COMMAND", spack_test_command);
+    }
+
+    String spack_dependencies = System.getenv("SPACK_DEPENDENCIES");
+    if (spack_dependencies != null) {
+      result.put("SPACK_DEPENDENCIES", spack_dependencies);
+    }
+
     return result.build();
   }
 
