From f79bfe60729f8e051311ee8e7016d7e651bb687a Mon Sep 17 00:00:00 2001
From: Jo-Philipp Wich <jow@openwrt.org>
Date: Sat, 21 Apr 2012 03:02:39 +0000
Subject: [PATCH] gcc: add patch to make the getenv() spec function nonfatal if
 requested environment variable is unset

SVN-Revision: 31390
---
 .../4.5-linaro/920-specs_nonfatal_getenv.patch     | 14 ++++++++++++++
 .../4.6-linaro/920-specs_nonfatal_getenv.patch     | 14 ++++++++++++++
 .../patches/4.6.2/920-specs_nonfatal_getenv.patch  | 14 ++++++++++++++
 .../patches/4.7.0/920-specs_nonfatal_getenv.patch  | 14 ++++++++++++++
 4 files changed, 56 insertions(+)
 create mode 100644 toolchain/gcc/patches/4.5-linaro/920-specs_nonfatal_getenv.patch
 create mode 100644 toolchain/gcc/patches/4.6-linaro/920-specs_nonfatal_getenv.patch
 create mode 100644 toolchain/gcc/patches/4.6.2/920-specs_nonfatal_getenv.patch
 create mode 100644 toolchain/gcc/patches/4.7.0/920-specs_nonfatal_getenv.patch

diff --git a/toolchain/gcc/patches/4.5-linaro/920-specs_nonfatal_getenv.patch b/toolchain/gcc/patches/4.5-linaro/920-specs_nonfatal_getenv.patch
new file mode 100644
index 0000000000..6fd659c04f
--- /dev/null
+++ b/toolchain/gcc/patches/4.5-linaro/920-specs_nonfatal_getenv.patch
@@ -0,0 +1,14 @@
+--- a/gcc/gcc.c
++++ b/gcc/gcc.c
+@@ -8583,7 +8583,10 @@ getenv_spec_function (int argc, const ch
+ 
+   value = getenv (argv[0]);
+   if (!value)
+-    fatal ("environment variable \"%s\" not defined", argv[0]);
++  {
++    warning (0, "environment variable \"%s\" not defined", argv[0]);
++    value = "";
++  }
+ 
+   /* We have to escape every character of the environment variable so
+      they are not interpreted as active spec characters.  A
diff --git a/toolchain/gcc/patches/4.6-linaro/920-specs_nonfatal_getenv.patch b/toolchain/gcc/patches/4.6-linaro/920-specs_nonfatal_getenv.patch
new file mode 100644
index 0000000000..5055ae898e
--- /dev/null
+++ b/toolchain/gcc/patches/4.6-linaro/920-specs_nonfatal_getenv.patch
@@ -0,0 +1,14 @@
+--- a/gcc/gcc.c
++++ b/gcc/gcc.c
+@@ -7772,7 +7772,10 @@ getenv_spec_function (int argc, const ch
+ 
+   value = getenv (argv[0]);
+   if (!value)
+-    fatal_error ("environment variable %qs not defined", argv[0]);
++    {
++      warning (0, "environment variable %qs not defined", argv[0]);
++      value = "";
++    }
+ 
+   /* We have to escape every character of the environment variable so
+      they are not interpreted as active spec characters.  A
diff --git a/toolchain/gcc/patches/4.6.2/920-specs_nonfatal_getenv.patch b/toolchain/gcc/patches/4.6.2/920-specs_nonfatal_getenv.patch
new file mode 100644
index 0000000000..5055ae898e
--- /dev/null
+++ b/toolchain/gcc/patches/4.6.2/920-specs_nonfatal_getenv.patch
@@ -0,0 +1,14 @@
+--- a/gcc/gcc.c
++++ b/gcc/gcc.c
+@@ -7772,7 +7772,10 @@ getenv_spec_function (int argc, const ch
+ 
+   value = getenv (argv[0]);
+   if (!value)
+-    fatal_error ("environment variable %qs not defined", argv[0]);
++    {
++      warning (0, "environment variable %qs not defined", argv[0]);
++      value = "";
++    }
+ 
+   /* We have to escape every character of the environment variable so
+      they are not interpreted as active spec characters.  A
diff --git a/toolchain/gcc/patches/4.7.0/920-specs_nonfatal_getenv.patch b/toolchain/gcc/patches/4.7.0/920-specs_nonfatal_getenv.patch
new file mode 100644
index 0000000000..0f2a8704fe
--- /dev/null
+++ b/toolchain/gcc/patches/4.7.0/920-specs_nonfatal_getenv.patch
@@ -0,0 +1,14 @@
+--- a/gcc/gcc.c
++++ b/gcc/gcc.c
+@@ -7814,7 +7814,10 @@ getenv_spec_function (int argc, const ch
+ 
+   value = getenv (argv[0]);
+   if (!value)
+-    fatal_error ("environment variable %qs not defined", argv[0]);
++    {
++      warning (0, "environment variable %qs not defined", argv[0]);
++      value = "";
++    }
+ 
+   /* We have to escape every character of the environment variable so
+      they are not interpreted as active spec characters.  A
-- 
2.30.2