[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
?
Your comment

This issue is archived.

To comment on this conversation send an email to 46380@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 46380
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch