GNU bug report logs - #51743
[PATCH] cross-base: fix environment variables patch for GCC 10

Previous Next

Package: guix-patches;

Reported by: Michael Ford <fanquake <at> gmail.com>

Date: Wed, 10 Nov 2021 06:58:01 UTC

Severity: normal

Tags: patch

Done: Morgan Smith <Morgan.J.Smith <at> outlook.com>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 51743 in the body.
You can then email your comments to 51743 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#51743; Package guix-patches. (Wed, 10 Nov 2021 06:58:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Michael Ford <fanquake <at> gmail.com>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Wed, 10 Nov 2021 06:58:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Michael Ford <fanquake <at> gmail.com>
To: guix-patches <at> gnu.org
Subject: [PATCH] cross-base: fix environment variables patch for GCC 10
Date: Wed, 10 Nov 2021 14:49:13 +0800
[Message part 1 (text/plain, inline)]
---
 gnu/packages/cross-base.scm                   |  2 +
 .../gcc-10-cross-environment-variables.patch  | 54 +++++++++++++++++++
 2 files changed, 56 insertions(+)
 create mode 100644
gnu/packages/patches/gcc-10-cross-environment-variables.patch

diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm
index 180594509b..0a93d0dc6d 100644
--- a/gnu/packages/cross-base.scm
+++ b/gnu/packages/cross-base.scm
@@ -243,6 +243,8 @@ (define* (cross-gcc target
         (append
          (origin-patches (package-source xgcc))
          (append (cond
+                  ((version>=? (package-version xgcc) "10.0")
+                    (search-patches
"gcc-10-cross-environment-variables.patch"))
                   ((version>=? (package-version xgcc) "8.0")
                    (search-patches
"gcc-8-cross-environment-variables.patch"))
                   ((version>=? (package-version xgcc) "6.0")
diff --git a/gnu/packages/patches/gcc-10-cross-environment-variables.patch
b/gnu/packages/patches/gcc-10-cross-environment-variables.patch
new file mode 100644
index 0000000000..829bc583e9
--- /dev/null
+++ b/gnu/packages/patches/gcc-10-cross-environment-variables.patch
@@ -0,0 +1,54 @@
+Search path environment variables for cross-compilers.  See the discussion
+at <http://gcc.gnu.org/ml/gcc/2013-02/msg00124.html>.
+
+Note: Touch 'C_INCLUDE_PATH' et al. rather than 'CPATH', as discussed
+at <http://bugs.gnu.org/22186>.
+
+diff --git a/gcc/gcc.c b/gcc/gcc.c
+index 9f790db0daf..326aa52f46f 100644
+--- a/gcc/gcc.c
++++ b/gcc/gcc.c
+@@ -4474,7 +4474,7 @@ process_command (unsigned int decoded_options_count,
+     }
+
+   temp = env.get (LIBRARY_PATH_ENV);
+-  if (temp && *cross_compile == '0')
++  if (temp)
+     {
+       const char *startp, *endp;
+       char *nstore = (char *) alloca (strlen (temp) + 3);
+diff --git a/gcc/incpath.c b/gcc/incpath.c
+index 8a2bda00f80..4f740a6a4c3 100644
+--- a/gcc/incpath.c
++++ b/gcc/incpath.c
+@@ -472,8 +472,8 @@ register_include_chains (cpp_reader *pfile, const char
*sysroot,
+ int stdinc, int cxx_stdinc, int verbose)
+ {
+   static const char *const lang_env_vars[] =
+-    { "C_INCLUDE_PATH", "CPLUS_INCLUDE_PATH",
+-      "OBJC_INCLUDE_PATH", "OBJCPLUS_INCLUDE_PATH" };
++    { "CROSS_C_INCLUDE_PATH", "CROSS_CPLUS_INCLUDE_PATH",
++      "CROSS_OBJC_INCLUDE_PATH", "CROSS_OBJCPLUS_INCLUDE_PATH" };
+   cpp_options *cpp_opts = cpp_get_options (pfile);
+   size_t idx = (cpp_opts->objc ? 2: 0);
+
+@@ -484,7 +484,7 @@ register_include_chains (cpp_reader *pfile, const char
*sysroot,
+
+   /* CPATH and language-dependent environment variables may add to the
+      include chain.  */
+-  add_env_var_paths ("CPATH", INC_BRACKET);
++  add_env_var_paths ("CROSS_CPATH", INC_BRACKET);
+   add_env_var_paths (lang_env_vars[idx], INC_SYSTEM);
+
+   target_c_incpath.extra_pre_includes (sysroot, iprefix, stdinc);
+diff --git a/gcc/system.h b/gcc/system.h
+index 263070169ab..14a819db28d 100644
+--- a/gcc/system.h
++++ b/gcc/system.h
+@@ -1248,4 +1248,6 @@ void gcc_stablesort (void *, size_t, size_t,
+    of the number.  */
+ #define PRsa(n) "%" #n PRIu64 "%c"
+
++#define LIBRARY_PATH_ENV "CROSS_LIBRARY_PATH"
++
+ #endif /* ! GCC_SYSTEM_H */
-- 
2.33.1
[Message part 2 (text/html, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#51743; Package guix-patches. (Thu, 11 Nov 2021 04:55:02 GMT) Full text and rfc822 format available.

Message #8 received at 51743 <at> debbugs.gnu.org (full text, mbox):

From: Morgan.J.Smith <at> outlook.com
To: 51743 <at> debbugs.gnu.org,
	fanquake <at> gmail.com
Subject: [PATCH] cross-base: fix environment variables patch for GCC 10
Date: Wed, 10 Nov 2021 23:50:55 -0500
From: Michael Ford <fanquake <at> gmail.com>

This patch works great!  I have an MSP430 toolchain based on GCC 11 I've been trying to get working and this fixes the environment variable problem.  Thank you very much!  I think the formating of the patch got messed up a little in transport so I'm re-sending it here to make it easy for the committer.


---
 gnu/packages/cross-base.scm                   |  2 +
 .../gcc-10-cross-environment-variables.patch  | 54 +++++++++++++++++++
 2 files changed, 56 insertions(+)
 create mode 100644 gnu/packages/patches/gcc-10-cross-environment-variables.patch

diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm
index 180594509b..0a93d0dc6d 100644
--- a/gnu/packages/cross-base.scm
+++ b/gnu/packages/cross-base.scm
@@ -243,6 +243,8 @@ (define* (cross-gcc target
         (append
          (origin-patches (package-source xgcc))
          (append (cond
+                  ((version>=? (package-version xgcc) "10.0")
+                    (search-patches "gcc-10-cross-environment-variables.patch"))
                   ((version>=? (package-version xgcc) "8.0")
                    (search-patches "gcc-8-cross-environment-variables.patch"))
                   ((version>=? (package-version xgcc) "6.0")
diff --git a/gnu/packages/patches/gcc-10-cross-environment-variables.patch b/gnu/packages/patches/gcc-10-cross-environment-variables.patch
new file mode 100644
index 0000000000..c350e4b62b
--- /dev/null
+++ b/gnu/packages/patches/gcc-10-cross-environment-variables.patch
@@ -0,0 +1,54 @@
+Search path environment variables for cross-compilers.  See the discussion
+at <http://gcc.gnu.org/ml/gcc/2013-02/msg00124.html>.
+
+Note: Touch 'C_INCLUDE_PATH' et al. rather than 'CPATH', as discussed
+at <http://bugs.gnu.org/22186>.
+
+diff --git a/gcc/gcc.c b/gcc/gcc.c
+index 9f790db0daf..326aa52f46f 100644
+--- a/gcc/gcc.c
++++ b/gcc/gcc.c
+@@ -4474,7 +4474,7 @@ process_command (unsigned int decoded_options_count,
+     }
+
+   temp = env.get (LIBRARY_PATH_ENV);
+-  if (temp && *cross_compile == '0')
++  if (temp)
+     {
+       const char *startp, *endp;
+       char *nstore = (char *) alloca (strlen (temp) + 3);
+diff --git a/gcc/incpath.c b/gcc/incpath.c
+index 8a2bda00f80..4f740a6a4c3 100644
+--- a/gcc/incpath.c
++++ b/gcc/incpath.c
+@@ -472,8 +472,8 @@ register_include_chains (cpp_reader *pfile, const char *sysroot,
+ int stdinc, int cxx_stdinc, int verbose)
+ {
+   static const char *const lang_env_vars[] =
+-    { "C_INCLUDE_PATH", "CPLUS_INCLUDE_PATH",
+-      "OBJC_INCLUDE_PATH", "OBJCPLUS_INCLUDE_PATH" };
++    { "CROSS_C_INCLUDE_PATH", "CROSS_CPLUS_INCLUDE_PATH",
++      "CROSS_OBJC_INCLUDE_PATH", "CROSS_OBJCPLUS_INCLUDE_PATH" };
+   cpp_options *cpp_opts = cpp_get_options (pfile);
+   size_t idx = (cpp_opts->objc ? 2: 0);
+
+@@ -484,7 +484,7 @@ register_include_chains (cpp_reader *pfile, const char *sysroot,
+
+   /* CPATH and language-dependent environment variables may add to the
+      include chain.  */
+-  add_env_var_paths ("CPATH", INC_BRACKET);
++  add_env_var_paths ("CROSS_CPATH", INC_BRACKET);
+   add_env_var_paths (lang_env_vars[idx], INC_SYSTEM);
+
+   target_c_incpath.extra_pre_includes (sysroot, iprefix, stdinc);
+diff --git a/gcc/system.h b/gcc/system.h
+index 263070169ab..14a819db28d 100644
+--- a/gcc/system.h
++++ b/gcc/system.h
+@@ -1248,4 +1248,6 @@ void gcc_stablesort (void *, size_t, size_t,
+    of the number.  */
+ #define PRsa(n) "%" #n PRIu64 "%c"
+
++#define LIBRARY_PATH_ENV "CROSS_LIBRARY_PATH"
++
+ #endif /* ! GCC_SYSTEM_H */
-- 
2.33.1





Information forwarded to guix-patches <at> gnu.org:
bug#51743; Package guix-patches. (Wed, 01 Dec 2021 16:52:02 GMT) Full text and rfc822 format available.

Message #11 received at 51743 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Michael Ford <fanquake <at> gmail.com>, Morgan.J.Smith <at> outlook.com
Cc: 51743 <at> debbugs.gnu.org
Subject: Re: bug#51743: [PATCH] cross-base: fix environment variables patch
 for GCC 10
Date: Wed, 01 Dec 2021 17:51:12 +0100
Hi Michael and Morgan,

Michael Ford <fanquake <at> gmail.com> skribis:

> ---
>  gnu/packages/cross-base.scm                   |  2 +
>  .../gcc-10-cross-environment-variables.patch  | 54 +++++++++++++++++++
>  2 files changed, 56 insertions(+)
>  create mode 100644

A similar patch was added in ‘core-updates’ commit
4796b5d6d18dcc0f1b6c8e134977ebdb575c5741, which we’ll hopefully be
merged Real Soon Now.

So I’m tempted to just wait for the merge.

Thoughts?

Thanks,
Ludo’.

PS: Please use ‘git send-email’ or send patches as attachments to make
    sure they aren’t mangled on the way.




bug closed, send any further explanations to 51743 <at> debbugs.gnu.org and Michael Ford <fanquake <at> gmail.com> Request was from Morgan Smith <Morgan.J.Smith <at> outlook.com> to control <at> debbugs.gnu.org. (Thu, 30 Dec 2021 08:00:01 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Thu, 27 Jan 2022 12:24:08 GMT) Full text and rfc822 format available.

This bug report was last modified 2 years and 89 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.