summaryrefslogtreecommitdiff
path: root/system/gcc/342-gccgo-reflect-underscore.patch
diff options
context:
space:
mode:
authorA. Wilcox <AWilcox@Wilcox-Tech.com>2024-05-23 23:40:10 -0500
committerA. Wilcox <AWilcox@Wilcox-Tech.com>2024-06-11 14:03:55 -0500
commitfea61b9e1973a6ca7efe6cdf91e87c7604d54dd6 (patch)
treedfbe2ea0114eaf6c9fa04043def5f921a29efaec /system/gcc/342-gccgo-reflect-underscore.patch
parentaec78470ff4b2c671c4a522920681947c0209e11 (diff)
downloadpackages-fea61b9e1973a6ca7efe6cdf91e87c7604d54dd6.tar.gz
packages-fea61b9e1973a6ca7efe6cdf91e87c7604d54dd6.tar.bz2
packages-fea61b9e1973a6ca7efe6cdf91e87c7604d54dd6.tar.xz
packages-fea61b9e1973a6ca7efe6cdf91e87c7604d54dd6.zip
system/gcc: Update to 13.3.0
0012-static-pie and 201-ada were forward-ported by my own paws. Three digit 0xx underscore patches are from Gentoo. This is also the source of the insn-split and match-split patches, which significantly increase performance on build. They are also the source of the new configure option --with-matchpd-partitions. On systems with very many cores/threads, a number higher than 32 would probably perform even better, but 32 should give decent perf on 8+ threads, and runs quite nicely on the 64-thread Talos II I ran the testbuild on. 202 is from Void. The 300s are originally written by me. The Ada patch now includes an improvement to use posix_openpt instead of getpt, which fixes link errors later on. We also now use STAGE1_CFLAGS and BOOT_CFLAGS to improve build times. Improvement was clocked from 40m to 32m (-8m, or 20%) on gwyn. The patch for Go name mangling is needed to build packages that use reflect2, which includes user/gitlab-runner.
Diffstat (limited to 'system/gcc/342-gccgo-reflect-underscore.patch')
-rw-r--r--system/gcc/342-gccgo-reflect-underscore.patch28
1 files changed, 28 insertions, 0 deletions
diff --git a/system/gcc/342-gccgo-reflect-underscore.patch b/system/gcc/342-gccgo-reflect-underscore.patch
new file mode 100644
index 000000000..8edad0e39
--- /dev/null
+++ b/system/gcc/342-gccgo-reflect-underscore.patch
@@ -0,0 +1,28 @@
+See also: https://github.com/modern-go/reflect2/issues/21
+
+--- gcc-13.3.0/libgo/go/runtime/malloc.go.old 2024-05-21 02:47:42.000000000 -0500
++++ gcc-13.3.0/libgo/go/runtime/malloc.go 2024-06-03 19:25:48.497999687 -0500
+@@ -1297,6 +1297,11 @@
+ return mallocgc(typ.size, typ, true)
+ }
+
++//go:linkname reflect_unsafe_New_one_underscore reflect.unsafe_New
++func reflect_unsafe_New_one_underscore(typ *_type) unsafe.Pointer {
++ return mallocgc(typ.size, typ, true)
++}
++
+ //go:linkname reflectlite_unsafe_New internal_1reflectlite.unsafe__New
+ func reflectlite_unsafe_New(typ *_type) unsafe.Pointer {
+ return mallocgc(typ.size, typ, true)
+@@ -1319,6 +1324,11 @@
+ return newarray(typ, n)
+ }
+
++//go:linkname reflect_unsafe_NewArray_one_underscore reflect.unsafe_NewArray
++func reflect_unsafe_NewArray_one_underscore(typ *_type, n int) unsafe.Pointer {
++ return newarray(typ, n)
++}
++
+ func profilealloc(mp *m, x unsafe.Pointer, size uintptr) {
+ c := getMCache(mp)
+ if c == nil {