[PATCH] gnu: gccgo: Add version 10.

  • Done
  • quality assurance status badge
Details
2 participants
  • Sarah Morgensen
  • manolis837
Owner
unassigned
Submitted by
manolis837
Severity
normal
M
M
manolis837 wrote on 8 Feb 2021 13:00
(address . guix-patches@gnu.org)(name . Manolis Ragkousis)(address . manolis837@gmail.com)
20210208120019.2946404-1-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
M
M
Manolis Ragkousis wrote on 8 Feb 2021 13:07
(address . 46380@debbugs.gnu.org)
c91a767f-8af0-6427-4ca3-a7840b34deb5@gmail.com
Re-sending to correct address


-------- Forwarded Message --------
Subject: Re: [PATCH] gnu: gccgo: Add version 10.
Date: Mon, 8 Feb 2021 14:06:20 +0200
From: Manolis Ragkousis <manolis837@gmail.com>
To: manolis837@gmail.com

This patch is the start of adding a newer gccgo version, based on the
suggestion from Leo Le Bouter, of replace go-1.4 with a newer version of
gccgo which could work on powerpc 64.

Currently the bellow patch fails the build with:

starting phase `validate-runpath'
validating RUNPATH of 170 binaries in
"/gnu/store/h8z1d4qwrabdp7ax73nz7bm9yvxjciy9-gccgo-10.2.0/lib"...
validating RUNPATH of 13 binaries in
"/gnu/store/h8z1d4qwrabdp7ax73nz7bm9yvxjciy9-gccgo-10.2.0/libexec"...
/gnu/store/h8z1d4qwrabdp7ax73nz7bm9yvxjciy9-gccgo-10.2.0/libexec/gcc/x86_64-unknown-linux-gnu/10.2.0/buildid:
error: depends on 'libgo.so.16', which cannot be found in RUNPATH
("/gnu/store/m1lw20jnpmbvlcwn7wkg1z77sqsni0hr-glibc-2.32/lib")
/gnu/store/h8z1d4qwrabdp7ax73nz7bm9yvxjciy9-gccgo-10.2.0/libexec/gcc/x86_64-unknown-linux-gnu/10.2.0/cgo:
error: depends on 'libgo.so.16', which cannot be found in RUNPATH
("/gnu/store/m1lw20jnpmbvlcwn7wkg1z77sqsni0hr-glibc-2.32/lib")
/gnu/store/h8z1d4qwrabdp7ax73nz7bm9yvxjciy9-gccgo-10.2.0/libexec/gcc/x86_64-unknown-linux-gnu/10.2.0/test2json:
error: depends on 'libgo.so.16', which cannot be found in RUNPATH
("/gnu/store/m1lw20jnpmbvlcwn7wkg1z77sqsni0hr-glibc-2.32/lib")
/gnu/store/h8z1d4qwrabdp7ax73nz7bm9yvxjciy9-gccgo-10.2.0/libexec/gcc/x86_64-unknown-linux-gnu/10.2.0/vet:
error: depends on 'libgo.so.16', which cannot be found in RUNPATH
("/gnu/store/m1lw20jnpmbvlcwn7wkg1z77sqsni0hr-glibc-2.32/lib")
validating RUNPATH of 3 binaries in
"/gnu/store/h8z1d4qwrabdp7ax73nz7bm9yvxjciy9-gccgo-10.2.0/bin"...
/gnu/store/h8z1d4qwrabdp7ax73nz7bm9yvxjciy9-gccgo-10.2.0/bin/go: error:
depends on 'libgo.so.16', which cannot be found in RUNPATH
("/gnu/store/m1lw20jnpmbvlcwn7wkg1z77sqsni0hr-glibc-2.32/lib")
/gnu/store/h8z1d4qwrabdp7ax73nz7bm9yvxjciy9-gccgo-10.2.0/bin/gofmt:
error: depends on 'libgo.so.16', which cannot be found in RUNPATH
("/gnu/store/m1lw20jnpmbvlcwn7wkg1z77sqsni0hr-glibc-2.32/lib")
error: in phase 'validate-runpath': uncaught exception:
misc-error #f "RUNPATH validation failed" () #f
phase `validate-runpath' failed after 0.3 seconds
Backtrace:
9 (primitive-load "/gnu/store/axnbrhz8vjsj6gakdq6a2jargkj…")
In ice-9/eval.scm:
191:35 8 (_ _)
In guix/build/gnu-build-system.scm:
898:2 7 (gnu-build #:source _ #:outputs _ #:inputs _ #:phases . #)
In ice-9/boot-9.scm:
1736:10 6 (with-exception-handler _ _ #:unwind? _ # _)
In srfi/srfi-1.scm:
634:9 5 (for-each #<procedure 7fffefe9db40 at guix/build/gnu-b…> …)
In ice-9/boot-9.scm:
1736:10 4 (with-exception-handler _ _ #:unwind? _ # _)
In guix/build/gnu-build-system.scm:
919:23 3 (_)
562:10 2 (validate-runpath #:validate-runpath? _ # _ #:outputs _)
In ice-9/boot-9.scm:
1669:16 1 (raise-exception _ #:continuable? _)
1669:16 0 (raise-exception _ #:continuable? _)

ice-9/boot-9.scm:1669:16: In procedure raise-exception:
RUNPATH validation failed


On 2/8/21 2:00 PM, manolis837@gmail.com wrote:
Toggle quote (79 lines)
> 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
>
> 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 \
>
S
S
Sarah Morgensen wrote on 6 Aug 2021 01:14
Re: bug#46380: [PATCH] gnu: gccgo: Add version 10.
(name . bug#46380)(address . 46380-done@debbugs.gnu.org)
86v94j1o3r.fsf@mgsn.dev
Superseded by #49019; closing.
Closed
?