aboutsummaryrefslogtreecommitdiffstats
path: root/main/gcc/0041-Use-generic-errstr.go-implementation-on-musl.patch
diff options
context:
space:
mode:
Diffstat (limited to 'main/gcc/0041-Use-generic-errstr.go-implementation-on-musl.patch')
-rw-r--r--main/gcc/0041-Use-generic-errstr.go-implementation-on-musl.patch48
1 files changed, 48 insertions, 0 deletions
diff --git a/main/gcc/0041-Use-generic-errstr.go-implementation-on-musl.patch b/main/gcc/0041-Use-generic-errstr.go-implementation-on-musl.patch
new file mode 100644
index 0000000000..1561a7c058
--- /dev/null
+++ b/main/gcc/0041-Use-generic-errstr.go-implementation-on-musl.patch
@@ -0,0 +1,48 @@
+From 3bc47945dab0108423dbaa211332817c4784b3db Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
+Date: Mon, 19 Apr 2021 07:21:41 +0200
+Subject: [PATCH] Use generic errstr.go implementation on musl
+
+glibc provides two version of strerror_r() depending on a feature test
+macro. The first is the XSI-compliant version which returns an int, the
+second is GNU-specific and returns a char pointer.
+
+Similarity, gcc's libgo provides two implementations of Errstr() both of
+which use strerror_r(). On Linux, it is assumed that the GNU-specific
+strerror_r version is used. However, musl only provides the
+XSI-compliant version of strerror_r. This patch enables the generic
+Errstr() implementation which also uses the XSI-compliant version of
+strerror_r.
+---
+ libgo/go/syscall/errstr.go | 1 -
+ libgo/go/syscall/errstr_glibc.go | 2 +-
+ 2 files changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/libgo/go/syscall/errstr.go b/libgo/go/syscall/errstr.go
+index 6c2441d364d..8f7c5538163 100644
+--- a/libgo/go/syscall/errstr.go
++++ b/libgo/go/syscall/errstr.go
+@@ -5,7 +5,6 @@
+ // license that can be found in the LICENSE file.
+
+ // +build !hurd
+-// +build !linux
+
+ package syscall
+
+diff --git a/libgo/go/syscall/errstr_glibc.go b/libgo/go/syscall/errstr_glibc.go
+index 5b19e6f202d..8dc60172186 100644
+--- a/libgo/go/syscall/errstr_glibc.go
++++ b/libgo/go/syscall/errstr_glibc.go
+@@ -7,7 +7,7 @@
+ // We use this rather than errstr.go because on GNU/Linux sterror_r
+ // returns a pointer to the error message, and may not use buf at all.
+
+-// +build hurd linux
++// +build hurd !linux
+
+ package syscall
+
+--
+2.31.0
+