mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-01-22 14:45:27 +00:00
gcc: Fix purity
Somewhere the no-sys-dirs.patch got disabled, so gcc was looking in /usr/local/include and /usr/lib. Since I can't fix the patch easily, I've borrowed the --sysroot trick from clang-wrapper. This causes builtin paths to be prefixed with /var/empty (e.g. /var/empty/usr/lib), which don't exist.
This commit is contained in:
parent
b3b9c51b34
commit
7fe89be146
|
@ -77,6 +77,7 @@ if test "$NIX_ENFORCE_PURITY" = "1" -a -n "$NIX_STORE"; then
|
||||||
n=$((n + 1))
|
n=$((n + 1))
|
||||||
done
|
done
|
||||||
params=("${rest[@]}")
|
params=("${rest[@]}")
|
||||||
|
NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE --sysroot=/var/empty"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -32,6 +32,9 @@ if test "$NIX_ENFORCE_PURITY" = "1" -a -n "$NIX_STORE" \
|
||||||
# We cannot skip this; barf.
|
# We cannot skip this; barf.
|
||||||
echo "impure path \`$p' used in link" >&2
|
echo "impure path \`$p' used in link" >&2
|
||||||
exit 1
|
exit 1
|
||||||
|
elif test "${p:0:9}" = "--sysroot"; then
|
||||||
|
# Our ld is not built with sysroot support (Can we fix that?)
|
||||||
|
:
|
||||||
else
|
else
|
||||||
rest=("${rest[@]}" "$p")
|
rest=("${rest[@]}" "$p")
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -67,7 +67,6 @@ let version = "4.8.3";
|
||||||
patches = []
|
patches = []
|
||||||
++ optional enableParallelBuilding ./parallel-bconfig.patch
|
++ optional enableParallelBuilding ./parallel-bconfig.patch
|
||||||
++ optional (cross != null) ./libstdc++-target.patch
|
++ optional (cross != null) ./libstdc++-target.patch
|
||||||
# ++ optional noSysDirs ./no-sys-dirs.patch
|
|
||||||
# The GNAT Makefiles did not pay attention to CFLAGS_FOR_TARGET for its
|
# The GNAT Makefiles did not pay attention to CFLAGS_FOR_TARGET for its
|
||||||
# target libraries and tools.
|
# target libraries and tools.
|
||||||
++ optional langAda ./gnat-cflags.patch
|
++ optional langAda ./gnat-cflags.patch
|
||||||
|
|
|
@ -1,41 +0,0 @@
|
||||||
diff -ru gcc-4.3.1-orig/gcc/cppdefault.c gcc-4.3.1/gcc/cppdefault.c
|
|
||||||
--- gcc-4.3.1-orig/gcc/cppdefault.c 2007-07-26 10:37:01.000000000 +0200
|
|
||||||
+++ gcc-4.3.1/gcc/cppdefault.c 2008-06-25 17:48:23.000000000 +0200
|
|
||||||
@@ -41,6 +41,10 @@
|
|
||||||
# undef CROSS_INCLUDE_DIR
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+#undef LOCAL_INCLUDE_DIR
|
|
||||||
+#undef SYSTEM_INCLUDE_DIR
|
|
||||||
+#undef STANDARD_INCLUDE_DIR
|
|
||||||
+
|
|
||||||
const struct default_include cpp_include_defaults[]
|
|
||||||
#ifdef INCLUDE_DEFAULTS
|
|
||||||
= INCLUDE_DEFAULTS;
|
|
||||||
diff -ru gcc-4.3.1-orig/gcc/gcc.c gcc-4.3.1/gcc/gcc.c
|
|
||||||
--- gcc-4.3.1-orig/gcc/gcc.c 2008-03-02 23:55:19.000000000 +0100
|
|
||||||
+++ gcc-4.3.1/gcc/gcc.c 2008-06-25 17:52:53.000000000 +0200
|
|
||||||
@@ -1478,10 +1478,10 @@
|
|
||||||
/* Default prefixes to attach to command names. */
|
|
||||||
|
|
||||||
#ifndef STANDARD_STARTFILE_PREFIX_1
|
|
||||||
-#define STANDARD_STARTFILE_PREFIX_1 "/lib/"
|
|
||||||
+#define STANDARD_STARTFILE_PREFIX_1 ""
|
|
||||||
#endif
|
|
||||||
#ifndef STANDARD_STARTFILE_PREFIX_2
|
|
||||||
-#define STANDARD_STARTFILE_PREFIX_2 "/usr/lib/"
|
|
||||||
+#define STANDARD_STARTFILE_PREFIX_2 ""
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CROSS_DIRECTORY_STRUCTURE /* Don't use these prefixes for a cross compiler. */
|
|
||||||
--- gcc-4.3.1-orig/gcc/Makefile.in 2008-05-11 20:54:15.000000000 +0200
|
|
||||||
+++ gcc-4.3.1/gcc/Makefile.in 2008-06-25 17:48:23.000000000 +0200
|
|
||||||
@@ -3277,7 +3281,7 @@
|
|
||||||
-DGPLUSPLUS_INCLUDE_DIR=\"$(gcc_gxx_include_dir)\" \
|
|
||||||
-DGPLUSPLUS_TOOL_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/$(target_noncanonical)\" \
|
|
||||||
-DGPLUSPLUS_BACKWARD_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/backward\" \
|
|
||||||
- -DLOCAL_INCLUDE_DIR=\"$(local_includedir)\" \
|
|
||||||
+ -DLOCAL_INCLUDE_DIR=\"/no-such-dir\" \
|
|
||||||
-DCROSS_INCLUDE_DIR=\"$(CROSS_SYSTEM_HEADER_DIR)\" \
|
|
||||||
-DTOOL_INCLUDE_DIR=\"$(gcc_tooldir)/include\" \
|
|
||||||
-DPREFIX=\"$(prefix)/\" \
|
|
Loading…
Reference in a new issue