summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorA. Wilcox <AWilcox@Wilcox-Tech.com>2019-03-04 00:59:59 +0000
committerA. Wilcox <AWilcox@Wilcox-Tech.com>2019-03-04 00:59:59 +0000
commit63b5fb12c3d75e460799c672bbbdd5d29c3cc33c (patch)
tree4542b4d256847c3bf355ff9dc47b04bf0eda15a6
parent97aec267e0f0c6a4b3d2e88abc05eb36b4b6e2e2 (diff)
downloadpackages-63b5fb12c3d75e460799c672bbbdd5d29c3cc33c.tar.gz
packages-63b5fb12c3d75e460799c672bbbdd5d29c3cc33c.tar.bz2
packages-63b5fb12c3d75e460799c672bbbdd5d29c3cc33c.tar.xz
packages-63b5fb12c3d75e460799c672bbbdd5d29c3cc33c.zip
system/gcc: More Go fixes (build and runtime)
-rw-r--r--system/gcc/334-gccgo-signal-shell.patch25
-rw-r--r--system/gcc/335-gccgo-signal-ppc32.patch14
-rw-r--r--system/gcc/336-gccgo-mmap64.patch29
-rw-r--r--system/gcc/337-gccgo-signal-sig34.patch11
-rw-r--r--system/gcc/APKBUILD8
5 files changed, 87 insertions, 0 deletions
diff --git a/system/gcc/334-gccgo-signal-shell.patch b/system/gcc/334-gccgo-signal-shell.patch
new file mode 100644
index 000000000..5c7405c4f
--- /dev/null
+++ b/system/gcc/334-gccgo-signal-shell.patch
@@ -0,0 +1,25 @@
+--- gcc-8.3.0/libgo/mksigtab.sh.old 2017-11-22 00:27:29.000000000 +0000
++++ gcc-8.3.0/libgo/mksigtab.sh 2019-03-02 22:01:17.530000000 +0000
+@@ -82,7 +82,7 @@
+ 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"}'
+@@ -94,10 +94,12 @@
+
+ # 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/system/gcc/335-gccgo-signal-ppc32.patch b/system/gcc/335-gccgo-signal-ppc32.patch
new file mode 100644
index 000000000..f44444948
--- /dev/null
+++ b/system/gcc/335-gccgo-signal-ppc32.patch
@@ -0,0 +1,14 @@
+--- gcc-8.3.0/libgo/runtime/go-signal.c.old 2019-03-02 22:02:02.250000000 +0000
++++ gcc-8.3.0/libgo/runtime/go-signal.c 2019-03-03 02:04:13.220000000 +0000
+@@ -222,7 +222,11 @@
+ #endif
+ #ifdef __PPC__
+ #ifdef __linux__
++ #ifdef __PPC64__
+ ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.gp_regs[32];
++ #else
++ ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.gregs[32];
++ #endif
+ #endif
+ #ifdef _AIX
+ ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.jmp_context.iar;
diff --git a/system/gcc/336-gccgo-mmap64.patch b/system/gcc/336-gccgo-mmap64.patch
new file mode 100644
index 000000000..23b4cebc8
--- /dev/null
+++ b/system/gcc/336-gccgo-mmap64.patch
@@ -0,0 +1,29 @@
+--- gcc-8.3.0/libgo/go/runtime/mem_gccgo.go.old 2018-01-09 01:23:08.000000000 +0000
++++ gcc-8.3.0/libgo/go/runtime/mem_gccgo.go 2019-03-03 05:15:33.010000000 +0000
+@@ -16,7 +16,7 @@
+ //go:linkname sysFree runtime.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
+@@ -41,7 +41,7 @@
+ }
+ }
+
+-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()
+@@ -84,7 +84,7 @@
+ return true
+ }
+
+-func mmap_fixed(v unsafe.Pointer, n uintptr, prot, flags, fd int32, offset uintptr) (unsafe.Pointer, int) {
++func mmap_fixed(v unsafe.Pointer, n uintptr, prot, flags, fd int32, offset int64) (unsafe.Pointer, int) {
+ p, err := mmap(v, n, prot, flags, fd, offset)
+ // On some systems, mmap ignores v without
+ // MAP_FIXED, so retry if the address space is free.
diff --git a/system/gcc/337-gccgo-signal-sig34.patch b/system/gcc/337-gccgo-signal-sig34.patch
new file mode 100644
index 000000000..757d2f216
--- /dev/null
+++ b/system/gcc/337-gccgo-signal-sig34.patch
@@ -0,0 +1,11 @@
+--- gcc-8.3.0/libgo/go/runtime/signal_gccgo.go.old 2018-01-10 05:15:52.000000000 +0000
++++ gcc-8.3.0/libgo/go/runtime/signal_gccgo.go 2019-03-03 05:19:28.000000000 +0000
+@@ -111,7 +111,7 @@
+ 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/system/gcc/APKBUILD b/system/gcc/APKBUILD
index e831d2604..f95655eb6 100644
--- a/system/gcc/APKBUILD
+++ b/system/gcc/APKBUILD
@@ -170,6 +170,10 @@ source="https://ftp.gnu.org/gnu/gcc/gcc-$pkgver/gcc-$pkgver.tar.xz
331-gccgo-use-real-off_t-type.patch
332-gccgo-sysinfo.patch
333-gccgo-signal-ppc64.patch
+ 334-gccgo-signal-shell.patch
+ 335-gccgo-signal-ppc32.patch
+ 336-gccgo-mmap64.patch
+ 337-gccgo-signal-sig34.patch
add-classic_table-support.patch
gcc-5.4.0-locale.patch
@@ -551,5 +555,9 @@ f4ef08454e28c8732db69115e4998ec153399e8d229dd27f923dbdcf57b68128a65640d026cc7f45
24c8708f64b9b7945b3f07e9bbecf17ab8bcde2524f49cbd694ca2f6146ccc3f13bb027db282f326525ea79d50a2868fa3fa2b0d688a914b5ea77bbfd7e5cbe4 331-gccgo-use-real-off_t-type.patch
31f9d85faa8648d140834646fc2bc7733eb362bfb87d696c5f375f9c0a3e4c3df41708a9a37c49bc0757513a7704976b9a5e21aa5c2de4b380d47d7e2cbde214 332-gccgo-sysinfo.patch
ef6ff46d571814ce2f6db549bfb9b9f5cc55d46085b197c36627a72e4f355fcbeb41d04fabd3029f3bc536fc48155fe3feab58a7a6ece9dcd19409ea44c17b0b 333-gccgo-signal-ppc64.patch
+ab7a19d2702d232c9c1242fbdf9bd782e195d94104c0278e3b9ce435060a169094525ca53b615b3a9e62786db77bba836ecd495d58b544df474b13348432c200 334-gccgo-signal-shell.patch
+e755072a3c71ada6cde354dd258fae029919e1116048068368d38411ca28a6ad8856702498d6667b0dcbb1d09fcb3fd66669aa79739a5e574a9cd490bd92ce90 335-gccgo-signal-ppc32.patch
+de0cc0f9356c9ee5ea7b0f954441b59115f4a8f8f63573d0c17b6537e6f37641cf137531b496fc192d38035c2c4ba8175d36cbd7da15cbfcf8dc18c049c0f111 336-gccgo-mmap64.patch
+c2916948b028e1e990e1953875b884561c0f8dd105c1ec03073795df9a47ec2c627cbc95ca0ec98ab9177bf2b7c8458bf3fd09f780fa6c301995846f6317e366 337-gccgo-signal-sig34.patch
1860593584f629d24d5b6db14b0a3412e9f93449b663aaa4981301a0923db0159314905e694f27366fbfef72dce06636ab6df86862b7e9e9564847e03bee82c1 add-classic_table-support.patch
67a75a94fdba69de96b98dbc2978a50cb197857c464b81f7c956176da7066b3be937e40cb15e0870fc1e7382d662c5101bcd18cf457fc4112de41802042b51c4 gcc-5.4.0-locale.patch"