diff options
author | Chris Marusich <cmmarusich@gmail.com> | 2021-02-06 16:29:40 -0800 |
---|---|---|
committer | Chris Marusich <cmmarusich@gmail.com> | 2021-03-10 23:01:59 -0800 |
commit | 458022fb6973c5377bc50a96c9d957aab6124328 (patch) | |
tree | 3318b7faf710fd6d8df9e790b1d37a5d2c6f14c0 | |
parent | c1c15ef3550f6d184f4d2de22f4bd49380e6f715 (diff) |
gnu: gcc-4.7: On powerpc64le, fix /lib64 references.
Fixes: <https://bugs.gnu.org/46253>.
* gnu/packages/gcc.scm (gcc-4.7)[#:phases][pre-configure]: When the
gcc/config/rs6000 directory exists, replace "/lib64" with "/lib" in all files
within it. Note that this fix will be picked up by any package that re-uses
the pre-configure phase from gcc-4.7 (e.g., all the usual gcc packages).
(make-libstdc++)[#:phases][fix-rs6000-libdir]: New phase, which does the same
as above. It was necessary to duplicate the fix here because make-libstdc++
does not re-use the pre-configure phase from gcc-4.7.
-rw-r--r-- | gnu/packages/gcc.scm | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 9b2a5556f6..1615be0b6e 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2020 Joseph LaFreniere <joseph@lafreniere.xyz> ;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury@disroot.org> ;;; Copyright © 2020 Simon Tournier <zimon.toutoune@gmail.com> +;;; Copyright © 2021 Chris Marusich <cmmarusich@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -273,6 +274,11 @@ where the OS part is overloaded to denote a specific ABI---into GCC ~a" libc line)))) + (when (file-exists? "gcc/config/rs6000") + ;; Force powerpc libdir to be /lib and not /lib64 + (substitute* (find-files "gcc/config/rs6000") + (("/lib64") "/lib"))) + ;; Don't retain a dependency on the build-time sed. (substitute* "fixincludes/fixincl.x" (("static char const sed_cmd_z\\[\\] =.*;") @@ -589,12 +595,19 @@ using compilers other than GCC." (name "libstdc++") (arguments `(#:out-of-source? #t - #:phases (alist-cons-before - 'configure 'chdir - (lambda _ - (chdir "libstdc++-v3") - #t) - %standard-phases) + #:phases + (modify-phases %standard-phases + ;; Force rs6000 (i.e., powerpc) libdir to be /lib and not /lib64. + (add-before 'configure 'fix-rs6000-libdir + (lambda _ + (when (file-exists? "gcc/config/rs6000") + (substitute* (find-files "gcc/config/rs6000") + (("/lib64") "/lib"))) + #t)) + (add-before 'configure 'chdir + (lambda _ + (chdir "libstdc++-v3") + #t))) #:configure-flags `("--disable-libstdcxx-pch" ,(string-append "--with-gxx-include-dir=" (assoc-ref %outputs "out") |