diff --git a/cross/gcc-aarch64/0031-gcc-go-Use-_off_t-type-instead-of-_loff_t.patch b/cross/gcc-aarch64/0031-gcc-go-Use-_off_t-type-instead-of-_loff_t.patch new file mode 100644 index 0000000000000000000000000000000000000000..6c1eb03b96fa6d657995222a7873f73f9fd11cb9 --- /dev/null +++ b/cross/gcc-aarch64/0031-gcc-go-Use-_off_t-type-instead-of-_loff_t.patch @@ -0,0 +1,45 @@ +From 756d3163d2ee3ee21ad815ab6dfebe58e8c32965 Mon Sep 17 00:00:00 2001 +From: "A. Wilcox" <AWilcox@Wilcox-Tech.com> +Date: Sun, 30 Aug 2020 17:58:08 +0200 +Subject: [PATCH] gcc-go: Use _off_t type instead of _loff_t +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Taken from Adélie Linux. +--- + libgo/go/syscall/libcall_linux.go | 16 ++++++++-------- + 1 file changed, 8 insertions(+), 8 deletions(-) + +diff --git a/libgo/go/syscall/libcall_linux.go b/libgo/go/syscall/libcall_linux.go +index 88286c07b6e..f8f5cfb5011 100644 +--- a/libgo/go/syscall/libcall_linux.go ++++ b/libgo/go/syscall/libcall_linux.go +@@ -206,19 +206,19 @@ func Gettid() (tid int) { + //sys Setxattr(path string, attr string, data []byte, flags int) (err error) + //setxattr(path *byte, name *byte, value *byte, size Size_t, flags _C_int) _C_int + +-//sys splice(rfd int, roff *_loff_t, wfd int, woff *_loff_t, len int, flags int) (n int64, err error) +-//splice(rfd _C_int, roff *_loff_t, wfd _C_int, woff *_loff_t, len Size_t, flags _C_uint) Ssize_t ++//sys splice(rfd int, roff *_off_t, wfd int, woff *_off_t, len int, flags int) (n int64, err error) ++//splice(rfd _C_int, roff *_off_t, wfd _C_int, woff *_off_t, len Size_t, flags _C_uint) Ssize_t + func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { +- var lroff _loff_t +- var plroff *_loff_t ++ var lroff _off_t ++ var plroff *_off_t + if roff != nil { +- lroff = _loff_t(*roff) ++ lroff = _off_t(*roff) + plroff = &lroff + } +- var lwoff _loff_t +- var plwoff *_loff_t ++ var lwoff _off_t ++ var plwoff *_off_t + if woff != nil { +- lwoff = _loff_t(*woff) ++ lwoff = _off_t(*woff) + plwoff = &lwoff + } + n, err = splice(rfd, plroff, wfd, plwoff, len, flags) diff --git a/cross/gcc-aarch64/0032-gcc-go-Don-t-include-sys-user.h.patch b/cross/gcc-aarch64/0032-gcc-go-Don-t-include-sys-user.h.patch new file mode 100644 index 0000000000000000000000000000000000000000..897dd6ec314d02b68ed79d7178c7432f105c668f --- /dev/null +++ b/cross/gcc-aarch64/0032-gcc-go-Don-t-include-sys-user.h.patch @@ -0,0 +1,27 @@ +From ba9db3417c93a42dbf994e7c18c021f5542aa354 Mon Sep 17 00:00:00 2001 +From: "A. Wilcox" <AWilcox@Wilcox-Tech.com> +Date: Sun, 30 Aug 2020 17:58:21 +0200 +Subject: [PATCH] gcc-go: Don't include sys/user.h +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Taken from Adélie Linux. +--- + libgo/sysinfo.c | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/libgo/sysinfo.c b/libgo/sysinfo.c +index 0692fd41eb7..c8d987358d9 100644 +--- a/libgo/sysinfo.c ++++ b/libgo/sysinfo.c +@@ -73,9 +73,6 @@ + #include <sys/times.h> + #include <sys/wait.h> + #include <sys/un.h> +-#if defined(HAVE_SYS_USER_H) +-#include <sys/user.h> +-#endif + #if defined(HAVE_SYS_UTSNAME_H) + #include <sys/utsname.h> + #endif diff --git a/cross/gcc-aarch64/0033-gcc-go-Fix-ucontext_t-on-PPC64.patch b/cross/gcc-aarch64/0033-gcc-go-Fix-ucontext_t-on-PPC64.patch new file mode 100644 index 0000000000000000000000000000000000000000..4584a3595dd8a990d22a62f46400ecf840823f1a --- /dev/null +++ b/cross/gcc-aarch64/0033-gcc-go-Fix-ucontext_t-on-PPC64.patch @@ -0,0 +1,26 @@ +From a2da9c892a6b29a8067f20fda2d8a5e9a7b5193e Mon Sep 17 00:00:00 2001 +From: "A. Wilcox" <AWilcox@Wilcox-Tech.com> +Date: Sun, 30 Aug 2020 17:59:22 +0200 +Subject: [PATCH] gcc-go: Fix ucontext_t on PPC64 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Taken from Adélie Linux. +--- + libgo/runtime/go-signal.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libgo/runtime/go-signal.c b/libgo/runtime/go-signal.c +index b429fdb2403..fd1c885f043 100644 +--- a/libgo/runtime/go-signal.c ++++ b/libgo/runtime/go-signal.c +@@ -224,7 +224,7 @@ getSiginfo(siginfo_t *info, void *context __attribute__((unused))) + #elif defined(__alpha__) && defined(__linux__) + ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.sc_pc; + #elif defined(__PPC__) && defined(__linux__) +- ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.regs->nip; ++ ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.gp_regs[32]; + #elif defined(__PPC__) && defined(_AIX) + ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.jmp_context.iar; + #elif defined(__aarch64__) && defined(__linux__) diff --git a/cross/gcc-aarch64/0034-gcc-go-Fix-handling-of-signal-34-on-musl.patch b/cross/gcc-aarch64/0034-gcc-go-Fix-handling-of-signal-34-on-musl.patch new file mode 100644 index 0000000000000000000000000000000000000000..528bbb3c211a29afbc86cd0e846d9551aa4b128c --- /dev/null +++ b/cross/gcc-aarch64/0034-gcc-go-Fix-handling-of-signal-34-on-musl.patch @@ -0,0 +1,40 @@ +From 1d0cd9bbbef7d1bd3f42ad493db8d08b539cba60 Mon Sep 17 00:00:00 2001 +From: "A. Wilcox" <AWilcox@Wilcox-Tech.com> +Date: Sun, 30 Aug 2020 17:59:45 +0200 +Subject: [PATCH] gcc-go: Fix handling of signal 34 on musl +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Taken from Adélie Linux. +--- + libgo/mksigtab.sh | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/libgo/mksigtab.sh b/libgo/mksigtab.sh +index 11e4ec436bd..fe866eacb27 100644 +--- a/libgo/mksigtab.sh ++++ b/libgo/mksigtab.sh +@@ -82,7 +82,7 @@ checksig _SIGPWR '{_SigNotify, "SIGPWR: power failure restart"}' + checksig _SIGEMT '{_SigThrow, "SIGEMT: emulate instruction executed"}' + checksig _SIGINFO '{_SigNotify, "SIGINFO: status request from keyboard"}' + checksig _SIGTHR '{_SigNotify, "SIGTHR: reserved"}' +-checksig _SIGPOLL '{_SigNotify, "SIGPOLL: pollable event occurred"}' ++#checksig _SIGPOLL '{_SigNotify, "SIGPOLL: pollable event occurred"}' + checksig _SIGWAITING '{_SigNotify, "SIGWAITING: reserved signal no longer used by"}' + checksig _SIGLWP '{_SigNotify, "SIGLWP: reserved signal no longer used by"}' + checksig _SIGFREEZE '{_SigNotify, "SIGFREEZE: special signal used by CPR"}' +@@ -95,10 +95,12 @@ checksig _SIGLOST ' {_SigNotify, "SIGLOST: resource lost (Sun); server died (G + + # Special handling of signals 32 and 33 on GNU/Linux systems, + # because they are special to glibc. ++# Signal 34 is additionally special to Linux systems with musl. + if test "${GOOS}" = "linux"; then +- SIGLIST=$SIGLIST"_32__33_" ++ SIGLIST=$SIGLIST"_32__33__34_" + echo ' 32: {_SigSetStack + _SigUnblock, "signal 32"}, /* SIGCANCEL; see issue 6997 */' + echo ' 33: {_SigSetStack + _SigUnblock, "signal 33"}, /* SIGSETXID; see issues 3871, 9400, 12498 */' ++ echo ' 34: {_SigSetStack + _SigUnblock, "signal 34"}, /* see issue 30062 */' + fi + + if test "${GOOS}" = "aix"; then diff --git a/cross/gcc-aarch64/0035-gcc-go-Use-int64-type-as-offset-argument-for-mmap.patch b/cross/gcc-aarch64/0035-gcc-go-Use-int64-type-as-offset-argument-for-mmap.patch new file mode 100644 index 0000000000000000000000000000000000000000..683242458bb316f7177f100d0144baae047c744f --- /dev/null +++ b/cross/gcc-aarch64/0035-gcc-go-Use-int64-type-as-offset-argument-for-mmap.patch @@ -0,0 +1,35 @@ +From 956c8cc94e7aa487eb142905c319487d94dc621d Mon Sep 17 00:00:00 2001 +From: "A. Wilcox" <AWilcox@Wilcox-Tech.com> +Date: Sun, 30 Aug 2020 18:01:03 +0200 +Subject: [PATCH] gcc-go: Use int64 type as offset argument for mmap +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Taken from Adélie Linux. +--- + libgo/go/runtime/mem_gccgo.go | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/libgo/go/runtime/mem_gccgo.go b/libgo/go/runtime/mem_gccgo.go +index ba38ebaa9ab..3c9e5ce9461 100644 +--- a/libgo/go/runtime/mem_gccgo.go ++++ b/libgo/go/runtime/mem_gccgo.go +@@ -15,7 +15,7 @@ import ( + //go:linkname sysFree + + //extern mmap +-func sysMmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off uintptr) unsafe.Pointer ++func sysMmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off int64) unsafe.Pointer + + //extern munmap + func munmap(addr unsafe.Pointer, length uintptr) int32 +@@ -37,7 +37,7 @@ func init() { + } + } + +-func mmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off uintptr) (unsafe.Pointer, int) { ++func mmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off int64) (unsafe.Pointer, int) { + p := sysMmap(addr, n, prot, flags, fd, off) + if uintptr(p) == _MAP_FAILED { + return nil, errno() diff --git a/cross/gcc-aarch64/0036-gcc-go-Fix-st_-a-m-c-tim-fields-in-generated-sysinfo.patch b/cross/gcc-aarch64/0036-gcc-go-Fix-st_-a-m-c-tim-fields-in-generated-sysinfo.patch new file mode 100644 index 0000000000000000000000000000000000000000..aa6849135415508a26495c7fe6cff71c848d3a92 --- /dev/null +++ b/cross/gcc-aarch64/0036-gcc-go-Fix-st_-a-m-c-tim-fields-in-generated-sysinfo.patch @@ -0,0 +1,34 @@ +From c3a80843b7502ec2bfb5f1e5b514658c5f9dd884 Mon Sep 17 00:00:00 2001 +From: "A. Wilcox" <AWilcox@Wilcox-Tech.com> +Date: Sun, 30 Aug 2020 18:02:28 +0200 +Subject: [PATCH] gcc-go: Fix st_{a,m,c}tim fields in generated sysinfo.go +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +There are more than one st_{a,m,c}tim fields in struct stat on time64 machines. + +Run the Go-isation on all of them. + +Taken from Adélie Linux. +--- + libgo/mksysinfo.sh | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/libgo/mksysinfo.sh b/libgo/mksysinfo.sh +index bd2ba32cba1..972e2c379bc 100755 +--- a/libgo/mksysinfo.sh ++++ b/libgo/mksysinfo.sh +@@ -510,9 +510,9 @@ fi | sed -e 's/type _stat64/type Stat_t/' \ + -e 's/st_size/Size/' \ + -e 's/st_blksize/Blksize/' \ + -e 's/st_blocks/Blocks/' \ +- -e 's/st_atim/Atim/' \ +- -e 's/st_mtim/Mtim/' \ +- -e 's/st_ctim/Ctim/' \ ++ -e 's/st_atim/Atim/g' \ ++ -e 's/st_mtim/Mtim/g' \ ++ -e 's/st_ctim/Ctim/g' \ + -e 's/\([^a-zA-Z0-9_]\)_timeval\([^a-zA-Z0-9_]\)/\1Timeval\2/g' \ + -e 's/\([^a-zA-Z0-9_]\)_timespec_t\([^a-zA-Z0-9_]\)/\1Timespec\2/g' \ + -e 's/\([^a-zA-Z0-9_]\)_st_timespec_t\([^a-zA-Z0-9_]\)/\1StTimespec\2/g' \ diff --git a/cross/gcc-aarch64/0037-gcc-go-signal-34-is-special-on-musl-libc.patch b/cross/gcc-aarch64/0037-gcc-go-signal-34-is-special-on-musl-libc.patch new file mode 100644 index 0000000000000000000000000000000000000000..89228cf8b52976582d8306ac31f59824796b6f25 --- /dev/null +++ b/cross/gcc-aarch64/0037-gcc-go-signal-34-is-special-on-musl-libc.patch @@ -0,0 +1,26 @@ +From 75e274b0819c9a77ca121113301d353f7aa91740 Mon Sep 17 00:00:00 2001 +From: "A. Wilcox" <AWilcox@Wilcox-Tech.com> +Date: Sun, 30 Aug 2020 18:03:03 +0200 +Subject: [PATCH] gcc-go: signal 34 is special on musl libc +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Taken from Adélie Linux. +--- + libgo/go/runtime/signal_gccgo.go | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libgo/go/runtime/signal_gccgo.go b/libgo/go/runtime/signal_gccgo.go +index c555712a03c..9e228580d37 100644 +--- a/libgo/go/runtime/signal_gccgo.go ++++ b/libgo/go/runtime/signal_gccgo.go +@@ -106,7 +106,7 @@ func getsig(i uint32) uintptr { + if sigaction(i, nil, &sa) < 0 { + // On GNU/Linux glibc rejects attempts to call + // sigaction with signal 32 (SIGCANCEL) or 33 (SIGSETXID). +- if GOOS == "linux" && (i == 32 || i == 33) { ++ if GOOS == "linux" && (i == 32 || i == 33 || i == 34) { + return _SIG_DFL + } + throw("sigaction read failure") diff --git a/cross/gcc-aarch64/0038-gcc-go-Prefer-_off_t-over-_off64_t.patch b/cross/gcc-aarch64/0038-gcc-go-Prefer-_off_t-over-_off64_t.patch new file mode 100644 index 0000000000000000000000000000000000000000..3c21fedaf1263483b673e0c3dd351f56a47d402a --- /dev/null +++ b/cross/gcc-aarch64/0038-gcc-go-Prefer-_off_t-over-_off64_t.patch @@ -0,0 +1,27 @@ +From ff096af4402ab87a61eb3979b47246a3a1b4fa38 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net> +Date: Sun, 30 Aug 2020 19:26:53 +0200 +Subject: [PATCH] gcc-go: Prefer _off_t over _off64_t + +musl does not seem to have _off64_t. +--- + libgo/mksysinfo.sh | 6 +----- + 1 file changed, 1 insertion(+), 5 deletions(-) + +diff --git a/libgo/mksysinfo.sh b/libgo/mksysinfo.sh +index 972e2c379bc..8d6da15f983 100755 +--- a/libgo/mksysinfo.sh ++++ b/libgo/mksysinfo.sh +@@ -379,11 +379,7 @@ fi + # Some basic types. + echo 'type Size_t _size_t' >> ${OUT} + echo "type Ssize_t _ssize_t" >> ${OUT} +-if grep '^const _HAVE_OFF64_T = ' gen-sysinfo.go > /dev/null 2>&1; then +- echo "type Offset_t _off64_t" >> ${OUT} +-else +- echo "type Offset_t _off_t" >> ${OUT} +-fi ++echo "type Offset_t _off_t" >> ${OUT} + echo "type Mode_t _mode_t" >> ${OUT} + echo "type Pid_t _pid_t" >> ${OUT} + echo "type Uid_t _uid_t" >> ${OUT} diff --git a/cross/gcc-aarch64/0039-gcc-go-undef-SETCONTEXT_CLOBBERS_TLS-in-proc.c.patch b/cross/gcc-aarch64/0039-gcc-go-undef-SETCONTEXT_CLOBBERS_TLS-in-proc.c.patch new file mode 100644 index 0000000000000000000000000000000000000000..30995e582bdf43899793cc5aace2e94e6815ee17 --- /dev/null +++ b/cross/gcc-aarch64/0039-gcc-go-undef-SETCONTEXT_CLOBBERS_TLS-in-proc.c.patch @@ -0,0 +1,24 @@ +From 56dc7cac03987e95915032161ff0f7d5a8b8bf36 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net> +Date: Sun, 30 Aug 2020 19:27:51 +0200 +Subject: [PATCH] gcc-go: undef SETCONTEXT_CLOBBERS_TLS in proc.c + +--- + libgo/runtime/proc.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/libgo/runtime/proc.c b/libgo/runtime/proc.c +index 274ce01c0bf..92a540bdde9 100644 +--- a/libgo/runtime/proc.c ++++ b/libgo/runtime/proc.c +@@ -66,6 +66,10 @@ static void gscanstack(G*); + + __thread G *g __asm__(GOSYM_PREFIX "runtime.g"); + ++/* libucontext does not seem to support tlsbase, undef the macro ++ * here to make sure we define initcontext and fixcontext as dummies. */ ++#undef SETCONTEXT_CLOBBERS_TLS ++ + #ifndef SETCONTEXT_CLOBBERS_TLS + + static inline void diff --git a/cross/gcc-aarch64/0040-gcc-go-link-to-libucontext.patch b/cross/gcc-aarch64/0040-gcc-go-link-to-libucontext.patch new file mode 100644 index 0000000000000000000000000000000000000000..de59e07f67a4fa8b54d24251adfd0fc87c26a6cc --- /dev/null +++ b/cross/gcc-aarch64/0040-gcc-go-link-to-libucontext.patch @@ -0,0 +1,22 @@ +From ead76eced040b588f9374646a188ba21abab2049 Mon Sep 17 00:00:00 2001 +From: "A. Wilcox" <AWilcox@Wilcox-Tech.com> +Date: Mon, 31 Aug 2020 08:59:40 +0200 +Subject: [PATCH] gcc-go: link to libucontext + +--- + Makefile.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile.in b/Makefile.in +index 63627db68cf..c7f1f84d683 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -48823,7 +48823,7 @@ configure-target-libgo: + esac; \ + module_srcdir=libgo; \ + rm -f no-such-file || : ; \ +- CONFIG_SITE=no-such-file $(SHELL) \ ++ CONFIG_SITE=no-such-file LIBS="-lucontext $$LIBS" $(SHELL) \ + $$s/$$module_srcdir/configure \ + --srcdir=$${topdir}/$$module_srcdir \ + $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \ diff --git a/cross/gcc-aarch64/0041-gcc-go-Disable-printing-of-unaccessible-ppc64-struct.patch b/cross/gcc-aarch64/0041-gcc-go-Disable-printing-of-unaccessible-ppc64-struct.patch new file mode 100644 index 0000000000000000000000000000000000000000..406a74d00618f1827d76a3310d8d9d7dd44d80b4 --- /dev/null +++ b/cross/gcc-aarch64/0041-gcc-go-Disable-printing-of-unaccessible-ppc64-struct.patch @@ -0,0 +1,23 @@ +From 3f5ee6a593215fbd40975d801ff37cf81a3fced3 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net> +Date: Mon, 31 Aug 2020 20:26:56 +0200 +Subject: [PATCH] gcc-go: Disable printing of unaccessible ppc64 struct members + +These struct members do not seem to exist on musl. +--- + libgo/runtime/go-signal.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libgo/runtime/go-signal.c b/libgo/runtime/go-signal.c +index fd1c885f043..e845e453332 100644 +--- a/libgo/runtime/go-signal.c ++++ b/libgo/runtime/go-signal.c +@@ -333,7 +333,7 @@ dumpregs(siginfo_t *info __attribute__((unused)), void *context __attribute__((u + runtime_printf("sp %X\n", m->sc_regs[30]); + runtime_printf("pc %X\n", m->sc_pc); + } +-#elif defined(__PPC__) && defined(__LITTLE_ENDIAN__) && defined(__linux__) ++#elif defined(__PPC__) && defined(__LITTLE_ENDIAN__) && defined(__GLIBC__) + { + mcontext_t *m = &((ucontext_t*)(context))->uc_mcontext; + int i; diff --git a/cross/gcc-aarch64/APKBUILD b/cross/gcc-aarch64/APKBUILD index b3c445af8d2ddffd19196e2e997b0d8481b68ea9..3df3ebcd065237a42347f20506ecaf98aa4e969b 100644 --- a/cross/gcc-aarch64/APKBUILD +++ b/cross/gcc-aarch64/APKBUILD @@ -30,7 +30,7 @@ pkgver=10.2.0 [ "$CHOST" != "$CTARGET" ] && _target="-$CTARGET_ARCH" || _target="" pkgname=gcc-aarch64 -pkgrel=2 +pkgrel=3 pkgdesc="Stage2 cross-compiler for aarch64" url="https://gcc.gnu.org" arch="x86_64" @@ -117,9 +117,6 @@ fi # See libphobos/configure.tgt in GCC sources for supported targets [ "$CARCH" = ppc64le ] && LANG_D=false -# Go needs {set,make,swap}context, unimplemented in musl -[ "$CTARGET_LIBC" = musl ] && LANG_GO=false - # libitm has TEXTRELs in ARM build, so disable for now case "$CTARGET_ARCH" in arm*) _libitm=false ;; @@ -203,6 +200,17 @@ source="https://gcc.gnu.org/pub/gcc/releases/gcc-${_pkgbase:-$pkgver}/gcc-${_pkg 0028-ada-musl-support-fixes.patch 0029-c-Fix-bogus-vector-initialisation-error-PR96377.patch 0030-rs6000-ICE-when-using-an-MMA-type-as-a-function-para.patch + 0031-gcc-go-Use-_off_t-type-instead-of-_loff_t.patch + 0032-gcc-go-Don-t-include-sys-user.h.patch + 0033-gcc-go-Fix-ucontext_t-on-PPC64.patch + 0034-gcc-go-Fix-handling-of-signal-34-on-musl.patch + 0035-gcc-go-Use-int64-type-as-offset-argument-for-mmap.patch + 0036-gcc-go-Fix-st_-a-m-c-tim-fields-in-generated-sysinfo.patch + 0037-gcc-go-signal-34-is-special-on-musl-libc.patch + 0038-gcc-go-Prefer-_off_t-over-_off64_t.patch + 0039-gcc-go-undef-SETCONTEXT_CLOBBERS_TLS-in-proc.c.patch + 0040-gcc-go-link-to-libucontext.patch + 0041-gcc-go-Disable-printing-of-unaccessible-ppc64-struct.patch " # gcc-4.8-build-args.patch @@ -662,4 +670,15 @@ ac3288b7840e5cf2500608773f40e604798b30fcb885c9fec7ba0bcc4bcfd374211faa26e82fcf46 59d9e0a5f39ad68b8bb1365f7c97a54ca4751cdad01ead8184fd897d8a13156145976a8b5b9856be154c053d6ba11eaad1e5662e7ddda9ba6d2811340df61cba 0027-ada-libgnarl-compatibility-for-musl.patch 8207323c530929517c799b24b1a7ba39c07bbb0e6770f878f1d66088ae16667e7706c9402ac04fe5eb6447a6ad12b548cc7e7612c5b217cd24e7d00094d2a28f 0028-ada-musl-support-fixes.patch b90f7ad074b6183a4afc6be65349b8bf94b78d1c259d5be9877c16e3de95222fb6905cba7eb6ee4fe1e564ed20bf183c6815bd087896b6b0376656a841736fc1 0029-c-Fix-bogus-vector-initialisation-error-PR96377.patch -39a66708fb7ab4a72e1973749e32c22484e8e6c0afde6a59a645f2536c71cea86c8de2f0448621d53888293121344e84a24617400fae849282df57e0f5ddc21d 0030-rs6000-ICE-when-using-an-MMA-type-as-a-function-para.patch" +39a66708fb7ab4a72e1973749e32c22484e8e6c0afde6a59a645f2536c71cea86c8de2f0448621d53888293121344e84a24617400fae849282df57e0f5ddc21d 0030-rs6000-ICE-when-using-an-MMA-type-as-a-function-para.patch +ae0d860324b8b907ff82fcebe4777afae19df85b091723ac55425d24f677fb4e1d14ff4f21cdcdf837dcf730a4c48174e0cc31d1d003a5d11a88c226d5ed3e4a 0031-gcc-go-Use-_off_t-type-instead-of-_loff_t.patch +a08ea6ce516dc96029153de096b96dcd3262509ee546f1f03152abe8f78c11c75b8dc14de39ccd982896114bf33d2edade2b4810dcc0b2d68e4abf52b67b8a41 0032-gcc-go-Don-t-include-sys-user.h.patch +3bbd3ab3d31fc81cbc6b641919a84807e52b59794f860cad83b9ff69bfd0f5f29aeefc5f19b203bc96db23bf6e5a6958690bd81caa3137eaa5111b5c465273b3 0033-gcc-go-Fix-ucontext_t-on-PPC64.patch +9c410c3a137a18559f1ae5ab5803d5bc8fc596a93da769b4ff2feec516602eb193333d18d55ce39e054b56726a5c243962e8ccdee001ae7e186b4222465b31a3 0034-gcc-go-Fix-handling-of-signal-34-on-musl.patch +78af84111854f5d2de127f03fc0984ea1f9c2c87156be2c454cc88a6791c90817aed63aba2861657560b1d3bc182a31e3d74f7a946e56d831939870240625fb7 0035-gcc-go-Use-int64-type-as-offset-argument-for-mmap.patch +c0d47b5bc478b3e0943806806d81a9183b9d176148e31c75d50cdbb23a34d9c178d751a3fac743d94ebb44c7eae70d3c55ca115acedcf4a1a0bacf46c0c5cd5f 0036-gcc-go-Fix-st_-a-m-c-tim-fields-in-generated-sysinfo.patch +e9b523a34b5e2930e0c58ee19e903e5416fe65641df80c40937d445d4c8f4f4bde59b3a94a392f5ca0d1c4a87565bd655c186b3a5194cb5bce4de2864d5d025d 0037-gcc-go-signal-34-is-special-on-musl-libc.patch +d75147c2b062b0321b36d843c55887673d8bdac6448da465c29853ac5df3b68153551913476f2ea0fdb6d09df3992e47d457e480b3c16d99e6668b4f941e6e16 0038-gcc-go-Prefer-_off_t-over-_off64_t.patch +a60d2101f49d921cb538fd46650ba550f30721650b40e15fe8a56da32e5f2a3ea62f10d93982ffb45bee2e284cc006141b5d7a96fa12215d63b183b0a67c4c55 0039-gcc-go-undef-SETCONTEXT_CLOBBERS_TLS-in-proc.c.patch +f08cfc9622e84a5a527b626dcca7199a430ab1c02588fef718bcb0155bc5af5a11888aa975e76e55cc2b9b70520a8bf1bcf939e5afe073f6263685686bc9c26f 0040-gcc-go-link-to-libucontext.patch +f27644461c8a3fd27026873639608e53a396e9b9d39c4f330c8eeba82bb9b1e68ae1bfb82c770424399a13762bb3ec147b2699b2cbbdca07628ab3896d806ce4 0041-gcc-go-Disable-printing-of-unaccessible-ppc64-struct.patch" diff --git a/cross/gcc-armhf/0031-gcc-go-Use-_off_t-type-instead-of-_loff_t.patch b/cross/gcc-armhf/0031-gcc-go-Use-_off_t-type-instead-of-_loff_t.patch new file mode 100644 index 0000000000000000000000000000000000000000..6c1eb03b96fa6d657995222a7873f73f9fd11cb9 --- /dev/null +++ b/cross/gcc-armhf/0031-gcc-go-Use-_off_t-type-instead-of-_loff_t.patch @@ -0,0 +1,45 @@ +From 756d3163d2ee3ee21ad815ab6dfebe58e8c32965 Mon Sep 17 00:00:00 2001 +From: "A. Wilcox" <AWilcox@Wilcox-Tech.com> +Date: Sun, 30 Aug 2020 17:58:08 +0200 +Subject: [PATCH] gcc-go: Use _off_t type instead of _loff_t +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Taken from Adélie Linux. +--- + libgo/go/syscall/libcall_linux.go | 16 ++++++++-------- + 1 file changed, 8 insertions(+), 8 deletions(-) + +diff --git a/libgo/go/syscall/libcall_linux.go b/libgo/go/syscall/libcall_linux.go +index 88286c07b6e..f8f5cfb5011 100644 +--- a/libgo/go/syscall/libcall_linux.go ++++ b/libgo/go/syscall/libcall_linux.go +@@ -206,19 +206,19 @@ func Gettid() (tid int) { + //sys Setxattr(path string, attr string, data []byte, flags int) (err error) + //setxattr(path *byte, name *byte, value *byte, size Size_t, flags _C_int) _C_int + +-//sys splice(rfd int, roff *_loff_t, wfd int, woff *_loff_t, len int, flags int) (n int64, err error) +-//splice(rfd _C_int, roff *_loff_t, wfd _C_int, woff *_loff_t, len Size_t, flags _C_uint) Ssize_t ++//sys splice(rfd int, roff *_off_t, wfd int, woff *_off_t, len int, flags int) (n int64, err error) ++//splice(rfd _C_int, roff *_off_t, wfd _C_int, woff *_off_t, len Size_t, flags _C_uint) Ssize_t + func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { +- var lroff _loff_t +- var plroff *_loff_t ++ var lroff _off_t ++ var plroff *_off_t + if roff != nil { +- lroff = _loff_t(*roff) ++ lroff = _off_t(*roff) + plroff = &lroff + } +- var lwoff _loff_t +- var plwoff *_loff_t ++ var lwoff _off_t ++ var plwoff *_off_t + if woff != nil { +- lwoff = _loff_t(*woff) ++ lwoff = _off_t(*woff) + plwoff = &lwoff + } + n, err = splice(rfd, plroff, wfd, plwoff, len, flags) diff --git a/cross/gcc-armhf/0032-gcc-go-Don-t-include-sys-user.h.patch b/cross/gcc-armhf/0032-gcc-go-Don-t-include-sys-user.h.patch new file mode 100644 index 0000000000000000000000000000000000000000..897dd6ec314d02b68ed79d7178c7432f105c668f --- /dev/null +++ b/cross/gcc-armhf/0032-gcc-go-Don-t-include-sys-user.h.patch @@ -0,0 +1,27 @@ +From ba9db3417c93a42dbf994e7c18c021f5542aa354 Mon Sep 17 00:00:00 2001 +From: "A. Wilcox" <AWilcox@Wilcox-Tech.com> +Date: Sun, 30 Aug 2020 17:58:21 +0200 +Subject: [PATCH] gcc-go: Don't include sys/user.h +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Taken from Adélie Linux. +--- + libgo/sysinfo.c | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/libgo/sysinfo.c b/libgo/sysinfo.c +index 0692fd41eb7..c8d987358d9 100644 +--- a/libgo/sysinfo.c ++++ b/libgo/sysinfo.c +@@ -73,9 +73,6 @@ + #include <sys/times.h> + #include <sys/wait.h> + #include <sys/un.h> +-#if defined(HAVE_SYS_USER_H) +-#include <sys/user.h> +-#endif + #if defined(HAVE_SYS_UTSNAME_H) + #include <sys/utsname.h> + #endif diff --git a/cross/gcc-armhf/0033-gcc-go-Fix-ucontext_t-on-PPC64.patch b/cross/gcc-armhf/0033-gcc-go-Fix-ucontext_t-on-PPC64.patch new file mode 100644 index 0000000000000000000000000000000000000000..4584a3595dd8a990d22a62f46400ecf840823f1a --- /dev/null +++ b/cross/gcc-armhf/0033-gcc-go-Fix-ucontext_t-on-PPC64.patch @@ -0,0 +1,26 @@ +From a2da9c892a6b29a8067f20fda2d8a5e9a7b5193e Mon Sep 17 00:00:00 2001 +From: "A. Wilcox" <AWilcox@Wilcox-Tech.com> +Date: Sun, 30 Aug 2020 17:59:22 +0200 +Subject: [PATCH] gcc-go: Fix ucontext_t on PPC64 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Taken from Adélie Linux. +--- + libgo/runtime/go-signal.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libgo/runtime/go-signal.c b/libgo/runtime/go-signal.c +index b429fdb2403..fd1c885f043 100644 +--- a/libgo/runtime/go-signal.c ++++ b/libgo/runtime/go-signal.c +@@ -224,7 +224,7 @@ getSiginfo(siginfo_t *info, void *context __attribute__((unused))) + #elif defined(__alpha__) && defined(__linux__) + ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.sc_pc; + #elif defined(__PPC__) && defined(__linux__) +- ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.regs->nip; ++ ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.gp_regs[32]; + #elif defined(__PPC__) && defined(_AIX) + ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.jmp_context.iar; + #elif defined(__aarch64__) && defined(__linux__) diff --git a/cross/gcc-armhf/0034-gcc-go-Fix-handling-of-signal-34-on-musl.patch b/cross/gcc-armhf/0034-gcc-go-Fix-handling-of-signal-34-on-musl.patch new file mode 100644 index 0000000000000000000000000000000000000000..528bbb3c211a29afbc86cd0e846d9551aa4b128c --- /dev/null +++ b/cross/gcc-armhf/0034-gcc-go-Fix-handling-of-signal-34-on-musl.patch @@ -0,0 +1,40 @@ +From 1d0cd9bbbef7d1bd3f42ad493db8d08b539cba60 Mon Sep 17 00:00:00 2001 +From: "A. Wilcox" <AWilcox@Wilcox-Tech.com> +Date: Sun, 30 Aug 2020 17:59:45 +0200 +Subject: [PATCH] gcc-go: Fix handling of signal 34 on musl +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Taken from Adélie Linux. +--- + libgo/mksigtab.sh | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/libgo/mksigtab.sh b/libgo/mksigtab.sh +index 11e4ec436bd..fe866eacb27 100644 +--- a/libgo/mksigtab.sh ++++ b/libgo/mksigtab.sh +@@ -82,7 +82,7 @@ checksig _SIGPWR '{_SigNotify, "SIGPWR: power failure restart"}' + checksig _SIGEMT '{_SigThrow, "SIGEMT: emulate instruction executed"}' + checksig _SIGINFO '{_SigNotify, "SIGINFO: status request from keyboard"}' + checksig _SIGTHR '{_SigNotify, "SIGTHR: reserved"}' +-checksig _SIGPOLL '{_SigNotify, "SIGPOLL: pollable event occurred"}' ++#checksig _SIGPOLL '{_SigNotify, "SIGPOLL: pollable event occurred"}' + checksig _SIGWAITING '{_SigNotify, "SIGWAITING: reserved signal no longer used by"}' + checksig _SIGLWP '{_SigNotify, "SIGLWP: reserved signal no longer used by"}' + checksig _SIGFREEZE '{_SigNotify, "SIGFREEZE: special signal used by CPR"}' +@@ -95,10 +95,12 @@ checksig _SIGLOST ' {_SigNotify, "SIGLOST: resource lost (Sun); server died (G + + # Special handling of signals 32 and 33 on GNU/Linux systems, + # because they are special to glibc. ++# Signal 34 is additionally special to Linux systems with musl. + if test "${GOOS}" = "linux"; then +- SIGLIST=$SIGLIST"_32__33_" ++ SIGLIST=$SIGLIST"_32__33__34_" + echo ' 32: {_SigSetStack + _SigUnblock, "signal 32"}, /* SIGCANCEL; see issue 6997 */' + echo ' 33: {_SigSetStack + _SigUnblock, "signal 33"}, /* SIGSETXID; see issues 3871, 9400, 12498 */' ++ echo ' 34: {_SigSetStack + _SigUnblock, "signal 34"}, /* see issue 30062 */' + fi + + if test "${GOOS}" = "aix"; then diff --git a/cross/gcc-armhf/0035-gcc-go-Use-int64-type-as-offset-argument-for-mmap.patch b/cross/gcc-armhf/0035-gcc-go-Use-int64-type-as-offset-argument-for-mmap.patch new file mode 100644 index 0000000000000000000000000000000000000000..683242458bb316f7177f100d0144baae047c744f --- /dev/null +++ b/cross/gcc-armhf/0035-gcc-go-Use-int64-type-as-offset-argument-for-mmap.patch @@ -0,0 +1,35 @@ +From 956c8cc94e7aa487eb142905c319487d94dc621d Mon Sep 17 00:00:00 2001 +From: "A. Wilcox" <AWilcox@Wilcox-Tech.com> +Date: Sun, 30 Aug 2020 18:01:03 +0200 +Subject: [PATCH] gcc-go: Use int64 type as offset argument for mmap +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Taken from Adélie Linux. +--- + libgo/go/runtime/mem_gccgo.go | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/libgo/go/runtime/mem_gccgo.go b/libgo/go/runtime/mem_gccgo.go +index ba38ebaa9ab..3c9e5ce9461 100644 +--- a/libgo/go/runtime/mem_gccgo.go ++++ b/libgo/go/runtime/mem_gccgo.go +@@ -15,7 +15,7 @@ import ( + //go:linkname sysFree + + //extern mmap +-func sysMmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off uintptr) unsafe.Pointer ++func sysMmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off int64) unsafe.Pointer + + //extern munmap + func munmap(addr unsafe.Pointer, length uintptr) int32 +@@ -37,7 +37,7 @@ func init() { + } + } + +-func mmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off uintptr) (unsafe.Pointer, int) { ++func mmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off int64) (unsafe.Pointer, int) { + p := sysMmap(addr, n, prot, flags, fd, off) + if uintptr(p) == _MAP_FAILED { + return nil, errno() diff --git a/cross/gcc-armhf/0036-gcc-go-Fix-st_-a-m-c-tim-fields-in-generated-sysinfo.patch b/cross/gcc-armhf/0036-gcc-go-Fix-st_-a-m-c-tim-fields-in-generated-sysinfo.patch new file mode 100644 index 0000000000000000000000000000000000000000..aa6849135415508a26495c7fe6cff71c848d3a92 --- /dev/null +++ b/cross/gcc-armhf/0036-gcc-go-Fix-st_-a-m-c-tim-fields-in-generated-sysinfo.patch @@ -0,0 +1,34 @@ +From c3a80843b7502ec2bfb5f1e5b514658c5f9dd884 Mon Sep 17 00:00:00 2001 +From: "A. Wilcox" <AWilcox@Wilcox-Tech.com> +Date: Sun, 30 Aug 2020 18:02:28 +0200 +Subject: [PATCH] gcc-go: Fix st_{a,m,c}tim fields in generated sysinfo.go +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +There are more than one st_{a,m,c}tim fields in struct stat on time64 machines. + +Run the Go-isation on all of them. + +Taken from Adélie Linux. +--- + libgo/mksysinfo.sh | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/libgo/mksysinfo.sh b/libgo/mksysinfo.sh +index bd2ba32cba1..972e2c379bc 100755 +--- a/libgo/mksysinfo.sh ++++ b/libgo/mksysinfo.sh +@@ -510,9 +510,9 @@ fi | sed -e 's/type _stat64/type Stat_t/' \ + -e 's/st_size/Size/' \ + -e 's/st_blksize/Blksize/' \ + -e 's/st_blocks/Blocks/' \ +- -e 's/st_atim/Atim/' \ +- -e 's/st_mtim/Mtim/' \ +- -e 's/st_ctim/Ctim/' \ ++ -e 's/st_atim/Atim/g' \ ++ -e 's/st_mtim/Mtim/g' \ ++ -e 's/st_ctim/Ctim/g' \ + -e 's/\([^a-zA-Z0-9_]\)_timeval\([^a-zA-Z0-9_]\)/\1Timeval\2/g' \ + -e 's/\([^a-zA-Z0-9_]\)_timespec_t\([^a-zA-Z0-9_]\)/\1Timespec\2/g' \ + -e 's/\([^a-zA-Z0-9_]\)_st_timespec_t\([^a-zA-Z0-9_]\)/\1StTimespec\2/g' \ diff --git a/cross/gcc-armhf/0037-gcc-go-signal-34-is-special-on-musl-libc.patch b/cross/gcc-armhf/0037-gcc-go-signal-34-is-special-on-musl-libc.patch new file mode 100644 index 0000000000000000000000000000000000000000..89228cf8b52976582d8306ac31f59824796b6f25 --- /dev/null +++ b/cross/gcc-armhf/0037-gcc-go-signal-34-is-special-on-musl-libc.patch @@ -0,0 +1,26 @@ +From 75e274b0819c9a77ca121113301d353f7aa91740 Mon Sep 17 00:00:00 2001 +From: "A. Wilcox" <AWilcox@Wilcox-Tech.com> +Date: Sun, 30 Aug 2020 18:03:03 +0200 +Subject: [PATCH] gcc-go: signal 34 is special on musl libc +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Taken from Adélie Linux. +--- + libgo/go/runtime/signal_gccgo.go | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libgo/go/runtime/signal_gccgo.go b/libgo/go/runtime/signal_gccgo.go +index c555712a03c..9e228580d37 100644 +--- a/libgo/go/runtime/signal_gccgo.go ++++ b/libgo/go/runtime/signal_gccgo.go +@@ -106,7 +106,7 @@ func getsig(i uint32) uintptr { + if sigaction(i, nil, &sa) < 0 { + // On GNU/Linux glibc rejects attempts to call + // sigaction with signal 32 (SIGCANCEL) or 33 (SIGSETXID). +- if GOOS == "linux" && (i == 32 || i == 33) { ++ if GOOS == "linux" && (i == 32 || i == 33 || i == 34) { + return _SIG_DFL + } + throw("sigaction read failure") diff --git a/cross/gcc-armhf/0038-gcc-go-Prefer-_off_t-over-_off64_t.patch b/cross/gcc-armhf/0038-gcc-go-Prefer-_off_t-over-_off64_t.patch new file mode 100644 index 0000000000000000000000000000000000000000..3c21fedaf1263483b673e0c3dd351f56a47d402a --- /dev/null +++ b/cross/gcc-armhf/0038-gcc-go-Prefer-_off_t-over-_off64_t.patch @@ -0,0 +1,27 @@ +From ff096af4402ab87a61eb3979b47246a3a1b4fa38 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net> +Date: Sun, 30 Aug 2020 19:26:53 +0200 +Subject: [PATCH] gcc-go: Prefer _off_t over _off64_t + +musl does not seem to have _off64_t. +--- + libgo/mksysinfo.sh | 6 +----- + 1 file changed, 1 insertion(+), 5 deletions(-) + +diff --git a/libgo/mksysinfo.sh b/libgo/mksysinfo.sh +index 972e2c379bc..8d6da15f983 100755 +--- a/libgo/mksysinfo.sh ++++ b/libgo/mksysinfo.sh +@@ -379,11 +379,7 @@ fi + # Some basic types. + echo 'type Size_t _size_t' >> ${OUT} + echo "type Ssize_t _ssize_t" >> ${OUT} +-if grep '^const _HAVE_OFF64_T = ' gen-sysinfo.go > /dev/null 2>&1; then +- echo "type Offset_t _off64_t" >> ${OUT} +-else +- echo "type Offset_t _off_t" >> ${OUT} +-fi ++echo "type Offset_t _off_t" >> ${OUT} + echo "type Mode_t _mode_t" >> ${OUT} + echo "type Pid_t _pid_t" >> ${OUT} + echo "type Uid_t _uid_t" >> ${OUT} diff --git a/cross/gcc-armhf/0039-gcc-go-undef-SETCONTEXT_CLOBBERS_TLS-in-proc.c.patch b/cross/gcc-armhf/0039-gcc-go-undef-SETCONTEXT_CLOBBERS_TLS-in-proc.c.patch new file mode 100644 index 0000000000000000000000000000000000000000..30995e582bdf43899793cc5aace2e94e6815ee17 --- /dev/null +++ b/cross/gcc-armhf/0039-gcc-go-undef-SETCONTEXT_CLOBBERS_TLS-in-proc.c.patch @@ -0,0 +1,24 @@ +From 56dc7cac03987e95915032161ff0f7d5a8b8bf36 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net> +Date: Sun, 30 Aug 2020 19:27:51 +0200 +Subject: [PATCH] gcc-go: undef SETCONTEXT_CLOBBERS_TLS in proc.c + +--- + libgo/runtime/proc.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/libgo/runtime/proc.c b/libgo/runtime/proc.c +index 274ce01c0bf..92a540bdde9 100644 +--- a/libgo/runtime/proc.c ++++ b/libgo/runtime/proc.c +@@ -66,6 +66,10 @@ static void gscanstack(G*); + + __thread G *g __asm__(GOSYM_PREFIX "runtime.g"); + ++/* libucontext does not seem to support tlsbase, undef the macro ++ * here to make sure we define initcontext and fixcontext as dummies. */ ++#undef SETCONTEXT_CLOBBERS_TLS ++ + #ifndef SETCONTEXT_CLOBBERS_TLS + + static inline void diff --git a/cross/gcc-armhf/0040-gcc-go-link-to-libucontext.patch b/cross/gcc-armhf/0040-gcc-go-link-to-libucontext.patch new file mode 100644 index 0000000000000000000000000000000000000000..de59e07f67a4fa8b54d24251adfd0fc87c26a6cc --- /dev/null +++ b/cross/gcc-armhf/0040-gcc-go-link-to-libucontext.patch @@ -0,0 +1,22 @@ +From ead76eced040b588f9374646a188ba21abab2049 Mon Sep 17 00:00:00 2001 +From: "A. Wilcox" <AWilcox@Wilcox-Tech.com> +Date: Mon, 31 Aug 2020 08:59:40 +0200 +Subject: [PATCH] gcc-go: link to libucontext + +--- + Makefile.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile.in b/Makefile.in +index 63627db68cf..c7f1f84d683 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -48823,7 +48823,7 @@ configure-target-libgo: + esac; \ + module_srcdir=libgo; \ + rm -f no-such-file || : ; \ +- CONFIG_SITE=no-such-file $(SHELL) \ ++ CONFIG_SITE=no-such-file LIBS="-lucontext $$LIBS" $(SHELL) \ + $$s/$$module_srcdir/configure \ + --srcdir=$${topdir}/$$module_srcdir \ + $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \ diff --git a/cross/gcc-armhf/0041-gcc-go-Disable-printing-of-unaccessible-ppc64-struct.patch b/cross/gcc-armhf/0041-gcc-go-Disable-printing-of-unaccessible-ppc64-struct.patch new file mode 100644 index 0000000000000000000000000000000000000000..406a74d00618f1827d76a3310d8d9d7dd44d80b4 --- /dev/null +++ b/cross/gcc-armhf/0041-gcc-go-Disable-printing-of-unaccessible-ppc64-struct.patch @@ -0,0 +1,23 @@ +From 3f5ee6a593215fbd40975d801ff37cf81a3fced3 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net> +Date: Mon, 31 Aug 2020 20:26:56 +0200 +Subject: [PATCH] gcc-go: Disable printing of unaccessible ppc64 struct members + +These struct members do not seem to exist on musl. +--- + libgo/runtime/go-signal.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libgo/runtime/go-signal.c b/libgo/runtime/go-signal.c +index fd1c885f043..e845e453332 100644 +--- a/libgo/runtime/go-signal.c ++++ b/libgo/runtime/go-signal.c +@@ -333,7 +333,7 @@ dumpregs(siginfo_t *info __attribute__((unused)), void *context __attribute__((u + runtime_printf("sp %X\n", m->sc_regs[30]); + runtime_printf("pc %X\n", m->sc_pc); + } +-#elif defined(__PPC__) && defined(__LITTLE_ENDIAN__) && defined(__linux__) ++#elif defined(__PPC__) && defined(__LITTLE_ENDIAN__) && defined(__GLIBC__) + { + mcontext_t *m = &((ucontext_t*)(context))->uc_mcontext; + int i; diff --git a/cross/gcc-armhf/APKBUILD b/cross/gcc-armhf/APKBUILD index 240c2bdd69920573dc443b98e151fcd324e608a7..affa2042fb87316b533b78a307b81e8a654353d4 100644 --- a/cross/gcc-armhf/APKBUILD +++ b/cross/gcc-armhf/APKBUILD @@ -30,7 +30,7 @@ pkgver=10.2.0 [ "$CHOST" != "$CTARGET" ] && _target="-$CTARGET_ARCH" || _target="" pkgname=gcc-armhf -pkgrel=2 +pkgrel=3 pkgdesc="Stage2 cross-compiler for armhf" url="https://gcc.gnu.org" arch="x86_64" @@ -117,9 +117,6 @@ fi # See libphobos/configure.tgt in GCC sources for supported targets [ "$CARCH" = ppc64le ] && LANG_D=false -# Go needs {set,make,swap}context, unimplemented in musl -[ "$CTARGET_LIBC" = musl ] && LANG_GO=false - # libitm has TEXTRELs in ARM build, so disable for now case "$CTARGET_ARCH" in arm*) _libitm=false ;; @@ -203,6 +200,17 @@ source="https://gcc.gnu.org/pub/gcc/releases/gcc-${_pkgbase:-$pkgver}/gcc-${_pkg 0028-ada-musl-support-fixes.patch 0029-c-Fix-bogus-vector-initialisation-error-PR96377.patch 0030-rs6000-ICE-when-using-an-MMA-type-as-a-function-para.patch + 0031-gcc-go-Use-_off_t-type-instead-of-_loff_t.patch + 0032-gcc-go-Don-t-include-sys-user.h.patch + 0033-gcc-go-Fix-ucontext_t-on-PPC64.patch + 0034-gcc-go-Fix-handling-of-signal-34-on-musl.patch + 0035-gcc-go-Use-int64-type-as-offset-argument-for-mmap.patch + 0036-gcc-go-Fix-st_-a-m-c-tim-fields-in-generated-sysinfo.patch + 0037-gcc-go-signal-34-is-special-on-musl-libc.patch + 0038-gcc-go-Prefer-_off_t-over-_off64_t.patch + 0039-gcc-go-undef-SETCONTEXT_CLOBBERS_TLS-in-proc.c.patch + 0040-gcc-go-link-to-libucontext.patch + 0041-gcc-go-Disable-printing-of-unaccessible-ppc64-struct.patch " # gcc-4.8-build-args.patch @@ -662,4 +670,15 @@ ac3288b7840e5cf2500608773f40e604798b30fcb885c9fec7ba0bcc4bcfd374211faa26e82fcf46 59d9e0a5f39ad68b8bb1365f7c97a54ca4751cdad01ead8184fd897d8a13156145976a8b5b9856be154c053d6ba11eaad1e5662e7ddda9ba6d2811340df61cba 0027-ada-libgnarl-compatibility-for-musl.patch 8207323c530929517c799b24b1a7ba39c07bbb0e6770f878f1d66088ae16667e7706c9402ac04fe5eb6447a6ad12b548cc7e7612c5b217cd24e7d00094d2a28f 0028-ada-musl-support-fixes.patch b90f7ad074b6183a4afc6be65349b8bf94b78d1c259d5be9877c16e3de95222fb6905cba7eb6ee4fe1e564ed20bf183c6815bd087896b6b0376656a841736fc1 0029-c-Fix-bogus-vector-initialisation-error-PR96377.patch -39a66708fb7ab4a72e1973749e32c22484e8e6c0afde6a59a645f2536c71cea86c8de2f0448621d53888293121344e84a24617400fae849282df57e0f5ddc21d 0030-rs6000-ICE-when-using-an-MMA-type-as-a-function-para.patch" +39a66708fb7ab4a72e1973749e32c22484e8e6c0afde6a59a645f2536c71cea86c8de2f0448621d53888293121344e84a24617400fae849282df57e0f5ddc21d 0030-rs6000-ICE-when-using-an-MMA-type-as-a-function-para.patch +ae0d860324b8b907ff82fcebe4777afae19df85b091723ac55425d24f677fb4e1d14ff4f21cdcdf837dcf730a4c48174e0cc31d1d003a5d11a88c226d5ed3e4a 0031-gcc-go-Use-_off_t-type-instead-of-_loff_t.patch +a08ea6ce516dc96029153de096b96dcd3262509ee546f1f03152abe8f78c11c75b8dc14de39ccd982896114bf33d2edade2b4810dcc0b2d68e4abf52b67b8a41 0032-gcc-go-Don-t-include-sys-user.h.patch +3bbd3ab3d31fc81cbc6b641919a84807e52b59794f860cad83b9ff69bfd0f5f29aeefc5f19b203bc96db23bf6e5a6958690bd81caa3137eaa5111b5c465273b3 0033-gcc-go-Fix-ucontext_t-on-PPC64.patch +9c410c3a137a18559f1ae5ab5803d5bc8fc596a93da769b4ff2feec516602eb193333d18d55ce39e054b56726a5c243962e8ccdee001ae7e186b4222465b31a3 0034-gcc-go-Fix-handling-of-signal-34-on-musl.patch +78af84111854f5d2de127f03fc0984ea1f9c2c87156be2c454cc88a6791c90817aed63aba2861657560b1d3bc182a31e3d74f7a946e56d831939870240625fb7 0035-gcc-go-Use-int64-type-as-offset-argument-for-mmap.patch +c0d47b5bc478b3e0943806806d81a9183b9d176148e31c75d50cdbb23a34d9c178d751a3fac743d94ebb44c7eae70d3c55ca115acedcf4a1a0bacf46c0c5cd5f 0036-gcc-go-Fix-st_-a-m-c-tim-fields-in-generated-sysinfo.patch +e9b523a34b5e2930e0c58ee19e903e5416fe65641df80c40937d445d4c8f4f4bde59b3a94a392f5ca0d1c4a87565bd655c186b3a5194cb5bce4de2864d5d025d 0037-gcc-go-signal-34-is-special-on-musl-libc.patch +d75147c2b062b0321b36d843c55887673d8bdac6448da465c29853ac5df3b68153551913476f2ea0fdb6d09df3992e47d457e480b3c16d99e6668b4f941e6e16 0038-gcc-go-Prefer-_off_t-over-_off64_t.patch +a60d2101f49d921cb538fd46650ba550f30721650b40e15fe8a56da32e5f2a3ea62f10d93982ffb45bee2e284cc006141b5d7a96fa12215d63b183b0a67c4c55 0039-gcc-go-undef-SETCONTEXT_CLOBBERS_TLS-in-proc.c.patch +f08cfc9622e84a5a527b626dcca7199a430ab1c02588fef718bcb0155bc5af5a11888aa975e76e55cc2b9b70520a8bf1bcf939e5afe073f6263685686bc9c26f 0040-gcc-go-link-to-libucontext.patch +f27644461c8a3fd27026873639608e53a396e9b9d39c4f330c8eeba82bb9b1e68ae1bfb82c770424399a13762bb3ec147b2699b2cbbdca07628ab3896d806ce4 0041-gcc-go-Disable-printing-of-unaccessible-ppc64-struct.patch" diff --git a/cross/gcc-armv7/0031-gcc-go-Use-_off_t-type-instead-of-_loff_t.patch b/cross/gcc-armv7/0031-gcc-go-Use-_off_t-type-instead-of-_loff_t.patch new file mode 100644 index 0000000000000000000000000000000000000000..6c1eb03b96fa6d657995222a7873f73f9fd11cb9 --- /dev/null +++ b/cross/gcc-armv7/0031-gcc-go-Use-_off_t-type-instead-of-_loff_t.patch @@ -0,0 +1,45 @@ +From 756d3163d2ee3ee21ad815ab6dfebe58e8c32965 Mon Sep 17 00:00:00 2001 +From: "A. Wilcox" <AWilcox@Wilcox-Tech.com> +Date: Sun, 30 Aug 2020 17:58:08 +0200 +Subject: [PATCH] gcc-go: Use _off_t type instead of _loff_t +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Taken from Adélie Linux. +--- + libgo/go/syscall/libcall_linux.go | 16 ++++++++-------- + 1 file changed, 8 insertions(+), 8 deletions(-) + +diff --git a/libgo/go/syscall/libcall_linux.go b/libgo/go/syscall/libcall_linux.go +index 88286c07b6e..f8f5cfb5011 100644 +--- a/libgo/go/syscall/libcall_linux.go ++++ b/libgo/go/syscall/libcall_linux.go +@@ -206,19 +206,19 @@ func Gettid() (tid int) { + //sys Setxattr(path string, attr string, data []byte, flags int) (err error) + //setxattr(path *byte, name *byte, value *byte, size Size_t, flags _C_int) _C_int + +-//sys splice(rfd int, roff *_loff_t, wfd int, woff *_loff_t, len int, flags int) (n int64, err error) +-//splice(rfd _C_int, roff *_loff_t, wfd _C_int, woff *_loff_t, len Size_t, flags _C_uint) Ssize_t ++//sys splice(rfd int, roff *_off_t, wfd int, woff *_off_t, len int, flags int) (n int64, err error) ++//splice(rfd _C_int, roff *_off_t, wfd _C_int, woff *_off_t, len Size_t, flags _C_uint) Ssize_t + func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { +- var lroff _loff_t +- var plroff *_loff_t ++ var lroff _off_t ++ var plroff *_off_t + if roff != nil { +- lroff = _loff_t(*roff) ++ lroff = _off_t(*roff) + plroff = &lroff + } +- var lwoff _loff_t +- var plwoff *_loff_t ++ var lwoff _off_t ++ var plwoff *_off_t + if woff != nil { +- lwoff = _loff_t(*woff) ++ lwoff = _off_t(*woff) + plwoff = &lwoff + } + n, err = splice(rfd, plroff, wfd, plwoff, len, flags) diff --git a/cross/gcc-armv7/0032-gcc-go-Don-t-include-sys-user.h.patch b/cross/gcc-armv7/0032-gcc-go-Don-t-include-sys-user.h.patch new file mode 100644 index 0000000000000000000000000000000000000000..897dd6ec314d02b68ed79d7178c7432f105c668f --- /dev/null +++ b/cross/gcc-armv7/0032-gcc-go-Don-t-include-sys-user.h.patch @@ -0,0 +1,27 @@ +From ba9db3417c93a42dbf994e7c18c021f5542aa354 Mon Sep 17 00:00:00 2001 +From: "A. Wilcox" <AWilcox@Wilcox-Tech.com> +Date: Sun, 30 Aug 2020 17:58:21 +0200 +Subject: [PATCH] gcc-go: Don't include sys/user.h +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Taken from Adélie Linux. +--- + libgo/sysinfo.c | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/libgo/sysinfo.c b/libgo/sysinfo.c +index 0692fd41eb7..c8d987358d9 100644 +--- a/libgo/sysinfo.c ++++ b/libgo/sysinfo.c +@@ -73,9 +73,6 @@ + #include <sys/times.h> + #include <sys/wait.h> + #include <sys/un.h> +-#if defined(HAVE_SYS_USER_H) +-#include <sys/user.h> +-#endif + #if defined(HAVE_SYS_UTSNAME_H) + #include <sys/utsname.h> + #endif diff --git a/cross/gcc-armv7/0033-gcc-go-Fix-ucontext_t-on-PPC64.patch b/cross/gcc-armv7/0033-gcc-go-Fix-ucontext_t-on-PPC64.patch new file mode 100644 index 0000000000000000000000000000000000000000..4584a3595dd8a990d22a62f46400ecf840823f1a --- /dev/null +++ b/cross/gcc-armv7/0033-gcc-go-Fix-ucontext_t-on-PPC64.patch @@ -0,0 +1,26 @@ +From a2da9c892a6b29a8067f20fda2d8a5e9a7b5193e Mon Sep 17 00:00:00 2001 +From: "A. Wilcox" <AWilcox@Wilcox-Tech.com> +Date: Sun, 30 Aug 2020 17:59:22 +0200 +Subject: [PATCH] gcc-go: Fix ucontext_t on PPC64 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Taken from Adélie Linux. +--- + libgo/runtime/go-signal.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libgo/runtime/go-signal.c b/libgo/runtime/go-signal.c +index b429fdb2403..fd1c885f043 100644 +--- a/libgo/runtime/go-signal.c ++++ b/libgo/runtime/go-signal.c +@@ -224,7 +224,7 @@ getSiginfo(siginfo_t *info, void *context __attribute__((unused))) + #elif defined(__alpha__) && defined(__linux__) + ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.sc_pc; + #elif defined(__PPC__) && defined(__linux__) +- ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.regs->nip; ++ ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.gp_regs[32]; + #elif defined(__PPC__) && defined(_AIX) + ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.jmp_context.iar; + #elif defined(__aarch64__) && defined(__linux__) diff --git a/cross/gcc-armv7/0034-gcc-go-Fix-handling-of-signal-34-on-musl.patch b/cross/gcc-armv7/0034-gcc-go-Fix-handling-of-signal-34-on-musl.patch new file mode 100644 index 0000000000000000000000000000000000000000..528bbb3c211a29afbc86cd0e846d9551aa4b128c --- /dev/null +++ b/cross/gcc-armv7/0034-gcc-go-Fix-handling-of-signal-34-on-musl.patch @@ -0,0 +1,40 @@ +From 1d0cd9bbbef7d1bd3f42ad493db8d08b539cba60 Mon Sep 17 00:00:00 2001 +From: "A. Wilcox" <AWilcox@Wilcox-Tech.com> +Date: Sun, 30 Aug 2020 17:59:45 +0200 +Subject: [PATCH] gcc-go: Fix handling of signal 34 on musl +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Taken from Adélie Linux. +--- + libgo/mksigtab.sh | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/libgo/mksigtab.sh b/libgo/mksigtab.sh +index 11e4ec436bd..fe866eacb27 100644 +--- a/libgo/mksigtab.sh ++++ b/libgo/mksigtab.sh +@@ -82,7 +82,7 @@ checksig _SIGPWR '{_SigNotify, "SIGPWR: power failure restart"}' + checksig _SIGEMT '{_SigThrow, "SIGEMT: emulate instruction executed"}' + checksig _SIGINFO '{_SigNotify, "SIGINFO: status request from keyboard"}' + checksig _SIGTHR '{_SigNotify, "SIGTHR: reserved"}' +-checksig _SIGPOLL '{_SigNotify, "SIGPOLL: pollable event occurred"}' ++#checksig _SIGPOLL '{_SigNotify, "SIGPOLL: pollable event occurred"}' + checksig _SIGWAITING '{_SigNotify, "SIGWAITING: reserved signal no longer used by"}' + checksig _SIGLWP '{_SigNotify, "SIGLWP: reserved signal no longer used by"}' + checksig _SIGFREEZE '{_SigNotify, "SIGFREEZE: special signal used by CPR"}' +@@ -95,10 +95,12 @@ checksig _SIGLOST ' {_SigNotify, "SIGLOST: resource lost (Sun); server died (G + + # Special handling of signals 32 and 33 on GNU/Linux systems, + # because they are special to glibc. ++# Signal 34 is additionally special to Linux systems with musl. + if test "${GOOS}" = "linux"; then +- SIGLIST=$SIGLIST"_32__33_" ++ SIGLIST=$SIGLIST"_32__33__34_" + echo ' 32: {_SigSetStack + _SigUnblock, "signal 32"}, /* SIGCANCEL; see issue 6997 */' + echo ' 33: {_SigSetStack + _SigUnblock, "signal 33"}, /* SIGSETXID; see issues 3871, 9400, 12498 */' ++ echo ' 34: {_SigSetStack + _SigUnblock, "signal 34"}, /* see issue 30062 */' + fi + + if test "${GOOS}" = "aix"; then diff --git a/cross/gcc-armv7/0035-gcc-go-Use-int64-type-as-offset-argument-for-mmap.patch b/cross/gcc-armv7/0035-gcc-go-Use-int64-type-as-offset-argument-for-mmap.patch new file mode 100644 index 0000000000000000000000000000000000000000..683242458bb316f7177f100d0144baae047c744f --- /dev/null +++ b/cross/gcc-armv7/0035-gcc-go-Use-int64-type-as-offset-argument-for-mmap.patch @@ -0,0 +1,35 @@ +From 956c8cc94e7aa487eb142905c319487d94dc621d Mon Sep 17 00:00:00 2001 +From: "A. Wilcox" <AWilcox@Wilcox-Tech.com> +Date: Sun, 30 Aug 2020 18:01:03 +0200 +Subject: [PATCH] gcc-go: Use int64 type as offset argument for mmap +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Taken from Adélie Linux. +--- + libgo/go/runtime/mem_gccgo.go | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/libgo/go/runtime/mem_gccgo.go b/libgo/go/runtime/mem_gccgo.go +index ba38ebaa9ab..3c9e5ce9461 100644 +--- a/libgo/go/runtime/mem_gccgo.go ++++ b/libgo/go/runtime/mem_gccgo.go +@@ -15,7 +15,7 @@ import ( + //go:linkname sysFree + + //extern mmap +-func sysMmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off uintptr) unsafe.Pointer ++func sysMmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off int64) unsafe.Pointer + + //extern munmap + func munmap(addr unsafe.Pointer, length uintptr) int32 +@@ -37,7 +37,7 @@ func init() { + } + } + +-func mmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off uintptr) (unsafe.Pointer, int) { ++func mmap(addr unsafe.Pointer, n uintptr, prot, flags, fd int32, off int64) (unsafe.Pointer, int) { + p := sysMmap(addr, n, prot, flags, fd, off) + if uintptr(p) == _MAP_FAILED { + return nil, errno() diff --git a/cross/gcc-armv7/0036-gcc-go-Fix-st_-a-m-c-tim-fields-in-generated-sysinfo.patch b/cross/gcc-armv7/0036-gcc-go-Fix-st_-a-m-c-tim-fields-in-generated-sysinfo.patch new file mode 100644 index 0000000000000000000000000000000000000000..aa6849135415508a26495c7fe6cff71c848d3a92 --- /dev/null +++ b/cross/gcc-armv7/0036-gcc-go-Fix-st_-a-m-c-tim-fields-in-generated-sysinfo.patch @@ -0,0 +1,34 @@ +From c3a80843b7502ec2bfb5f1e5b514658c5f9dd884 Mon Sep 17 00:00:00 2001 +From: "A. Wilcox" <AWilcox@Wilcox-Tech.com> +Date: Sun, 30 Aug 2020 18:02:28 +0200 +Subject: [PATCH] gcc-go: Fix st_{a,m,c}tim fields in generated sysinfo.go +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +There are more than one st_{a,m,c}tim fields in struct stat on time64 machines. + +Run the Go-isation on all of them. + +Taken from Adélie Linux. +--- + libgo/mksysinfo.sh | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/libgo/mksysinfo.sh b/libgo/mksysinfo.sh +index bd2ba32cba1..972e2c379bc 100755 +--- a/libgo/mksysinfo.sh ++++ b/libgo/mksysinfo.sh +@@ -510,9 +510,9 @@ fi | sed -e 's/type _stat64/type Stat_t/' \ + -e 's/st_size/Size/' \ + -e 's/st_blksize/Blksize/' \ + -e 's/st_blocks/Blocks/' \ +- -e 's/st_atim/Atim/' \ +- -e 's/st_mtim/Mtim/' \ +- -e 's/st_ctim/Ctim/' \ ++ -e 's/st_atim/Atim/g' \ ++ -e 's/st_mtim/Mtim/g' \ ++ -e 's/st_ctim/Ctim/g' \ + -e 's/\([^a-zA-Z0-9_]\)_timeval\([^a-zA-Z0-9_]\)/\1Timeval\2/g' \ + -e 's/\([^a-zA-Z0-9_]\)_timespec_t\([^a-zA-Z0-9_]\)/\1Timespec\2/g' \ + -e 's/\([^a-zA-Z0-9_]\)_st_timespec_t\([^a-zA-Z0-9_]\)/\1StTimespec\2/g' \ diff --git a/cross/gcc-armv7/0037-gcc-go-signal-34-is-special-on-musl-libc.patch b/cross/gcc-armv7/0037-gcc-go-signal-34-is-special-on-musl-libc.patch new file mode 100644 index 0000000000000000000000000000000000000000..89228cf8b52976582d8306ac31f59824796b6f25 --- /dev/null +++ b/cross/gcc-armv7/0037-gcc-go-signal-34-is-special-on-musl-libc.patch @@ -0,0 +1,26 @@ +From 75e274b0819c9a77ca121113301d353f7aa91740 Mon Sep 17 00:00:00 2001 +From: "A. Wilcox" <AWilcox@Wilcox-Tech.com> +Date: Sun, 30 Aug 2020 18:03:03 +0200 +Subject: [PATCH] gcc-go: signal 34 is special on musl libc +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Taken from Adélie Linux. +--- + libgo/go/runtime/signal_gccgo.go | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libgo/go/runtime/signal_gccgo.go b/libgo/go/runtime/signal_gccgo.go +index c555712a03c..9e228580d37 100644 +--- a/libgo/go/runtime/signal_gccgo.go ++++ b/libgo/go/runtime/signal_gccgo.go +@@ -106,7 +106,7 @@ func getsig(i uint32) uintptr { + if sigaction(i, nil, &sa) < 0 { + // On GNU/Linux glibc rejects attempts to call + // sigaction with signal 32 (SIGCANCEL) or 33 (SIGSETXID). +- if GOOS == "linux" && (i == 32 || i == 33) { ++ if GOOS == "linux" && (i == 32 || i == 33 || i == 34) { + return _SIG_DFL + } + throw("sigaction read failure") diff --git a/cross/gcc-armv7/0038-gcc-go-Prefer-_off_t-over-_off64_t.patch b/cross/gcc-armv7/0038-gcc-go-Prefer-_off_t-over-_off64_t.patch new file mode 100644 index 0000000000000000000000000000000000000000..3c21fedaf1263483b673e0c3dd351f56a47d402a --- /dev/null +++ b/cross/gcc-armv7/0038-gcc-go-Prefer-_off_t-over-_off64_t.patch @@ -0,0 +1,27 @@ +From ff096af4402ab87a61eb3979b47246a3a1b4fa38 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net> +Date: Sun, 30 Aug 2020 19:26:53 +0200 +Subject: [PATCH] gcc-go: Prefer _off_t over _off64_t + +musl does not seem to have _off64_t. +--- + libgo/mksysinfo.sh | 6 +----- + 1 file changed, 1 insertion(+), 5 deletions(-) + +diff --git a/libgo/mksysinfo.sh b/libgo/mksysinfo.sh +index 972e2c379bc..8d6da15f983 100755 +--- a/libgo/mksysinfo.sh ++++ b/libgo/mksysinfo.sh +@@ -379,11 +379,7 @@ fi + # Some basic types. + echo 'type Size_t _size_t' >> ${OUT} + echo "type Ssize_t _ssize_t" >> ${OUT} +-if grep '^const _HAVE_OFF64_T = ' gen-sysinfo.go > /dev/null 2>&1; then +- echo "type Offset_t _off64_t" >> ${OUT} +-else +- echo "type Offset_t _off_t" >> ${OUT} +-fi ++echo "type Offset_t _off_t" >> ${OUT} + echo "type Mode_t _mode_t" >> ${OUT} + echo "type Pid_t _pid_t" >> ${OUT} + echo "type Uid_t _uid_t" >> ${OUT} diff --git a/cross/gcc-armv7/0039-gcc-go-undef-SETCONTEXT_CLOBBERS_TLS-in-proc.c.patch b/cross/gcc-armv7/0039-gcc-go-undef-SETCONTEXT_CLOBBERS_TLS-in-proc.c.patch new file mode 100644 index 0000000000000000000000000000000000000000..30995e582bdf43899793cc5aace2e94e6815ee17 --- /dev/null +++ b/cross/gcc-armv7/0039-gcc-go-undef-SETCONTEXT_CLOBBERS_TLS-in-proc.c.patch @@ -0,0 +1,24 @@ +From 56dc7cac03987e95915032161ff0f7d5a8b8bf36 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net> +Date: Sun, 30 Aug 2020 19:27:51 +0200 +Subject: [PATCH] gcc-go: undef SETCONTEXT_CLOBBERS_TLS in proc.c + +--- + libgo/runtime/proc.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/libgo/runtime/proc.c b/libgo/runtime/proc.c +index 274ce01c0bf..92a540bdde9 100644 +--- a/libgo/runtime/proc.c ++++ b/libgo/runtime/proc.c +@@ -66,6 +66,10 @@ static void gscanstack(G*); + + __thread G *g __asm__(GOSYM_PREFIX "runtime.g"); + ++/* libucontext does not seem to support tlsbase, undef the macro ++ * here to make sure we define initcontext and fixcontext as dummies. */ ++#undef SETCONTEXT_CLOBBERS_TLS ++ + #ifndef SETCONTEXT_CLOBBERS_TLS + + static inline void diff --git a/cross/gcc-armv7/0040-gcc-go-link-to-libucontext.patch b/cross/gcc-armv7/0040-gcc-go-link-to-libucontext.patch new file mode 100644 index 0000000000000000000000000000000000000000..de59e07f67a4fa8b54d24251adfd0fc87c26a6cc --- /dev/null +++ b/cross/gcc-armv7/0040-gcc-go-link-to-libucontext.patch @@ -0,0 +1,22 @@ +From ead76eced040b588f9374646a188ba21abab2049 Mon Sep 17 00:00:00 2001 +From: "A. Wilcox" <AWilcox@Wilcox-Tech.com> +Date: Mon, 31 Aug 2020 08:59:40 +0200 +Subject: [PATCH] gcc-go: link to libucontext + +--- + Makefile.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile.in b/Makefile.in +index 63627db68cf..c7f1f84d683 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -48823,7 +48823,7 @@ configure-target-libgo: + esac; \ + module_srcdir=libgo; \ + rm -f no-such-file || : ; \ +- CONFIG_SITE=no-such-file $(SHELL) \ ++ CONFIG_SITE=no-such-file LIBS="-lucontext $$LIBS" $(SHELL) \ + $$s/$$module_srcdir/configure \ + --srcdir=$${topdir}/$$module_srcdir \ + $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \ diff --git a/cross/gcc-armv7/0041-gcc-go-Disable-printing-of-unaccessible-ppc64-struct.patch b/cross/gcc-armv7/0041-gcc-go-Disable-printing-of-unaccessible-ppc64-struct.patch new file mode 100644 index 0000000000000000000000000000000000000000..406a74d00618f1827d76a3310d8d9d7dd44d80b4 --- /dev/null +++ b/cross/gcc-armv7/0041-gcc-go-Disable-printing-of-unaccessible-ppc64-struct.patch @@ -0,0 +1,23 @@ +From 3f5ee6a593215fbd40975d801ff37cf81a3fced3 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net> +Date: Mon, 31 Aug 2020 20:26:56 +0200 +Subject: [PATCH] gcc-go: Disable printing of unaccessible ppc64 struct members + +These struct members do not seem to exist on musl. +--- + libgo/runtime/go-signal.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libgo/runtime/go-signal.c b/libgo/runtime/go-signal.c +index fd1c885f043..e845e453332 100644 +--- a/libgo/runtime/go-signal.c ++++ b/libgo/runtime/go-signal.c +@@ -333,7 +333,7 @@ dumpregs(siginfo_t *info __attribute__((unused)), void *context __attribute__((u + runtime_printf("sp %X\n", m->sc_regs[30]); + runtime_printf("pc %X\n", m->sc_pc); + } +-#elif defined(__PPC__) && defined(__LITTLE_ENDIAN__) && defined(__linux__) ++#elif defined(__PPC__) && defined(__LITTLE_ENDIAN__) && defined(__GLIBC__) + { + mcontext_t *m = &((ucontext_t*)(context))->uc_mcontext; + int i; diff --git a/cross/gcc-armv7/APKBUILD b/cross/gcc-armv7/APKBUILD index 8ffe6283b6e7ccb9fd85e5369a62ce4de9c1c2e3..a011a083adff1a256c3c69d7472cbe166c0226bd 100644 --- a/cross/gcc-armv7/APKBUILD +++ b/cross/gcc-armv7/APKBUILD @@ -30,7 +30,7 @@ pkgver=10.2.0 [ "$CHOST" != "$CTARGET" ] && _target="-$CTARGET_ARCH" || _target="" pkgname=gcc-armv7 -pkgrel=2 +pkgrel=3 pkgdesc="Stage2 cross-compiler for armv7" url="https://gcc.gnu.org" arch="x86_64" @@ -117,9 +117,6 @@ fi # See libphobos/configure.tgt in GCC sources for supported targets [ "$CARCH" = ppc64le ] && LANG_D=false -# Go needs {set,make,swap}context, unimplemented in musl -[ "$CTARGET_LIBC" = musl ] && LANG_GO=false - # libitm has TEXTRELs in ARM build, so disable for now case "$CTARGET_ARCH" in arm*) _libitm=false ;; @@ -203,6 +200,17 @@ source="https://gcc.gnu.org/pub/gcc/releases/gcc-${_pkgbase:-$pkgver}/gcc-${_pkg 0028-ada-musl-support-fixes.patch 0029-c-Fix-bogus-vector-initialisation-error-PR96377.patch 0030-rs6000-ICE-when-using-an-MMA-type-as-a-function-para.patch + 0031-gcc-go-Use-_off_t-type-instead-of-_loff_t.patch + 0032-gcc-go-Don-t-include-sys-user.h.patch + 0033-gcc-go-Fix-ucontext_t-on-PPC64.patch + 0034-gcc-go-Fix-handling-of-signal-34-on-musl.patch + 0035-gcc-go-Use-int64-type-as-offset-argument-for-mmap.patch + 0036-gcc-go-Fix-st_-a-m-c-tim-fields-in-generated-sysinfo.patch + 0037-gcc-go-signal-34-is-special-on-musl-libc.patch + 0038-gcc-go-Prefer-_off_t-over-_off64_t.patch + 0039-gcc-go-undef-SETCONTEXT_CLOBBERS_TLS-in-proc.c.patch + 0040-gcc-go-link-to-libucontext.patch + 0041-gcc-go-Disable-printing-of-unaccessible-ppc64-struct.patch " # gcc-4.8-build-args.patch @@ -662,4 +670,15 @@ ac3288b7840e5cf2500608773f40e604798b30fcb885c9fec7ba0bcc4bcfd374211faa26e82fcf46 59d9e0a5f39ad68b8bb1365f7c97a54ca4751cdad01ead8184fd897d8a13156145976a8b5b9856be154c053d6ba11eaad1e5662e7ddda9ba6d2811340df61cba 0027-ada-libgnarl-compatibility-for-musl.patch 8207323c530929517c799b24b1a7ba39c07bbb0e6770f878f1d66088ae16667e7706c9402ac04fe5eb6447a6ad12b548cc7e7612c5b217cd24e7d00094d2a28f 0028-ada-musl-support-fixes.patch b90f7ad074b6183a4afc6be65349b8bf94b78d1c259d5be9877c16e3de95222fb6905cba7eb6ee4fe1e564ed20bf183c6815bd087896b6b0376656a841736fc1 0029-c-Fix-bogus-vector-initialisation-error-PR96377.patch -39a66708fb7ab4a72e1973749e32c22484e8e6c0afde6a59a645f2536c71cea86c8de2f0448621d53888293121344e84a24617400fae849282df57e0f5ddc21d 0030-rs6000-ICE-when-using-an-MMA-type-as-a-function-para.patch" +39a66708fb7ab4a72e1973749e32c22484e8e6c0afde6a59a645f2536c71cea86c8de2f0448621d53888293121344e84a24617400fae849282df57e0f5ddc21d 0030-rs6000-ICE-when-using-an-MMA-type-as-a-function-para.patch +ae0d860324b8b907ff82fcebe4777afae19df85b091723ac55425d24f677fb4e1d14ff4f21cdcdf837dcf730a4c48174e0cc31d1d003a5d11a88c226d5ed3e4a 0031-gcc-go-Use-_off_t-type-instead-of-_loff_t.patch +a08ea6ce516dc96029153de096b96dcd3262509ee546f1f03152abe8f78c11c75b8dc14de39ccd982896114bf33d2edade2b4810dcc0b2d68e4abf52b67b8a41 0032-gcc-go-Don-t-include-sys-user.h.patch +3bbd3ab3d31fc81cbc6b641919a84807e52b59794f860cad83b9ff69bfd0f5f29aeefc5f19b203bc96db23bf6e5a6958690bd81caa3137eaa5111b5c465273b3 0033-gcc-go-Fix-ucontext_t-on-PPC64.patch +9c410c3a137a18559f1ae5ab5803d5bc8fc596a93da769b4ff2feec516602eb193333d18d55ce39e054b56726a5c243962e8ccdee001ae7e186b4222465b31a3 0034-gcc-go-Fix-handling-of-signal-34-on-musl.patch +78af84111854f5d2de127f03fc0984ea1f9c2c87156be2c454cc88a6791c90817aed63aba2861657560b1d3bc182a31e3d74f7a946e56d831939870240625fb7 0035-gcc-go-Use-int64-type-as-offset-argument-for-mmap.patch +c0d47b5bc478b3e0943806806d81a9183b9d176148e31c75d50cdbb23a34d9c178d751a3fac743d94ebb44c7eae70d3c55ca115acedcf4a1a0bacf46c0c5cd5f 0036-gcc-go-Fix-st_-a-m-c-tim-fields-in-generated-sysinfo.patch +e9b523a34b5e2930e0c58ee19e903e5416fe65641df80c40937d445d4c8f4f4bde59b3a94a392f5ca0d1c4a87565bd655c186b3a5194cb5bce4de2864d5d025d 0037-gcc-go-signal-34-is-special-on-musl-libc.patch +d75147c2b062b0321b36d843c55887673d8bdac6448da465c29853ac5df3b68153551913476f2ea0fdb6d09df3992e47d457e480b3c16d99e6668b4f941e6e16 0038-gcc-go-Prefer-_off_t-over-_off64_t.patch +a60d2101f49d921cb538fd46650ba550f30721650b40e15fe8a56da32e5f2a3ea62f10d93982ffb45bee2e284cc006141b5d7a96fa12215d63b183b0a67c4c55 0039-gcc-go-undef-SETCONTEXT_CLOBBERS_TLS-in-proc.c.patch +f08cfc9622e84a5a527b626dcca7199a430ab1c02588fef718bcb0155bc5af5a11888aa975e76e55cc2b9b70520a8bf1bcf939e5afe073f6263685686bc9c26f 0040-gcc-go-link-to-libucontext.patch +f27644461c8a3fd27026873639608e53a396e9b9d39c4f330c8eeba82bb9b1e68ae1bfb82c770424399a13762bb3ec147b2699b2cbbdca07628ab3896d806ce4 0041-gcc-go-Disable-printing-of-unaccessible-ppc64-struct.patch"