(address . guix-patches@gnu.org)(name . Manolis Ragkousis)(address . manolis837@gmail.com)
From: Manolis Ragkousis <manolis837@gmail.com>
* gnu/packages/patches/gcc-10-libgo-runpath.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add patch.
* gnu/packages/gcc.scm (gccgo-10): New package.
---
gnu/local.mk | 1 +
gnu/packages/gcc.scm | 21 +++++++++++++++++++
.../patches/gcc-10-libgo-runpath.patch | 16 ++++++++++++++
3 files changed, 38 insertions(+)
create mode 100644 gnu/packages/patches/gcc-10-libgo-runpath.patch
Toggle diff (68 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index f908f51074..302d3e2aa8 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1030,6 +1030,7 @@ dist_patch_DATA = \
%D%/packages/patches/gcc-6-fix-buffer-size.patch \
%D%/packages/patches/gcc-6-libsanitizer-mode-size.patch \
%D%/packages/patches/gcc-7-libsanitizer-mode-size.patch \
+ %D%/packages/patches/gcc-10-libgo-runpath.patch \
%D%/packages/patches/gcc-libvtv-runpath.patch \
%D%/packages/patches/gcc-strmov-store-file-names.patch \
%D%/packages/patches/gcc-4-compile-with-gcc-5.patch \
diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm
index 9b2a5556f6..d113cce2da 100644
--- a/gnu/packages/gcc.scm
+++ b/gnu/packages/gcc.scm
@@ -773,6 +773,27 @@ provides the GNU compiler for the Go programming language."))
;; a cyclic dependency. <http://debbugs.gnu.org/18101>
#:separate-lib-output? #f))
+(define-public gccgo-10
+ (custom-gcc (package
+ (inherit gcc-10)
+ (source
+ (origin
+ (inherit (package-source gcc-10))
+ (patches
+ (append
+ (origin-patches (package-source gcc-10))
+ (search-patches "gcc-10-libgo-runpath.patch")))))
+ (synopsis "Go frontend to GCC")
+ (description
+ "This package is part of the GNU Compiler Collection and
+provides the GNU compiler for the Go programming language."))
+ "gccgo" '("go")
+ %generic-search-paths
+ ;; Suppress the separate "lib" output, because otherwise the
+ ;; "lib" and "out" outputs would refer to each other, creating
+ ;; a cyclic dependency. <http://debbugs.gnu.org/18101>
+ #:separate-lib-output? #f))
+
(define %objc-search-paths
(list (search-path-specification
(variable "OBJC_INCLUDE_PATH")
diff --git a/gnu/packages/patches/gcc-10-libgo-runpath.patch b/gnu/packages/patches/gcc-10-libgo-runpath.patch
new file mode 100644
index 0000000000..bf89d7b6d4
--- /dev/null
+++ b/gnu/packages/patches/gcc-10-libgo-runpath.patch
@@ -0,0 +1,16 @@
+gccgo needs libgo but it doesn't have $libdir in its RUNPATH. This
+patch fixes that.
+
+diff --git a/libgo/Makefile.in b/libgo/Makefile.in
+index b835173585..64e45360aa 100644
+--- a/libgo/Makefile.in
++++ b/libgo/Makefile.in
+@@ -22,6 +22,8 @@
+
+ # Process this file with autoreconf to produce Makefile.in.
+
++libgo_llgo_la_LDFLAGS = -Wl,-rpath=$(libdir)
++
+ VPATH = @srcdir@
+ am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
--
2.30.0