|
|
@ -139,220 +139,221 @@ where the OS part is overloaded to denote a specific ABI---into GCC |
|
|
|
(gcc-configure-flags-for-triplet triplet)) |
|
|
|
|
|
|
|
(maybe-target-tools)))))) |
|
|
|
(package |
|
|
|
(name "gcc") |
|
|
|
(version "4.7.4") |
|
|
|
(source (origin |
|
|
|
(method url-fetch) |
|
|
|
(uri (string-append "mirror://gnu/gcc/gcc-" |
|
|
|
version "/gcc-" version ".tar.bz2")) |
|
|
|
(sha256 |
|
|
|
(base32 |
|
|
|
"10k2k71kxgay283ylbbhhs51cl55zn2q38vj5pk4k950qdnirrlj")) |
|
|
|
(patches (search-patches "gcc-4-compile-with-gcc-5.patch" |
|
|
|
"gcc-fix-texi2pod.patch")))) |
|
|
|
(build-system gnu-build-system) |
|
|
|
|
|
|
|
;; Separate out the run-time support libraries because all the |
|
|
|
;; dynamic-linked objects depend on it. |
|
|
|
(outputs '("out" ;commands, etc. (60+ MiB) |
|
|
|
"lib" ;libgcc_s, libgomp, etc. (15+ MiB) |
|
|
|
"debug")) ;debug symbols of run-time libraries |
|
|
|
|
|
|
|
(inputs `(("gmp" ,gmp) |
|
|
|
("mpfr" ,mpfr) |
|
|
|
("mpc" ,mpc) |
|
|
|
("libelf" ,libelf) |
|
|
|
("zlib" ,zlib))) |
|
|
|
|
|
|
|
;; GCC < 5 is one of the few packages that doesn't ship .info files. |
|
|
|
;; Newer texinfos fail to build the manual, so we use an older one. |
|
|
|
(native-inputs `(("perl" ,perl) ;for manpages |
|
|
|
("texinfo" ,texinfo-5))) |
|
|
|
|
|
|
|
(arguments |
|
|
|
`(#:out-of-source? #t |
|
|
|
#:configure-flags ,(configure-flags) |
|
|
|
#:make-flags |
|
|
|
;; None of the flags below are needed when doing a Canadian cross. |
|
|
|
;; TODO: Simplify this. |
|
|
|
,(if (%current-target-system) |
|
|
|
(if stripped? |
|
|
|
''("CFLAGS=-g0 -O2") |
|
|
|
''()) |
|
|
|
`(let* ((libc (assoc-ref %build-inputs "libc")) |
|
|
|
(libc-native (or (assoc-ref %build-inputs "libc-native") |
|
|
|
libc))) |
|
|
|
`(,@(if libc |
|
|
|
(list (string-append "LDFLAGS_FOR_TARGET=" |
|
|
|
"-B" libc "/lib " |
|
|
|
"-Wl,-dynamic-linker " |
|
|
|
"-Wl," libc |
|
|
|
,(glibc-dynamic-linker))) |
|
|
|
'()) |
|
|
|
|
|
|
|
;; Native programs like 'genhooks' also need that right. |
|
|
|
,(string-append "LDFLAGS=" |
|
|
|
"-Wl,-rpath=" libc-native "/lib " |
|
|
|
"-Wl,-dynamic-linker " |
|
|
|
"-Wl," libc-native ,(glibc-dynamic-linker)) |
|
|
|
,(string-append "BOOT_CFLAGS=-O2 " |
|
|
|
,(if stripped? "-g0" "-g"))))) |
|
|
|
|
|
|
|
#:tests? #f |
|
|
|
|
|
|
|
#:phases |
|
|
|
(modify-phases %standard-phases |
|
|
|
(add-before 'configure 'pre-configure |
|
|
|
(lambda* (#:key inputs outputs #:allow-other-keys) |
|
|
|
(let ((libdir ,(libdir)) |
|
|
|
(libc (assoc-ref inputs "libc"))) |
|
|
|
(when libc |
|
|
|
;; The following is not performed for `--without-headers' |
|
|
|
;; cross-compiler builds. |
|
|
|
|
|
|
|
;; Join multi-line definitions of GLIBC_DYNAMIC_LINKER* into a |
|
|
|
;; single line, to allow the next step to work properly. |
|
|
|
(for-each |
|
|
|
(lambda (x) |
|
|
|
(substitute* (find-files "gcc/config" |
|
|
|
"^(linux|gnu|sysv4)(64|-elf|-eabi)?\\.h$") |
|
|
|
(("(#define (GLIBC|GNU_USER)_DYNAMIC_LINKER.*)\\\\\n$" _ line) |
|
|
|
line))) |
|
|
|
'(1 2 3)) |
|
|
|
|
|
|
|
;; Fix the dynamic linker's file name. |
|
|
|
(hidden-package |
|
|
|
(package |
|
|
|
(name "gcc") |
|
|
|
(version "4.7.4") |
|
|
|
(source (origin |
|
|
|
(method url-fetch) |
|
|
|
(uri (string-append "mirror://gnu/gcc/gcc-" |
|
|
|
version "/gcc-" version ".tar.bz2")) |
|
|
|
(sha256 |
|
|
|
(base32 |
|
|
|
"10k2k71kxgay283ylbbhhs51cl55zn2q38vj5pk4k950qdnirrlj")) |
|
|
|
(patches (search-patches "gcc-4-compile-with-gcc-5.patch" |
|
|
|
"gcc-fix-texi2pod.patch")))) |
|
|
|
(build-system gnu-build-system) |
|
|
|
|
|
|
|
;; Separate out the run-time support libraries because all the |
|
|
|
;; dynamic-linked objects depend on it. |
|
|
|
(outputs '("out" ;commands, etc. (60+ MiB) |
|
|
|
"lib" ;libgcc_s, libgomp, etc. (15+ MiB) |
|
|
|
"debug")) ;debug symbols of run-time libraries |
|
|
|
|
|
|
|
(inputs `(("gmp" ,gmp) |
|
|
|
("mpfr" ,mpfr) |
|
|
|
("mpc" ,mpc) |
|
|
|
("libelf" ,libelf) |
|
|
|
("zlib" ,zlib))) |
|
|
|
|
|
|
|
;; GCC < 5 is one of the few packages that doesn't ship .info files. |
|
|
|
;; Newer texinfos fail to build the manual, so we use an older one. |
|
|
|
(native-inputs `(("perl" ,perl) ;for manpages |
|
|
|
("texinfo" ,texinfo-5))) |
|
|
|
|
|
|
|
(arguments |
|
|
|
`(#:out-of-source? #t |
|
|
|
#:configure-flags ,(configure-flags) |
|
|
|
#:make-flags |
|
|
|
;; None of the flags below are needed when doing a Canadian cross. |
|
|
|
;; TODO: Simplify this. |
|
|
|
,(if (%current-target-system) |
|
|
|
(if stripped? |
|
|
|
''("CFLAGS=-g0 -O2") |
|
|
|
''()) |
|
|
|
`(let* ((libc (assoc-ref %build-inputs "libc")) |
|
|
|
(libc-native (or (assoc-ref %build-inputs "libc-native") |
|
|
|
libc))) |
|
|
|
`(,@(if libc |
|
|
|
(list (string-append "LDFLAGS_FOR_TARGET=" |
|
|
|
"-B" libc "/lib " |
|
|
|
"-Wl,-dynamic-linker " |
|
|
|
"-Wl," libc |
|
|
|
,(glibc-dynamic-linker))) |
|
|
|
'()) |
|
|
|
|
|
|
|
;; Native programs like 'genhooks' also need that right. |
|
|
|
,(string-append "LDFLAGS=" |
|
|
|
"-Wl,-rpath=" libc-native "/lib " |
|
|
|
"-Wl,-dynamic-linker " |
|
|
|
"-Wl," libc-native ,(glibc-dynamic-linker)) |
|
|
|
,(string-append "BOOT_CFLAGS=-O2 " |
|
|
|
,(if stripped? "-g0" "-g"))))) |
|
|
|
|
|
|
|
#:tests? #f |
|
|
|
|
|
|
|
#:phases |
|
|
|
(modify-phases %standard-phases |
|
|
|
(add-before 'configure 'pre-configure |
|
|
|
(lambda* (#:key inputs outputs #:allow-other-keys) |
|
|
|
(let ((libdir ,(libdir)) |
|
|
|
(libc (assoc-ref inputs "libc"))) |
|
|
|
(when libc |
|
|
|
;; The following is not performed for `--without-headers' |
|
|
|
;; cross-compiler builds. |
|
|
|
|
|
|
|
;; Join multi-line definitions of GLIBC_DYNAMIC_LINKER* into a |
|
|
|
;; single line, to allow the next step to work properly. |
|
|
|
(for-each |
|
|
|
(lambda (x) |
|
|
|
(substitute* (find-files "gcc/config" |
|
|
|
"^(linux|gnu|sysv4)(64|-elf|-eabi)?\\.h$") |
|
|
|
(("#define (GLIBC|GNU_USER)_DYNAMIC_LINKER([^ \t]*).*$" |
|
|
|
_ gnu-user suffix) |
|
|
|
(format #f "#define ~a_DYNAMIC_LINKER~a \"~a\"~%" |
|
|
|
gnu-user suffix |
|
|
|
(string-append libc ,(glibc-dynamic-linker))))) |
|
|
|
|
|
|
|
;; Tell where to find libstdc++, libc, and `?crt*.o', except |
|
|
|
;; `crt{begin,end}.o', which come with GCC. |
|
|
|
(substitute* (find-files "gcc/config" |
|
|
|
"^gnu-user.*\\.h$") |
|
|
|
(("#define GNU_USER_TARGET_LIB_SPEC (.*)$" _ suffix) |
|
|
|
;; Help libgcc_s.so be found (see also below.) Always use |
|
|
|
;; '-lgcc_s' so that libgcc_s.so is always found by those |
|
|
|
;; programs that use 'pthread_cancel' (glibc dlopens |
|
|
|
;; libgcc_s.so when pthread_cancel support is needed, but |
|
|
|
;; having it in the application's RUNPATH isn't enough; see |
|
|
|
;; <http://sourceware.org/ml/libc-help/2013-11/msg00023.html>.) |
|
|
|
;; |
|
|
|
;; NOTE: The '-lgcc_s' added below needs to be removed in a |
|
|
|
;; later phase of %gcc-static. If you change the string |
|
|
|
;; below, make sure to update the relevant code in |
|
|
|
;; %gcc-static package as needed. |
|
|
|
(format #f "#define GNU_USER_TARGET_LIB_SPEC \ |
|
|
|
(("(#define (GLIBC|GNU_USER)_DYNAMIC_LINKER.*)\\\\\n$" _ line) |
|
|
|
line))) |
|
|
|
'(1 2 3)) |
|
|
|
|
|
|
|
;; Fix the dynamic linker's file name. |
|
|
|
(substitute* (find-files "gcc/config" |
|
|
|
"^(linux|gnu|sysv4)(64|-elf|-eabi)?\\.h$") |
|
|
|
(("#define (GLIBC|GNU_USER)_DYNAMIC_LINKER([^ \t]*).*$" |
|
|
|
_ gnu-user suffix) |
|
|
|
(format #f "#define ~a_DYNAMIC_LINKER~a \"~a\"~%" |
|
|
|
gnu-user suffix |
|
|
|
(string-append libc ,(glibc-dynamic-linker))))) |
|
|
|
|
|
|
|
;; Tell where to find libstdc++, libc, and `?crt*.o', except |
|
|
|
;; `crt{begin,end}.o', which come with GCC. |
|
|
|
(substitute* (find-files "gcc/config" |
|
|
|
"^gnu-user.*\\.h$") |
|
|
|
(("#define GNU_USER_TARGET_LIB_SPEC (.*)$" _ suffix) |
|
|
|
;; Help libgcc_s.so be found (see also below.) Always use |
|
|
|
;; '-lgcc_s' so that libgcc_s.so is always found by those |
|
|
|
;; programs that use 'pthread_cancel' (glibc dlopens |
|
|
|
;; libgcc_s.so when pthread_cancel support is needed, but |
|
|
|
;; having it in the application's RUNPATH isn't enough; see |
|
|
|
;; <http://sourceware.org/ml/libc-help/2013-11/msg00023.html>.) |
|
|
|
;; |
|
|
|
;; NOTE: The '-lgcc_s' added below needs to be removed in a |
|
|
|
;; later phase of %gcc-static. If you change the string |
|
|
|
;; below, make sure to update the relevant code in |
|
|
|
;; %gcc-static package as needed. |
|
|
|
(format #f "#define GNU_USER_TARGET_LIB_SPEC \ |
|
|
|
\"-L~a/lib %{!static:-rpath=~a/lib %{!static-libgcc:-rpath=~a/lib -lgcc_s}} \" ~a" |
|
|
|
libc libc libdir suffix)) |
|
|
|
(("#define GNU_USER_TARGET_STARTFILE_SPEC.*$" line) |
|
|
|
(format #f "#define STANDARD_STARTFILE_PREFIX_1 \"~a/lib\" |
|
|
|
libc libc libdir suffix)) |
|
|
|
(("#define GNU_USER_TARGET_STARTFILE_SPEC.*$" line) |
|
|
|
(format #f "#define STANDARD_STARTFILE_PREFIX_1 \"~a/lib\" |
|
|
|
#define STANDARD_STARTFILE_PREFIX_2 \"\" |
|
|
|
~a" |
|
|
|
libc line))) |
|
|
|
|
|
|
|
;; The rs6000 (a.k.a. powerpc) config in GCC does not use |
|
|
|
;; GNU_USER_* defines. Do the above for this case. |
|
|
|
(substitute* |
|
|
|
"gcc/config/rs6000/sysv4.h" |
|
|
|
(("#define LIB_LINUX_SPEC (.*)$" _ suffix) |
|
|
|
(format #f "#define LIB_LINUX_SPEC \ |
|
|
|
libc line))) |
|
|
|
|
|
|
|
;; The rs6000 (a.k.a. powerpc) config in GCC does not use |
|
|
|
;; GNU_USER_* defines. Do the above for this case. |
|
|
|
(substitute* |
|
|
|
"gcc/config/rs6000/sysv4.h" |
|
|
|
(("#define LIB_LINUX_SPEC (.*)$" _ suffix) |
|
|
|
(format #f "#define LIB_LINUX_SPEC \ |
|
|
|
\"-L~a/lib %{!static:-rpath=~a/lib %{!static-libgcc:-rpath=~a/lib -lgcc_s}} \" ~a" |
|
|
|
libc libc libdir suffix)) |
|
|
|
(("#define STARTFILE_LINUX_SPEC.*$" line) |
|
|
|
(format #f "#define STANDARD_STARTFILE_PREFIX_1 \"~a/lib\" |
|
|
|
libc libc libdir suffix)) |
|
|
|
(("#define STARTFILE_LINUX_SPEC.*$" line) |
|
|
|
(format #f "#define STANDARD_STARTFILE_PREFIX_1 \"~a/lib\" |
|
|
|
#define STANDARD_STARTFILE_PREFIX_2 \"\" |
|
|
|
~a" |
|
|
|
libc line)))) |
|
|
|
|
|
|
|
;; Don't retain a dependency on the build-time sed. |
|
|
|
(substitute* "fixincludes/fixincl.x" |
|
|
|
(("static char const sed_cmd_z\\[\\] =.*;") |
|
|
|
"static char const sed_cmd_z[] = \"sed\";")) |
|
|
|
|
|
|
|
;; Aarch64 support didn't land in GCC until the 4.8 series. |
|
|
|
(when (file-exists? "gcc/config/aarch64") |
|
|
|
;; Force Aarch64 libdir to be /lib and not /lib64 |
|
|
|
(substitute* "gcc/config/aarch64/t-aarch64-linux" |
|
|
|
(("lib64") "lib"))) |
|
|
|
|
|
|
|
(when (file-exists? "libbacktrace") |
|
|
|
;; GCC 4.8+ comes with libbacktrace. By default it builds |
|
|
|
;; with -Werror, which fails with a -Wcast-qual error in glibc |
|
|
|
;; 2.21's stdlib-bsearch.h. Remove -Werror. |
|
|
|
(substitute* "libbacktrace/configure" |
|
|
|
(("WARN_FLAGS=(.*)-Werror" _ flags) |
|
|
|
(string-append "WARN_FLAGS=" flags))) |
|
|
|
|
|
|
|
(when (file-exists? "libsanitizer/libbacktrace") |
|
|
|
;; Same in libsanitizer's bundled copy (!) found in 4.9+. |
|
|
|
(substitute* "libsanitizer/libbacktrace/Makefile.in" |
|
|
|
(("-Werror") |
|
|
|
"")))) |
|
|
|
|
|
|
|
;; Add a RUNPATH to libstdc++.so so that it finds libgcc_s. |
|
|
|
;; See <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=32354> |
|
|
|
;; and <http://bugs.gnu.org/20358>. |
|
|
|
(substitute* "libstdc++-v3/src/Makefile.in" |
|
|
|
(("^OPT_LDFLAGS = ") |
|
|
|
"OPT_LDFLAGS = -Wl,-rpath=$(libdir) ")) |
|
|
|
|
|
|
|
;; Move libstdc++*-gdb.py to the "lib" output to avoid a |
|
|
|
;; circularity between "out" and "lib". (Note: |
|
|
|
;; --with-python-dir is useless because it imposes $(prefix) as |
|
|
|
;; the parent directory.) |
|
|
|
(substitute* "libstdc++-v3/python/Makefile.in" |
|
|
|
(("pythondir = .*$") |
|
|
|
(string-append "pythondir = " libdir "/share" |
|
|
|
"/gcc-$(gcc_version)/python\n"))) |
|
|
|
|
|
|
|
;; Avoid another circularity between the outputs: this #define |
|
|
|
;; ends up in auto-host.h in the "lib" output, referring to |
|
|
|
;; "out". (This variable is used to augment cpp's search path, |
|
|
|
;; but there's nothing useful to look for here.) |
|
|
|
(substitute* "gcc/config.in" |
|
|
|
(("PREFIX_INCLUDE_DIR") |
|
|
|
"PREFIX_INCLUDE_DIR_isnt_necessary_here")) |
|
|
|
#t))) |
|
|
|
|
|
|
|
(add-after 'configure 'post-configure |
|
|
|
(lambda _ |
|
|
|
;; Don't store configure flags, to avoid retaining references to |
|
|
|
;; build-time dependencies---e.g., `--with-ppl=/gnu/store/xxx'. |
|
|
|
(substitute* "Makefile" |
|
|
|
(("^TOPLEVEL_CONFIGURE_ARGUMENTS=(.*)$" _ rest) |
|
|
|
"TOPLEVEL_CONFIGURE_ARGUMENTS=\n")) |
|
|
|
#t))))) |
|
|
|
|
|
|
|
(native-search-paths |
|
|
|
;; Use the language-specific variables rather than 'CPATH' because they |
|
|
|
;; are equivalent to '-isystem' whereas 'CPATH' is equivalent to '-I'. |
|
|
|
;; The intent is to allow headers that are in the search path to be |
|
|
|
;; treated as "system headers" (headers exempt from warnings) just like |
|
|
|
;; the typical /usr/include headers on an FHS system. |
|
|
|
(list (search-path-specification |
|
|
|
(variable "C_INCLUDE_PATH") |
|
|
|
(files '("include"))) |
|
|
|
(search-path-specification |
|
|
|
(variable "CPLUS_INCLUDE_PATH") |
|
|
|
(files '("include"))) |
|
|
|
(search-path-specification |
|
|
|
(variable "LIBRARY_PATH") |
|
|
|
(files '("lib" "lib64"))))) |
|
|
|
|
|
|
|
(properties `((gcc-libc . ,(assoc-ref inputs "libc")))) |
|
|
|
(synopsis "GNU Compiler Collection") |
|
|
|
(description |
|
|
|
"GCC is the GNU Compiler Collection. It provides compiler front-ends |
|
|
|
libc line)))) |
|
|
|
|
|
|
|
;; Don't retain a dependency on the build-time sed. |
|
|
|
(substitute* "fixincludes/fixincl.x" |
|
|
|
(("static char const sed_cmd_z\\[\\] =.*;") |
|
|
|
"static char const sed_cmd_z[] = \"sed\";")) |
|
|
|
|
|
|
|
;; Aarch64 support didn't land in GCC until the 4.8 series. |
|
|
|
(when (file-exists? "gcc/config/aarch64") |
|
|
|
;; Force Aarch64 libdir to be /lib and not /lib64 |
|
|
|
(substitute* "gcc/config/aarch64/t-aarch64-linux" |
|
|
|
(("lib64") "lib"))) |
|
|
|
|
|
|
|
(when (file-exists? "libbacktrace") |
|
|
|
;; GCC 4.8+ comes with libbacktrace. By default it builds |
|
|
|
;; with -Werror, which fails with a -Wcast-qual error in glibc |
|
|
|
;; 2.21's stdlib-bsearch.h. Remove -Werror. |
|
|
|
(substitute* "libbacktrace/configure" |
|
|
|
(("WARN_FLAGS=(.*)-Werror" _ flags) |
|
|
|
(string-append "WARN_FLAGS=" flags))) |
|
|
|
|
|
|
|
(when (file-exists? "libsanitizer/libbacktrace") |
|
|
|
;; Same in libsanitizer's bundled copy (!) found in 4.9+. |
|
|
|
(substitute* "libsanitizer/libbacktrace/Makefile.in" |
|
|
|
(("-Werror") |
|
|
|
"")))) |
|
|
|
|
|
|
|
;; Add a RUNPATH to libstdc++.so so that it finds libgcc_s. |
|
|
|
;; See <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=32354> |
|
|
|
;; and <http://bugs.gnu.org/20358>. |
|
|
|
(substitute* "libstdc++-v3/src/Makefile.in" |
|
|
|
(("^OPT_LDFLAGS = ") |
|
|
|
"OPT_LDFLAGS = -Wl,-rpath=$(libdir) ")) |
|
|
|
|
|
|
|
;; Move libstdc++*-gdb.py to the "lib" output to avoid a |
|
|
|
;; circularity between "out" and "lib". (Note: |
|
|
|
;; --with-python-dir is useless because it imposes $(prefix) as |
|
|
|
;; the parent directory.) |
|
|
|
(substitute* "libstdc++-v3/python/Makefile.in" |
|
|
|
(("pythondir = .*$") |
|
|
|
(string-append "pythondir = " libdir "/share" |
|
|
|
"/gcc-$(gcc_version)/python\n"))) |
|
|
|
|
|
|
|
;; Avoid another circularity between the outputs: this #define |
|
|
|
;; ends up in auto-host.h in the "lib" output, referring to |
|
|
|
;; "out". (This variable is used to augment cpp's search path, |
|
|
|
;; but there's nothing useful to look for here.) |
|
|
|
(substitute* "gcc/config.in" |
|
|
|
(("PREFIX_INCLUDE_DIR") |
|
|
|
"PREFIX_INCLUDE_DIR_isnt_necessary_here")) |
|
|
|
#t))) |
|
|
|
|
|
|
|
(add-after 'configure 'post-configure |
|
|
|
(lambda _ |
|
|
|
;; Don't store configure flags, to avoid retaining references to |
|
|
|
;; build-time dependencies---e.g., `--with-ppl=/gnu/store/xxx'. |
|
|
|
(substitute* "Makefile" |
|
|
|
(("^TOPLEVEL_CONFIGURE_ARGUMENTS=(.*)$" _ rest) |
|
|
|
"TOPLEVEL_CONFIGURE_ARGUMENTS=\n")) |
|
|
|
#t))))) |
|
|
|
|
|
|
|
(native-search-paths |
|
|
|
;; Use the language-specific variables rather than 'CPATH' because they |
|
|
|
;; are equivalent to '-isystem' whereas 'CPATH' is equivalent to '-I'. |
|
|
|
;; The intent is to allow headers that are in the search path to be |
|
|
|
;; treated as "system headers" (headers exempt from warnings) just like |
|
|
|
;; the typical /usr/include headers on an FHS system. |
|
|
|
(list (search-path-specification |
|
|
|
(variable "C_INCLUDE_PATH") |
|
|
|
(files '("include"))) |
|
|
|
(search-path-specification |
|
|
|
(variable "CPLUS_INCLUDE_PATH") |
|
|
|
(files '("include"))) |
|
|
|
(search-path-specification |
|
|
|
(variable "LIBRARY_PATH") |
|
|
|
(files '("lib" "lib64"))))) |
|
|
|
|
|
|
|
(properties `((gcc-libc . ,(assoc-ref inputs "libc")))) |
|
|
|
(synopsis "GNU Compiler Collection") |
|
|
|
(description |
|
|
|
"GCC is the GNU Compiler Collection. It provides compiler front-ends |
|
|
|
for several languages, including C, C++, Objective-C, Fortran, Java, Ada, and |
|
|
|
Go. It also includes runtime support libraries for these languages.") |
|
|
|
(license gpl3+) |
|
|
|
(supported-systems (delete "aarch64-linux" %supported-systems)) |
|
|
|
(home-page "https://gcc.gnu.org/")))) |
|
|
|
(license gpl3+) |
|
|
|
(supported-systems (delete "aarch64-linux" %supported-systems)) |
|
|
|
(home-page "https://gcc.gnu.org/"))))) |
|
|
|
|
|
|
|
(define-public gcc-4.8 |
|
|
|
(package (inherit gcc-4.7) |
|
|
|