[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
131/285: gnu: Add gcc-arm-none-eabi-7-2018-q2-update.
From: |
guix-commits |
Subject: |
131/285: gnu: Add gcc-arm-none-eabi-7-2018-q2-update. |
Date: |
Sun, 29 Dec 2019 20:44:15 -0500 (EST) |
kkebreau pushed a commit to branch wip-gnome3.34
in repository guix.
commit 11c37ab8e699c8f9420e71e0c423e15ced616c06
Author: Ricardo Wurmus <address@hidden>
Date: Tue Dec 24 23:34:03 2019 +0100
gnu: Add gcc-arm-none-eabi-7-2018-q2-update.
* gnu/packages/embedded.scm (gcc-arm-none-eabi-7-2018-q2-update): New
variable.
* gnu/packages/patches/gcc-7-cross-environment-variables.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
---
gnu/local.mk | 1 +
gnu/packages/embedded.scm | 78 ++++++++++++++++++++++
.../gcc-7-cross-environment-variables.patch | 67 +++++++++++++++++++
3 files changed, 146 insertions(+)
diff --git a/gnu/local.mk b/gnu/local.mk
index 8b0ddbf..3de4a24 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -871,6 +871,7 @@ dist_patch_DATA =
\
%D%/packages/patches/gcc-6-source-date-epoch-1.patch \
%D%/packages/patches/gcc-6-source-date-epoch-2.patch \
%D%/packages/patches/gcc-7-cross-mingw.patch \
+ %D%/packages/patches/gcc-7-cross-environment-variables.patch \
%D%/packages/patches/gcc-8-cross-environment-variables.patch \
%D%/packages/patches/gcc-8-strmov-store-file-names.patch \
%D%/packages/patches/gcc-9-asan-fix-limits-include.patch \
diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm
index 4087e04..d2918c9 100644
--- a/gnu/packages/embedded.scm
+++ b/gnu/packages/embedded.scm
@@ -207,6 +207,84 @@ usable on embedded products.")
"--disable-nls"))))
(synopsis "Newlib variant for small systems with limited memory")))
+
+;;; The following definitions are for the "7-2018-q2-update" variant of the
+;;; ARM cross toolchain as offered on https://developer.arm.com
+(define-public gcc-arm-none-eabi-7-2018-q2-update
+ (let ((xgcc (cross-gcc "arm-none-eabi"
+ #:xgcc gcc-7
+ #:xbinutils (cross-binutils "arm-none-eabi")))
+ (revision "1")
+ (svn-revision 261907))
+ (package (inherit xgcc)
+ (version (string-append "7-2018-q2-update-"
+ revision "." (number->string svn-revision)))
+ (source
+ (origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url
"svn://gcc.gnu.org/svn/gcc/branches/ARM/embedded-7-branch/")
+ (revision svn-revision)))
+ (file-name (string-append "gcc-arm-embedded-" version "-checkout"))
+ (sha256
+ (base32
+ "192ggs63bixf3irpijgfkjks73yx1r3a4i6grk1y0i0iny76pmx5"))
+ (patches
+ (append
+ (origin-patches (package-source gcc-7))
+ (search-patches "gcc-7-cross-environment-variables.patch")))))
+ (native-inputs
+ `(("gcc" ,gcc-5)
+ ("flex" ,flex)
+ ("isl" ,isl-0.18)
+ ,@(alist-delete "isl" (package-native-inputs xgcc))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments xgcc)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-after 'unpack 'expand-version-string
+ (lambda _
+ (make-file-writable "gcc/DEV-PHASE")
+ (with-output-to-file "gcc/DEV-PHASE"
+ (lambda ()
+ (display "7-2018-q2-update")))
+ #t))
+ (add-after 'unpack 'fix-genmultilib
+ (lambda _
+ (substitute* "gcc/genmultilib"
+ (("#!/bin/sh") (string-append "#!" (which "sh"))))
+ #t))))
+ ((#:configure-flags flags)
+ ;; The configure flags are largely identical to the flags used by the
+ ;; "GCC ARM embedded" project.
+ `(append (list "--enable-multilib"
+ "--with-newlib"
+ "--with-multilib-list=rmprofile"
+ "--with-host-libstdcxx=-static-libgcc
-Wl,-Bstatic,-lstdc++,-Bdynamic -lm"
+ "--enable-plugins"
+ "--disable-decimal-float"
+ "--disable-libffi"
+ "--disable-libgomp"
+ "--disable-libmudflap"
+ "--disable-libquadmath"
+ "--disable-libssp"
+ "--disable-libstdcxx-pch"
+ "--disable-nls"
+ "--disable-shared"
+ "--disable-threads"
+ "--disable-tls")
+ (delete "--disable-multilib" ,flags)))))
+ (native-search-paths
+ (list (search-path-specification
+ (variable "CROSS_C_INCLUDE_PATH")
+ (files '("arm-none-eabi/include")))
+ (search-path-specification
+ (variable "CROSS_CPLUS_INCLUDE_PATH")
+ (files '("arm-none-eabi/include")))
+ (search-path-specification
+ (variable "CROSS_LIBRARY_PATH")
+ (files '("arm-none-eabi/lib"))))))))
+
(define (make-libstdc++-arm-none-eabi xgcc newlib)
(let ((libstdc++ (make-libstdc++ xgcc)))
(package (inherit libstdc++)
diff --git a/gnu/packages/patches/gcc-7-cross-environment-variables.patch
b/gnu/packages/patches/gcc-7-cross-environment-variables.patch
new file mode 100644
index 0000000..99ae36f
--- /dev/null
+++ b/gnu/packages/patches/gcc-7-cross-environment-variables.patch
@@ -0,0 +1,67 @@
+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 eced0d5..08dec2b 100644
+--- a/gcc/gcc.c
++++ b/gcc/gcc.c
+@@ -4317,7 +4317,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 98fe5ec..96aff65 100644
+--- a/gcc/incpath.c
++++ b/gcc/incpath.c
+@@ -461,8 +461,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);
+
+@@ -473,7 +473,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", BRACKET);
++ add_env_var_paths ("CROSS_CPATH", BRACKET);
+ add_env_var_paths (lang_env_vars[idx], SYSTEM);
+
+ target_c_incpath.extra_pre_includes (sysroot, iprefix, stdinc);
+diff --git a/gcc/system.h b/gcc/system.h
+index 0cbf60a..3242c68 100644
+--- a/gcc/system.h
++++ b/gcc/system.h
+@@ -1169,4 +1169,6 @@ helper_const_non_const_cast (const char *p)
+ /* Get definitions of HOST_WIDE_INT. */
+ #include "hwint.h"
+
++#define LIBRARY_PATH_ENV "CROSS_LIBRARY_PATH"
++
+ #endif /* ! GCC_SYSTEM_H */
+diff --git a/gcc/tlink.c b/gcc/tlink.c
+index a2a7db0..2d96872 100644
+--- a/gcc/tlink.c
++++ b/gcc/tlink.c
+@@ -456,7 +456,7 @@ recompile_files (void)
+ file *f;
+
+ putenv (xstrdup ("COMPILER_PATH="));
+- putenv (xstrdup ("LIBRARY_PATH="));
++ putenv (xstrdup (LIBRARY_PATH_ENV "="));
+
+ while ((f = file_pop ()) != NULL)
+ {
- 112/285: gnu: libxdg-basedir: Don't use unstable tarball., (continued)
- 112/285: gnu: libxdg-basedir: Don't use unstable tarball., guix-commits, 2019/12/29
- 111/285: gnu: php: Update to 7.4.1., guix-commits, 2019/12/29
- 110/285: gnu: kakoune: Update to 2019.12.10., guix-commits, 2019/12/29
- 113/285: gnu: dunst: Don't use unstable tarball., guix-commits, 2019/12/29
- 114/285: gnu: vc-dwim: Update to 1.9., guix-commits, 2019/12/29
- 118/285: gnu: tidy-html: Don't use unstable tarball., guix-commits, 2019/12/29
- 116/285: gnu: di: Update to 4.47.3., guix-commits, 2019/12/29
- 119/285: gnu: java-jsoup: Don't use unstable tarball., guix-commits, 2019/12/29
- 122/285: gnu: bochs: Update to 2.6.10., guix-commits, 2019/12/29
- 138/285: Revert "gnu: gnome-shell-extension-dash-to-dock: Update to 67.", guix-commits, 2019/12/29
- 131/285: gnu: Add gcc-arm-none-eabi-7-2018-q2-update.,
guix-commits <=
- 142/285: gnu: xvid: Update to 1.3.6., guix-commits, 2019/12/29
- 145/285: gnu: gaupol: Update to 1.7., guix-commits, 2019/12/29
- 137/285: gnu: Add axoloti-patcher-next., guix-commits, 2019/12/29
- 146/285: gnu: xvid: Update source uri., guix-commits, 2019/12/29
- 148/285: gnu: msgpack: Update to 3.2.1., guix-commits, 2019/12/29
- 147/285: gnu: nginx: Update to 1.17.7., guix-commits, 2019/12/29
- 150/285: gnu: pan: Update to 0.146., guix-commits, 2019/12/29
- 149/285: gnu: dovecot: Update to 2.3.9.2 [fixes CVE-2019-19722]., guix-commits, 2019/12/29
- 152/285: gnu: lxtask: Update to 0.1.9., guix-commits, 2019/12/29
- 156/285: gnu: squashfs-tools: Update to 4.4., guix-commits, 2019/12/29