GNU bug report logs -
#55643
[PATCH] gnu: GCC: Add cross environment variables patch to GCC 12.
Previous Next
Reported by: Morgan.J.Smith <at> outlook.com
Date: Wed, 25 May 2022 21:45:01 UTC
Severity: normal
Tags: patch
Done: Ludovic Courtès <ludo <at> gnu.org>
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 55643 in the body.
You can then email your comments to 55643 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
guix-patches <at> gnu.org
:
bug#55643
; Package
guix-patches
.
(Wed, 25 May 2022 21:45:01 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Morgan.J.Smith <at> outlook.com
:
New bug report received and forwarded. Copy sent to
guix-patches <at> gnu.org
.
(Wed, 25 May 2022 21:45:01 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Morgan Smith <Morgan.J.Smith <at> outlook.com>
* gnu/packages/patches/gcc-12-cross-environment-variables.patch : New file.
* gnu/local.mk (dist_patch_DATA): Add
gcc-12-cross-environment-variables.patch.
* gnu/packages/cross-base.scm (cross-gcc)[source](patches): Apply the patch.
---
The files names have changed (gcc.c -> gcc.cc) so we can't keep using the gcc
10 patch. Tested and working for me
gnu/local.mk | 1 +
gnu/packages/cross-base.scm | 3 ++
.../gcc-12-cross-environment-variables.patch | 54 +++++++++++++++++++
3 files changed, 58 insertions(+)
create mode 100644 gnu/packages/patches/gcc-12-cross-environment-variables.patch
diff --git a/gnu/local.mk b/gnu/local.mk
index a4250248ca..0bc45fd26e 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1130,6 +1130,7 @@ dist_patch_DATA = \
%D%/packages/patches/gcc-9-strmov-store-file-names.patch \
%D%/packages/patches/gcc-12-strmov-store-file-names.patch \
%D%/packages/patches/gcc-10-cross-environment-variables.patch \
+ %D%/packages/patches/gcc-12-cross-environment-variables.patch \
%D%/packages/patches/gcolor3-update-libportal-usage.patch \
%D%/packages/patches/gd-fix-tests-on-i686.patch \
%D%/packages/patches/gd-brect-bounds.patch \
diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm
index 93e4f8a445..9c98c923ff 100644
--- a/gnu/packages/cross-base.scm
+++ b/gnu/packages/cross-base.scm
@@ -242,6 +242,9 @@ (define* (cross-gcc target
(append
(origin-patches (package-source xgcc))
(append (cond
+ ((version>=? (package-version xgcc) "12.0")
+ (search-patches "gcc-12-cross-environment-variables.patch"
+ "gcc-cross-gxx-include-dir.patch"))
((version>=? (package-version xgcc) "10.0")
(search-patches "gcc-10-cross-environment-variables.patch"
"gcc-cross-gxx-include-dir.patch"))
diff --git a/gnu/packages/patches/gcc-12-cross-environment-variables.patch b/gnu/packages/patches/gcc-12-cross-environment-variables.patch
new file mode 100644
index 0000000000..8787f094c0
--- /dev/null
+++ b/gnu/packages/patches/gcc-12-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.cc b/gcc/gcc.cc
+--- a/gcc/gcc.cc
++++ b/gcc/gcc.cc
+@@ -4832,7 +4832,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.cc b/gcc/incpath.cc
+--- a/gcc/incpath.cc
++++ b/gcc/incpath.cc
+@@ -480,8 +480,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);
+
+@@ -492,7 +492,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
+--- a/gcc/system.h
++++ b/gcc/system.h
+@@ -1317,4 +1317,6 @@ endswith (const char *str, const char *suffix)
+ return memcmp (str + str_len - suffix_len, suffix, suffix_len) == 0;
+ }
+
++#define LIBRARY_PATH_ENV "CROSS_LIBRARY_PATH"
++
+ #endif /* ! GCC_SYSTEM_H */
+--
+2.36.1
+
--
2.36.1
Reply sent
to
Ludovic Courtès <ludo <at> gnu.org>
:
You have taken responsibility.
(Mon, 30 May 2022 14:09:02 GMT)
Full text and
rfc822 format available.
Notification sent
to
Morgan.J.Smith <at> outlook.com
:
bug acknowledged by developer.
(Mon, 30 May 2022 14:09:02 GMT)
Full text and
rfc822 format available.
Message #10 received at 55643-done <at> debbugs.gnu.org (full text, mbox):
Hi Morgan,
Morgan.J.Smith <at> outlook.com skribis:
> From: Morgan Smith <Morgan.J.Smith <at> outlook.com>
>
> * gnu/packages/patches/gcc-12-cross-environment-variables.patch : New file.
> * gnu/local.mk (dist_patch_DATA): Add
> gcc-12-cross-environment-variables.patch.
> * gnu/packages/cross-base.scm (cross-gcc)[source](patches): Apply the patch.
Applied, thanks!
It’s annoying that there’s currently no easy way to test that from the
command line. For instance, this won’t do what we want:
guix build --with-c-toolchain=coreutils=gcc-toolchain <at> 12 \
--target=arm-linux-gnueabihf coreutils
Anyway, future work…
Ludo’.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Tue, 28 Jun 2022 11:24:09 GMT)
Full text and
rfc822 format available.
This bug report was last modified 1 year and 274 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.