Github messages for voidlinux
 help / color / mirror / Atom feed
* [PR PATCH] gcc: update to 11.2.1git20211128
@ 2022-01-06  6:15 Oreo639
  2022-01-26 19:41 ` dkwo
                   ` (142 more replies)
  0 siblings, 143 replies; 144+ messages in thread
From: Oreo639 @ 2022-01-06  6:15 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1723 bytes --]

There is a new pull request by Oreo639 against master on the void-packages repository

https://github.com/Oreo639/void-packages gcc11
https://github.com/void-linux/void-packages/pull/34902

gcc: update to 11.2.1git20211128
<!-- Uncomment relevant sections and delete options which are not applicable -->
[ci skip]

Note: depends on https://github.com/void-linux/void-packages/pull/32330
(Otherwise, it would work until you try recompiling glibc)

I tested this PR with glibc and it appears to work fine so far, aside from the issue mentioned earlier.
I also tested this PR with x86_64-musl, and it appears to run fine in a musl chroot, and recompiling and installing musl with gcc 11 doesn't appear to result in any issues.

Please let me know if there are any issues.

(Related: https://github.com/void-linux/void-packages/pull/34153)

#### Testing the changes
- I tested the changes in this PR: **briefly**

<!--
#### New package
- This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please [skip CI](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration)
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->

#### Local build testing
- I built this PR locally for my native architecture, (x86_64-glibc)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - x86_64-musl

A patch file from https://github.com/void-linux/void-packages/pull/34902.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-gcc11-34902.patch --]
[-- Type: text/x-diff, Size: 48461 bytes --]

From 3385c6500defc873cd57bf293c938f81421165d6 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Tue, 4 Jan 2022 20:41:41 -0800
Subject: [PATCH 1/3] binutils: update to 2.37

---
 ...e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch |  60 -----
 .../patches/bfd-close-file-descriptor.patch   | 232 ++++++++++++++++++
 .../patches/binutils-missing-man-pages.patch  |  32 +++
 .../patches/ppc64-revert-gnu-attributes.patch |  65 ++---
 srcpkgs/binutils/template                     |  19 +-
 5 files changed, 296 insertions(+), 112 deletions(-)
 delete mode 100644 srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch
 create mode 100644 srcpkgs/binutils/patches/bfd-close-file-descriptor.patch
 create mode 100644 srcpkgs/binutils/patches/binutils-missing-man-pages.patch

diff --git a/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch b/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch
deleted file mode 100644
index a55432d83cff..000000000000
--- a/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff Mon Sep 17 00:00:00 2001
-From: "H.J. Lu" <hjl.tools@gmail.com>
-Date: Mon, 16 Nov 2020 06:37:53 -0800
-Subject: [PATCH] elf: Set rel_from_abs to 1 for __ehdr_start
-
-bfdlink.h has
-
-  /* Symbol will be converted from absolute to section-relative.  Set for
-     symbols defined by a script from "dot" (also SEGMENT_START or ORIGIN)
-     outside of an output section statement.  */
-  unsigned int rel_from_abs : 1;
-
-linker.c has
-
-.{* Return TRUE if the symbol described by a linker hash entry H
-.   is going to be absolute.  Linker-script defined symbols can be
-.   converted from absolute to section-relative ones late in the
-.   link.  Use this macro to correctly determine whether the symbol
-.   will actually end up absolute in output.  *}
-.#define bfd_is_abs_symbol(H) \
-.  (((H)->type == bfd_link_hash_defined \
-.    || (H)->type == bfd_link_hash_defweak) \
-.   && bfd_is_abs_section ((H)->u.def.section) \
-.   && !(H)->rel_from_abs)
-.
-
-Set rel_from_abs to 1 for __ehdr_start which will be converted from
-absolute to section-relative in assign_file_positions_for_load_sections.
-
-	PR ld/26869
-	* ldelf.c (ldelf_before_allocation): Set rel_from_abs to 1 for
-	__ehdr_start.
-	* testsuite/ld-i386/i386.exp: Run pr26869.
-	* testsuite/ld-i386/pr26869.d: New file.
-	* testsuite/ld-i386/pr26869.s: Likewise.
-
-(cherry picked from commit cbd5b99cce073273f668b154d4514e8e7e7ccc51)
----
- ld/ChangeLog                   |  9 +++++++++
- ld/ldelf.c                     |  2 ++
- ld/testsuite/ld-i386/i386.exp  |  1 +
- ld/testsuite/ld-i386/pr26869.d | 14 ++++++++++++++
- ld/testsuite/ld-i386/pr26869.s |  3 +++
- 5 files changed, 29 insertions(+)
- create mode 100644 ld/testsuite/ld-i386/pr26869.d
- create mode 100644 ld/testsuite/ld-i386/pr26869.s
-
-diff --git a/ld/ldelf.c b/ld/ldelf.c
-index bada3ade2d7..831d032fe56 100644
---- a/ld/ldelf.c
-+++ b/ld/ldelf.c
-@@ -1589,6 +1589,8 @@ ldelf_before_allocation (char *audit, char *depaudit,
- 		      (char *) &ehdr_start->u + sizeof ehdr_start->u.def.next,
- 		      sizeof ehdr_start_save_u);
- 	      ehdr_start->type = bfd_link_hash_defined;
-+	      /* It will be converted to section-relative later.  */
-+	      ehdr_start->rel_from_abs = 1;
- 	      ehdr_start->u.def.section = bfd_abs_section_ptr;
- 	      ehdr_start->u.def.value = 0;
- 	    }
diff --git a/srcpkgs/binutils/patches/bfd-close-file-descriptor.patch b/srcpkgs/binutils/patches/bfd-close-file-descriptor.patch
new file mode 100644
index 000000000000..192d4e02d456
--- /dev/null
+++ b/srcpkgs/binutils/patches/bfd-close-file-descriptor.patch
@@ -0,0 +1,232 @@
+From 1c611b40e6bfc8029bff7696814330b5bc0ee5c0 Mon Sep 17 00:00:00 2001
+From: "H.J. Lu" <hjl.tools@gmail.com>
+Date: Mon, 26 Jul 2021 05:59:55 -0700
+Subject: [PATCH] bfd: Close the file descriptor if there is no archive fd
+
+Close the file descriptor if there is no archive plugin file descriptor
+to avoid running out of file descriptors on thin archives with many
+archive members.
+
+bfd/
+
+	PR ld/28138
+	* plugin.c (bfd_plugin_close_file_descriptor): Close the file
+	descriptor there is no archive plugin file descriptor.
+
+ld/
+
+	PR ld/28138
+	* testsuite/ld-plugin/lto.exp: Run tmpdir/pr28138 only for
+	native build.
+
+	PR ld/28138
+	* testsuite/ld-plugin/lto.exp: Run ld/28138 tests.
+	* testsuite/ld-plugin/pr28138.c: New file.
+	* testsuite/ld-plugin/pr28138-1.c: Likewise.
+	* testsuite/ld-plugin/pr28138-2.c: Likewise.
+	* testsuite/ld-plugin/pr28138-3.c: Likewise.
+	* testsuite/ld-plugin/pr28138-4.c: Likewise.
+	* testsuite/ld-plugin/pr28138-5.c: Likewise.
+	* testsuite/ld-plugin/pr28138-6.c: Likewise.
+	* testsuite/ld-plugin/pr28138-7.c: Likewise.
+
+(cherry picked from commit 5a98fb7513b559e20dfebdbaa2a471afda3b4742)
+(cherry picked from commit 7dc37e1e1209c80e0bab784df6b6bac335e836f2)
+---
+ bfd/plugin.c                       |  8 +++++++
+ ld/testsuite/ld-plugin/lto.exp     | 34 ++++++++++++++++++++++++++++++
+ ld/testsuite/ld-plugin/pr28138-1.c |  6 ++++++
+ ld/testsuite/ld-plugin/pr28138-2.c |  6 ++++++
+ ld/testsuite/ld-plugin/pr28138-3.c |  6 ++++++
+ ld/testsuite/ld-plugin/pr28138-4.c |  6 ++++++
+ ld/testsuite/ld-plugin/pr28138-5.c |  6 ++++++
+ ld/testsuite/ld-plugin/pr28138-6.c |  6 ++++++
+ ld/testsuite/ld-plugin/pr28138-7.c |  6 ++++++
+ ld/testsuite/ld-plugin/pr28138.c   | 20 ++++++++++++++++++
+ 10 files changed, 104 insertions(+)
+ create mode 100644 ld/testsuite/ld-plugin/pr28138-1.c
+ create mode 100644 ld/testsuite/ld-plugin/pr28138-2.c
+ create mode 100644 ld/testsuite/ld-plugin/pr28138-3.c
+ create mode 100644 ld/testsuite/ld-plugin/pr28138-4.c
+ create mode 100644 ld/testsuite/ld-plugin/pr28138-5.c
+ create mode 100644 ld/testsuite/ld-plugin/pr28138-6.c
+ create mode 100644 ld/testsuite/ld-plugin/pr28138-7.c
+ create mode 100644 ld/testsuite/ld-plugin/pr28138.c
+
+diff --git a/bfd/plugin.c b/bfd/plugin.c
+index 6cfa2b66470..3bab8febe88 100644
+--- a/bfd/plugin.c
++++ b/bfd/plugin.c
+@@ -291,6 +291,14 @@ bfd_plugin_close_file_descriptor (bfd *abfd, int fd)
+ 	     && !bfd_is_thin_archive (abfd->my_archive))
+ 	abfd = abfd->my_archive;
+ 
++      /* Close the file descriptor if there is no archive plugin file
++	 descriptor.  */
++      if (abfd->archive_plugin_fd == -1)
++	{
++	  close (fd);
++	  return;
++	}
++
+       abfd->archive_plugin_fd_open_count--;
+       /* Dup the archive plugin file descriptor for later use, which
+ 	 will be closed by _bfd_archive_close_and_cleanup.  */
+diff --git a/ld/testsuite/ld-plugin/lto.exp b/ld/testsuite/ld-plugin/lto.exp
+index def69e43ab3..999d911ce6a 100644
+--- a/ld/testsuite/ld-plugin/lto.exp
++++ b/ld/testsuite/ld-plugin/lto.exp
+@@ -687,6 +687,40 @@ if { [is_elf_format] && [check_lto_shared_available] } {
+     }
+ }
+ 
++run_cc_link_tests [list \
++    [list \
++	"Build pr28138.a" \
++	"-T" "" \
++	{pr28138-1.c pr28138-2.c pr28138-3.c pr28138-4.c pr28138-5.c \
++	 pr28138-6.c pr28138-7.c} {} "pr28138.a" \
++    ] \
++    [list \
++	"Build pr28138.o" \
++	"" "" \
++	{pr28138.c} {} \
++    ] \
++]
++
++set exec_output [run_host_cmd "sh" \
++			      "-c \"ulimit -n 20; \
++			      $CC -Btmpdir/ld -o tmpdir/pr28138 \
++			      tmpdir/pr28138.o tmpdir/pr28138.a\""]
++set exec_output [prune_warnings $exec_output]
++if [string match "" $exec_output] then {
++    if { [isnative] } {
++	set exec_output [run_host_cmd "tmpdir/pr28138" ""]
++	if [string match "PASS" $exec_output] then {
++	    pass "PR ld/28138"
++	} else {
++	    fail "PR ld/28138"
++	}
++    } else {
++	pass "PR ld/28138"
++    }
++} else {
++    fail "PR ld/28138"
++}
++
+ set testname "Build liblto-11.a"
+ remote_file host delete "tmpdir/liblto-11.a"
+ set catch_output [run_host_cmd "$ar" "rc $plug_opt tmpdir/liblto-11.a tmpdir/lto-11a.o tmpdir/lto-11b.o tmpdir/lto-11c.o"]
+diff --git a/ld/testsuite/ld-plugin/pr28138-1.c b/ld/testsuite/ld-plugin/pr28138-1.c
+new file mode 100644
+index 00000000000..51d119e1642
+--- /dev/null
++++ b/ld/testsuite/ld-plugin/pr28138-1.c
+@@ -0,0 +1,6 @@
++extern int a0(void);
++int
++a1(void)
++{
++  return 1 + a0();
++}
+diff --git a/ld/testsuite/ld-plugin/pr28138-2.c b/ld/testsuite/ld-plugin/pr28138-2.c
+new file mode 100644
+index 00000000000..1120cd797e9
+--- /dev/null
++++ b/ld/testsuite/ld-plugin/pr28138-2.c
+@@ -0,0 +1,6 @@
++extern int a1(void);
++int
++a2(void)
++{
++  return 1 + a1();
++}
+diff --git a/ld/testsuite/ld-plugin/pr28138-3.c b/ld/testsuite/ld-plugin/pr28138-3.c
+new file mode 100644
+index 00000000000..ec464947ee6
+--- /dev/null
++++ b/ld/testsuite/ld-plugin/pr28138-3.c
+@@ -0,0 +1,6 @@
++extern int a2(void);
++int
++a3(void)
++{
++  return 1 + a2();
++}
+diff --git a/ld/testsuite/ld-plugin/pr28138-4.c b/ld/testsuite/ld-plugin/pr28138-4.c
+new file mode 100644
+index 00000000000..475701b2c5c
+--- /dev/null
++++ b/ld/testsuite/ld-plugin/pr28138-4.c
+@@ -0,0 +1,6 @@
++extern int a3(void);
++int
++a4(void)
++{
++  return 1 + a3();
++}
+diff --git a/ld/testsuite/ld-plugin/pr28138-5.c b/ld/testsuite/ld-plugin/pr28138-5.c
+new file mode 100644
+index 00000000000..e24f86c363e
+--- /dev/null
++++ b/ld/testsuite/ld-plugin/pr28138-5.c
+@@ -0,0 +1,6 @@
++extern int a4(void);
++int
++a5(void)
++{
++  return 1 + a4();
++}
+diff --git a/ld/testsuite/ld-plugin/pr28138-6.c b/ld/testsuite/ld-plugin/pr28138-6.c
+new file mode 100644
+index 00000000000..b5b938bdb21
+--- /dev/null
++++ b/ld/testsuite/ld-plugin/pr28138-6.c
+@@ -0,0 +1,6 @@
++extern int a5(void);
++int
++a6(void)
++{
++  return 1 + a5();
++}
+diff --git a/ld/testsuite/ld-plugin/pr28138-7.c b/ld/testsuite/ld-plugin/pr28138-7.c
+new file mode 100644
+index 00000000000..4ef75bf0f0c
+--- /dev/null
++++ b/ld/testsuite/ld-plugin/pr28138-7.c
+@@ -0,0 +1,6 @@
++extern int a6(void);
++int
++a7(void)
++{
++  return 1 + a6();
++}
+diff --git a/ld/testsuite/ld-plugin/pr28138.c b/ld/testsuite/ld-plugin/pr28138.c
+new file mode 100644
+index 00000000000..68252c9f382
+--- /dev/null
++++ b/ld/testsuite/ld-plugin/pr28138.c
+@@ -0,0 +1,20 @@
++#include <stdio.h>
++
++extern int a7(void);
++
++int
++a0(void)
++{
++  return 0;
++}
++
++int
++main()
++{
++  if (a7() == 7)
++    {
++      printf ("PASS\n");
++      return 0;
++    }
++  return 1;
++}
+-- 
+2.27.0
+
diff --git a/srcpkgs/binutils/patches/binutils-missing-man-pages.patch b/srcpkgs/binutils/patches/binutils-missing-man-pages.patch
new file mode 100644
index 000000000000..905f6620cc39
--- /dev/null
+++ b/srcpkgs/binutils/patches/binutils-missing-man-pages.patch
@@ -0,0 +1,32 @@
+From 96a7037cd8573cf065aa6b12baca68696f96d9ca Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <siarheit@google.com>
+Date: Mon, 26 Jul 2021 22:51:18 +0100
+Subject: [PATCH] texi2pod.pl: add no-op --no-split option support [PR28144]
+
+Change 2faf902da ("generate single html manual page by default")
+added use of --no-split option to makeinfo. binutils reuses
+makeinfo options for texi2pod.pl wrapper. Unsupported option
+led to silent manpage truncation.
+
+The change adds no-op option support.
+
+etc/
+
+	* texi2pod.pl: Handle no-op --no-split option.
+---
+ etc/texi2pod.pl | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/etc/texi2pod.pl b/etc/texi2pod.pl
+index 11f70d156be..dcf2b437640 100644
+--- a/etc/texi2pod.pl
++++ b/etc/texi2pod.pl
+@@ -59,6 +59,8 @@
+ 	    $flag = shift;
+ 	}
+         push (@ipath, $flag);
++    } elsif (/^--no-split$/) {
++	# ignore option for makeinfo compatibility
+     } elsif (/^-/) {
+ 	usage();
+     } else {
diff --git a/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch b/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
index 5de937f4fcce..6e1fa7731c9e 100644
--- a/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
+++ b/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
@@ -1,39 +1,24 @@
-From b1faf99f3e546df2cd302bb1ad36a2078224fe8b Mon Sep 17 00:00:00 2001
+From bbf05b742fde518fb97c789b043fe0d3aaf549f0 Mon Sep 17 00:00:00 2001
 From: Ariadne Conill <ariadne@dereferenced.org>
-Date: Fri, 30 Oct 2020 16:59:48 -0600
+Date: Tue, 21 Sep 2021 14:53:13 +0000
 Subject: [PATCH] Revert "PR25882, .gnu.attributes are not checked for shared
  libraries"
 
+This revert is needed to avoid wrongly tagging objects with the incompatible
+IBM long double ABI, which is not supported by musl and will result in
+linking errors if used.
+
 This reverts commit a8acd6eeb6dc2cc5460ece90f90ebe36b56b20ba.
 ---
- bfd/ChangeLog     | 6 ------
- bfd/elf32-tic6x.c | 3 ---
- ld/ChangeLog      | 6 ------
- ld/ldlang.c       | 9 ++++-----
- 4 files changed, 4 insertions(+), 20 deletions(-)
+ bfd/elf32-tic6x.c |  3 ---
+ ld/ldlang.c       | 10 ++++------
+ 2 files changed, 4 insertions(+), 9 deletions(-)
 
-diff --git a/bfd/ChangeLog b/bfd/ChangeLog
-index 9fac12538a..b5461494e8 100644
---- a/bfd/ChangeLog
-+++ b/bfd/ChangeLog
-@@ -1422,12 +1422,6 @@
- 	accessing root.u.def of symbols.  Also check root.u.def.section
- 	is non-NULL.  Reverse tests so as to make the logic positive.
- 
--2020-05-01  Alan Modra  <amodra@gmail.com>
--
--	PR 25882
--	* elf32-tic6x.c (elf32_tic6x_merge_attributes): Don't transfer
--	Tag_ABI_PIC or Tag_ABI_PID from dynamic objects to the output.
--
- 2020-05-01  Alan Modra  <amodra@gmail.com>
- 
- 	PR 25882
 diff --git a/bfd/elf32-tic6x.c b/bfd/elf32-tic6x.c
-index b8b916bfd3..91bb6a10b1 100644
+index 5754f3cb860..3ad1d612749 100644
 --- a/bfd/elf32-tic6x.c
 +++ b/bfd/elf32-tic6x.c
-@@ -3748,9 +3748,6 @@ elf32_tic6x_merge_attributes (bfd *ibfd, struct bfd_link_info *info)
+@@ -3735,9 +3735,6 @@ elf32_tic6x_merge_attributes (bfd *ibfd, struct bfd_link_info *info)
  
  	case Tag_ABI_PIC:
  	case Tag_ABI_PID:
@@ -43,36 +28,20 @@ index b8b916bfd3..91bb6a10b1 100644
  	  if (out_attr[i].i > in_attr[i].i)
  	    out_attr[i].i = in_attr[i].i;
  	  break;
-diff --git a/ld/ChangeLog b/ld/ChangeLog
-index 4eec7d2977..b93452f70c 100644
---- a/ld/ChangeLog
-+++ b/ld/ChangeLog
-@@ -1319,12 +1319,6 @@
- 	* testsuite/ld-aarch64/farcall-group.d: New test driver.
- 	* testsuite/ld-aarch64/aarch64-elf.exp: Run the new test.
- 
--2020-05-01  Alan Modra  <amodra@gmail.com>
--
--	PR 25882
--	* ldlang.c (lang_check): Call bfd_merge_private_bfd_data for
--	shared libraries.
--
- 2020-05-01  Alan Modra  <amodra@gmail.com>
- 
- 	* po/BLD-POTFILES.in: Regenerate.
 diff --git a/ld/ldlang.c b/ld/ldlang.c
-index 9977195074..173d8ec349 100644
+index 37b64c89ee1..f13beaef9d9 100644
 --- a/ld/ldlang.c
 +++ b/ld/ldlang.c
-@@ -6972,12 +6972,11 @@ lang_check (void)
+@@ -7071,13 +7071,11 @@ lang_check (void)
  		   bfd_printable_name (input_bfd), input_bfd,
  		   bfd_printable_name (link_info.output_bfd));
  	}
 -
 -      /* If the input bfd has no contents, it shouldn't set the
 -	 private data of the output bfd.  */
--      else if ((input_bfd->flags & DYNAMIC) != 0
--	       || bfd_count_sections (input_bfd) != 0)
+-      else if (!file->flags.just_syms
+-	       && ((input_bfd->flags & DYNAMIC) != 0
+-		   || bfd_count_sections (input_bfd) != 0))
 +      else if (bfd_count_sections (input_bfd))
  	{
 +	  /* If the input bfd has no contents, it shouldn't set the
@@ -82,5 +51,5 @@ index 9977195074..173d8ec349 100644
  
  	  /* If we aren't supposed to warn about mismatched input
 -- 
-2.29.2
+2.33.0
 
diff --git a/srcpkgs/binutils/template b/srcpkgs/binutils/template
index 6270f8618c87..743618a216c3 100644
--- a/srcpkgs/binutils/template
+++ b/srcpkgs/binutils/template
@@ -1,25 +1,36 @@
 # Template file for 'binutils'
 pkgname=binutils
-version=2.35.1
-revision=4
+version=2.37
+revision=1
 bootstrap=yes
+hostmakedepends="pkg-config"
 makedepends="zlib-devel"
 short_desc="GNU binary utilities"
 maintainer="Enno Boland <gottox@voidlinux.org>"
 license="GPL-3.0-or-later"
 homepage="http://www.gnu.org/software/binutils/"
 distfiles="${GNU_SITE}/$pkgname/$pkgname-$version.tar.xz"
-checksum=3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
+checksum=820d9724f020a3e69cb337893a0b63c2db161dadcb0e06fc11dc29eb1e84a32c
 
 subpackages="binutils-doc"
 if [ "$CHROOT_READY" ]; then
-	hostmakedepends="flex perl texinfo"
+	hostmakedepends+=" flex perl texinfo"
 	makedepends+=" elfutils-devel"
 	checkdepends="bc"
 	depends="binutils-doc"
 	subpackages+=" binutils-devel"
 fi
 
+pre_configure() {
+	# Binutils 2.37 ships empty man pages; we apply a patch that fixes the
+	# build system so that it doesn't generate empty man pages, but we need
+	# to delete the empty man pages for the build system to regenerate
+	# them.
+	if [ "$CHROOT_READY" ]; then
+		find -name \*.1 -delete
+	fi
+}
+
 _get_triplet() {
 	if [ -z "$XBPS_TRIPLET" ]; then
 		echo $(

From 6a5e4f2dd647ff6825bd1729db48aa28fec61f83 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Tue, 4 Jan 2022 20:42:09 -0800
Subject: [PATCH 2/3] gcc: update to 11.2.1git20211128

---
 common/shlibs                                 |   2 +-
 srcpkgs/gcc/files/libgnarl-musl.patch         |  39 +++--
 srcpkgs/gcc/files/libssp-musl.patch           |  49 +-----
 ...upport-for-musl-typedef-macro-guards.patch | 106 +++++++++++++
 srcpkgs/gcc/patches/fsplit-stack-musl.patch   | 112 ++++++++++++++
 .../gcc/patches/libgcc-ibm128-no-tag.patch    |  21 +--
 srcpkgs/gcc/patches/musl-ada.patch            | 141 ++++++++++--------
 srcpkgs/gcc/template                          |  30 ++--
 8 files changed, 352 insertions(+), 148 deletions(-)
 create mode 100644 srcpkgs/gcc/patches/0040-stddef.h-add-support-for-musl-typedef-macro-guards.patch
 create mode 100644 srcpkgs/gcc/patches/fsplit-stack-musl.patch

diff --git a/common/shlibs b/common/shlibs
index 999d3ad714b8..cbfc366082d8 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -58,7 +58,7 @@ libcc1plugin.so.0 gcc-6.2.1_1
 libitm.so.1 libitm-4.7.3_1
 liblto_plugin.so.0 gcc-4.7.3_1
 libgcc_s.so.1 libgcc-4.4.0_1
-libgo.so.16 libgo-10.2.0_1
+libgo.so.19 libgo-11.2.0_1
 libperl.so.5.34 perl-5.34.0_1
 libgmp.so.10 gmp-5.0.1_1
 libgmpxx.so.4 gmpxx-6.0.0_2
diff --git a/srcpkgs/gcc/files/libgnarl-musl.patch b/srcpkgs/gcc/files/libgnarl-musl.patch
index 99a734c42c90..ec60c82f9289 100644
--- a/srcpkgs/gcc/files/libgnarl-musl.patch
+++ b/srcpkgs/gcc/files/libgnarl-musl.patch
@@ -2,10 +2,16 @@ Source: Alpine Linux
 Upstream: Unknown
 Reason: Patch libgnarl to not use function missing from musl.
 
-diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/libgnarl/s-osinte__linux.ads
---- a/gcc/ada/libgnarl/s-osinte__linux.ads	2018-01-11 00:55:25.000000000 -0800
-+++ b/gcc/ada/libgnarl/s-osinte__linux.ads	2018-11-01 16:16:23.372452951 -0700
-@@ -394,12 +394,6 @@ package System.OS_Interface is
+---
+ gcc/ada/libgnarl/s-osinte__linux.ads | 11 ------
+ gcc/ada/libgnarl/s-taprop__linux.adb | 53 ++--------------------------
+ 2 files changed, 3 insertions(+), 61 deletions(-)
+
+diff --git a/gcc/ada/libgnarl/s-osinte__linux.ads b/gcc/ada/libgnarl/s-osinte__linux.ads
+index 2272f83d68d..1d78456544a 100644
+--- a/gcc/ada/libgnarl/s-osinte__linux.ads
++++ b/gcc/ada/libgnarl/s-osinte__linux.ads
+@@ -401,12 +401,6 @@ package System.OS_Interface is
     PTHREAD_RWLOCK_PREFER_WRITER_NP              : constant := 1;
     PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP : constant := 2;
  
@@ -18,7 +24,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/l
     function pthread_rwlock_init
       (mutex : access pthread_rwlock_t;
        attr  : access pthread_rwlockattr_t) return int;
-@@ -464,11 +458,6 @@ package System.OS_Interface is
+@@ -468,11 +462,6 @@ package System.OS_Interface is
        protocol : int) return int;
     pragma Import (C, pthread_mutexattr_setprotocol);
  
@@ -30,10 +36,11 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/l
     type struct_sched_param is record
        sched_priority : int;  --  scheduling priority
     end record;
-diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/libgnarl/s-taprop__linux.adb
---- a/gcc/ada/libgnarl/s-taprop__linux.adb	2018-01-11 00:55:25.000000000 -0800
-+++ b/gcc/ada/libgnarl/s-taprop__linux.adb	2018-11-13 11:28:36.433964449 -0800
-@@ -202,9 +202,6 @@ package body System.Task_Primitives.Oper
+diff --git a/gcc/ada/libgnarl/s-taprop__linux.adb b/gcc/ada/libgnarl/s-taprop__linux.adb
+index 757a6cdfdad..82df94f6a00 100644
+--- a/gcc/ada/libgnarl/s-taprop__linux.adb
++++ b/gcc/ada/libgnarl/s-taprop__linux.adb
+@@ -198,9 +198,6 @@ package body System.Task_Primitives.Operations is
     pragma Import
       (C, GNAT_pthread_condattr_setup, "__gnat_pthread_condattr_setup");
  
@@ -43,7 +50,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
     --  We do not have pragma Linker_Options ("-lcap"); here, because this
     --  library is not present on many Linux systems. 'libcap' is the Linux
     --  "capabilities" library, called by __gnat_has_cap_sys_nice.
-@@ -214,38 +211,6 @@ package body System.Task_Primitives.Oper
+@@ -210,38 +207,6 @@ package body System.Task_Primitives.Operations is
     --  Convert Ada priority to Linux priority. Priorities are 1 .. 99 on
     --  GNU/Linux, so we map 0 .. 98 to 1 .. 99.
  
@@ -76,13 +83,13 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
 -      return Ceiling_Support;
 -   end Get_Ceiling_Support;
 -
--   pragma Warnings (Off, "non-static call not allowed in preelaborated unit");
+-   pragma Warnings (Off, "non-preelaborable call not allowed*");
 -   Ceiling_Support : constant Boolean := Get_Ceiling_Support;
--   pragma Warnings (On, "non-static call not allowed in preelaborated unit");
+-   pragma Warnings (On, "non-preelaborable call not allowed*");
     --  True if the locking policy is Ceiling_Locking, and the current process
     --  has permission to use this policy. The process has permission if it is
     --  running as 'root', or if the capability was set by the setcap command,
-@@ -348,7 +313,9 @@ package body System.Task_Primitives.Oper
+@@ -344,7 +309,9 @@ package body System.Task_Primitives.Operations is
     -- Init_Mutex --
     ----------------
  
@@ -92,7 +99,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
        Mutex_Attr : aliased pthread_mutexattr_t;
        Result, Result_2 : C.int;
  
-@@ -360,16 +327,7 @@ package body System.Task_Primitives.Oper
+@@ -356,16 +323,7 @@ package body System.Task_Primitives.Operations is
           return Result;
        end if;
  
@@ -110,7 +117,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
           Result := pthread_mutexattr_setprotocol
             (Mutex_Attr'Access, PTHREAD_PRIO_INHERIT);
           pragma Assert (Result = 0);
-@@ -409,11 +367,6 @@ package body System.Task_Primitives.Oper
+@@ -405,11 +363,6 @@ package body System.Task_Primitives.Operations is
              Result := pthread_rwlockattr_init (RWlock_Attr'Access);
              pragma Assert (Result = 0);
  
@@ -122,4 +129,6 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
              Result := pthread_rwlock_init (L.RW'Access, RWlock_Attr'Access);
  
              pragma Assert (Result in 0 | ENOMEM);
+-- 
+2.34.0
 
diff --git a/srcpkgs/gcc/files/libssp-musl.patch b/srcpkgs/gcc/files/libssp-musl.patch
index b21a2c29e57c..ed4444dcdc52 100644
--- a/srcpkgs/gcc/files/libssp-musl.patch
+++ b/srcpkgs/gcc/files/libssp-musl.patch
@@ -1,19 +1,9 @@
-First part taken from Alpine.
-
-Second part added to prevent gccgo from thinking it can -fsplit-stack on musl.
+Taken from Alpine.
 
 --- a/gcc/gcc.c
 +++ b/gcc/gcc.c
-@@ -874,10 +874,15 @@ proper position among the other output files.  */
- #define LINK_GCC_C_SEQUENCE_SPEC "%G %{!nolibc:%L %G}"
- #endif
+@@ -997,8 +997,7 @@ proper position among the other output files.  */
  
-+#ifdef ENABLE_DEFAULT_SSP
-+#define NO_SSP_SPEC "%{nostdlib|nodefaultlibs|ffreestanding:-fno-stack-protector} "
-+#else
-+#define NO_SSP_SPEC ""
-+#endif
-+
  #ifndef LINK_SSP_SPEC
  #ifdef TARGET_LIBC_PROVIDES_SSP
 -#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
@@ -22,15 +12,6 @@ Second part added to prevent gccgo from thinking it can -fsplit-stack on musl.
  #else
  #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
  		       "|fstack-protector-strong|fstack-protector-explicit" \
-@@ -1155,7 +1160,7 @@ static const char *cc1_options =
-  %{-version:--version}\
-  %{-help=*:--help=%*}\
-  %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %b.s}}}\
-- %{fsyntax-only:-o %j} %{-param*}\
-+ %{fsyntax-only:-o %j} %{-param*} " NO_SSP_SPEC "\
-  %{coverage:-fprofile-arcs -ftest-coverage}\
-  %{fprofile-arcs|fprofile-generate*|coverage:\
-    %{!fprofile-update=single:\
 --- a/gcc/params.opt
 +++ b/gcc/params.opt
 @@ -853,7 +853,7 @@ Common Joined UInteger Var(param_ssa_name_def_chain_limit) Init(512) Param Optim
@@ -42,29 +23,3 @@ Second part added to prevent gccgo from thinking it can -fsplit-stack on musl.
  The lower bound for a buffer to be considered for stack smashing protection.
  
  -param=stack-clash-protection-guard-size=
---- a/gcc/config/i386/gnu-user-common.h
-+++ b/gcc/config/i386/gnu-user-common.h
-@@ -64,9 +64,3 @@ along with GCC; see the file COPYING3.  If not see
- 
- /* Static stack checking is supported by means of probes.  */
- #define STACK_CHECK_STATIC_BUILTIN 1
--
--/* We only build the -fsplit-stack support in libgcc if the
--   assembler has full support for the CFI directives.  */
--#if HAVE_GAS_CFI_PERSONALITY_DIRECTIVE
--#define TARGET_CAN_SPLIT_STACK
--#endif
---- a/gcc/config/i386/gnu.h
-+++ b/gcc/config/i386/gnu.h
-@@ -40,11 +40,6 @@ along with GCC.  If not, see <http://www.gnu.org/licenses/>.
- /* i386 glibc provides __stack_chk_guard in %gs:0x14.  */
- #define TARGET_THREAD_SSP_OFFSET        0x14
- 
--/* We only build the -fsplit-stack support in libgcc if the
--   assembler has full support for the CFI directives.  */
--#if HAVE_GAS_CFI_PERSONALITY_DIRECTIVE
--#define TARGET_CAN_SPLIT_STACK
--#endif
- /* We steal the last transactional memory word.  */
- #define TARGET_THREAD_SPLIT_STACK_OFFSET 0x30
- #endif
diff --git a/srcpkgs/gcc/patches/0040-stddef.h-add-support-for-musl-typedef-macro-guards.patch b/srcpkgs/gcc/patches/0040-stddef.h-add-support-for-musl-typedef-macro-guards.patch
new file mode 100644
index 000000000000..c22f7f43f3d7
--- /dev/null
+++ b/srcpkgs/gcc/patches/0040-stddef.h-add-support-for-musl-typedef-macro-guards.patch
@@ -0,0 +1,106 @@
+From 5a76cf60df5c9ba274f1d0dcd79fc0cbad9d0fe0 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
+Date: Thu, 25 Nov 2021 17:44:04 +0100
+Subject: [PATCH] stddef.h: add support for musl typedef macro guards
+
+The stddef.h header checks/sets various hardcoded toolchain/os specific
+macro guards to prevent redefining types such as ptrdiff_t, wchar_t, or
+size_t. However, without this patch, the file does not check/set the
+typedef macro guards for musl libc. This causes types such as size_t to
+be defined twice for files which include both musl's stddef.h as well as
+GCC's ginclude/stddef.h. This is, for example, the case for
+libgo/sysinfo.c. If libgo/sysinfo.c has multiple typedefs for size_t
+this confuses -fdump-go-spec and causes size_t not to be included in the
+generated type definitions thereby causing a gcc-go compilation failure
+on musl with the following error message:
+
+	sysinfo.go:7765:13: error: use of undefined type '_size_t'
+	 7765 | type Size_t _size_t
+	      |             ^
+	libcall_posix.go:49:35: error: non-integer len argument in make
+	   49 |                 b := make([]byte, len)
+	      |
+
+This commit fixes this issue by ensuring that ptrdiff_t, wchar_t, and size_t
+are only defined once in the pre-processed libgo/sysinfo.c file by enhancing
+gcc/ginclude/stddef.h with musl-specific typedef macro guards.
+---
+ gcc/ginclude/stddef.h | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/gcc/ginclude/stddef.h b/gcc/ginclude/stddef.h
+index 66619fe43b1..50d710a5ab9 100644
+--- a/gcc/ginclude/stddef.h
++++ b/gcc/ginclude/stddef.h
+@@ -128,6 +128,7 @@ _TYPE_wchar_t;
+ #ifndef ___int_ptrdiff_t_h
+ #ifndef _GCC_PTRDIFF_T
+ #ifndef _PTRDIFF_T_DECLARED /* DragonFly */
++#ifndef __DEFINED_ptrdiff_t /* musl libc */
+ #define _PTRDIFF_T
+ #define _T_PTRDIFF_
+ #define _T_PTRDIFF
+@@ -137,10 +138,12 @@ _TYPE_wchar_t;
+ #define ___int_ptrdiff_t_h
+ #define _GCC_PTRDIFF_T
+ #define _PTRDIFF_T_DECLARED
++#define __DEFINED_ptrdiff_t
+ #ifndef __PTRDIFF_TYPE__
+ #define __PTRDIFF_TYPE__ long int
+ #endif
+ typedef __PTRDIFF_TYPE__ ptrdiff_t;
++#endif /* __DEFINED_ptrdiff_t */
+ #endif /* _PTRDIFF_T_DECLARED */
+ #endif /* _GCC_PTRDIFF_T */
+ #endif /* ___int_ptrdiff_t_h */
+@@ -174,6 +177,7 @@ typedef __PTRDIFF_TYPE__ ptrdiff_t;
+ #ifndef _SIZE_T_DEFINED
+ #ifndef _BSD_SIZE_T_DEFINED_	/* Darwin */
+ #ifndef _SIZE_T_DECLARED	/* FreeBSD 5 */
++#ifndef __DEFINED_size_t	/* musl libc */
+ #ifndef ___int_size_t_h
+ #ifndef _GCC_SIZE_T
+ #ifndef _SIZET_
+@@ -191,6 +195,7 @@ typedef __PTRDIFF_TYPE__ ptrdiff_t;
+ #define _SIZE_T_DEFINED
+ #define _BSD_SIZE_T_DEFINED_	/* Darwin */
+ #define _SIZE_T_DECLARED	/* FreeBSD 5 */
++#define __DEFINED_size_t	/* musl libc */
+ #define ___int_size_t_h
+ #define _GCC_SIZE_T
+ #define _SIZET_
+@@ -215,6 +220,7 @@ typedef long ssize_t;
+ #endif /* _SIZET_ */
+ #endif /* _GCC_SIZE_T */
+ #endif /* ___int_size_t_h */
++#endif /* __DEFINED_size_t */
+ #endif /* _SIZE_T_DECLARED */
+ #endif /* _BSD_SIZE_T_DEFINED_ */
+ #endif /* _SIZE_T_DEFINED */
+@@ -251,6 +257,7 @@ typedef long ssize_t;
+ #ifndef _BSD_WCHAR_T_DEFINED_    /* Darwin */
+ #ifndef _BSD_RUNE_T_DEFINED_	/* Darwin */
+ #ifndef _WCHAR_T_DECLARED /* FreeBSD 5 */
++#ifndef __DEFINED_wchar_t /* musl libc */
+ #ifndef _WCHAR_T_DEFINED_
+ #ifndef _WCHAR_T_DEFINED
+ #ifndef _WCHAR_T_H
+@@ -272,6 +279,7 @@ typedef long ssize_t;
+ #define __INT_WCHAR_T_H
+ #define _GCC_WCHAR_T
+ #define _WCHAR_T_DECLARED
++#define __DEFINED_wchar_t
+ 
+ /* On BSD/386 1.1, at least, machine/ansi.h defines _BSD_WCHAR_T_
+    instead of _WCHAR_T_, and _BSD_RUNE_T_ (which, unlike the other
+@@ -326,6 +334,7 @@ typedef __WCHAR_TYPE__ wchar_t;
+ #endif
+ #endif
+ #endif
++#endif /* __DEFINED_wchar_t */
+ #endif /* _WCHAR_T_DECLARED */
+ #endif /* _BSD_RUNE_T_DEFINED_ */
+ #endif
+-- 
+2.34.0
+
diff --git a/srcpkgs/gcc/patches/fsplit-stack-musl.patch b/srcpkgs/gcc/patches/fsplit-stack-musl.patch
new file mode 100644
index 000000000000..6b7b60d9d04b
--- /dev/null
+++ b/srcpkgs/gcc/patches/fsplit-stack-musl.patch
@@ -0,0 +1,112 @@
+Subject: [PATCH v2] Disable -fsplit-stack support on non-glibc targets
+From: Sören Tempel <soeren@soeren-tempel.net>
+
+The -fsplit-stack option requires the pthread_t TCB definition in the
+libc to provide certain struct fields at specific hardcoded offsets. As
+far as I know, only glibc provides these fields at the required offsets.
+Most notably, musl libc does not have these fields. However, since gcc
+accesses the fields using a fixed offset, this does not cause a
+compile-time error, but instead results in a silent memory corruption at
+run-time with musl libc. For example, on s390x libgcc's
+__stack_split_initialize CTOR will overwrite the cancel field in the
+pthread_t TCB on musl.
+
+The -fsplit-stack option is used within the gcc code base itself by
+gcc-go (if available). On musl-based systems with split-stack support
+(i.e. s390x or x86) this causes Go programs compiled with gcc-go to
+misbehave at run-time.
+
+This patch fixes gcc-go on musl by disabling -fsplit-stack in gcc itself
+since it is not supported on non-glibc targets anyhow. This is achieved
+by checking if gcc targets a glibc-based system. This check has been
+added for x86 and s390x, the rs6000 config already checks for
+TARGET_GLIBC_MAJOR. Other architectures do not have split-stack
+support. With this patch applied, the gcc-go configure script will
+detect that -fsplit-stack support is not available and will not use it.
+
+See https://www.openwall.com/lists/musl/2012/10/16/12
+
+This patch was written under the assumption that glibc is the only libc
+implementation which supports the required fields at the required
+offsets in the pthread_t TCB. The patch has been tested on Alpine Linux
+Edge on the s390x and x86 architectures by bootstrapping Google's Go
+implementation with gcc-go.
+
+Signed-off-by: Sören Tempel <soeren@soeren-tempel.net>
+
+gcc/ChangeLog:
+
+	* common/config/s390/s390-common.c (s390_supports_split_stack):
+	Only support split-stack on glibc targets.
+	* config/i386/gnu-user-common.h (STACK_CHECK_STATIC_BUILTIN): Ditto.
+	* config/i386/gnu.h (defined): Ditto.
+---
+This version of the patch addresses feedback by Andrew Pinski and uses
+OPTION_GLIBC as well as opts->x_linux_libc == LIBC_GLIBC to detect glibc
+targets (instead of relying on TARGET_GLIBC_MAJOR).
+
+ gcc/common/config/s390/s390-common.c | 11 +++++++++--
+ gcc/config/i386/gnu-user-common.h    |  5 +++--
+ gcc/config/i386/gnu.h                |  6 +++++-
+ 3 files changed, 17 insertions(+), 5 deletions(-)
+
+diff --git a/gcc/common/config/s390/s390-common.c b/gcc/common/config/s390/s390-common.c
+index b6bc8501742..fc86e0bc5e7 100644
+--- a/gcc/common/config/s390/s390-common.c
++++ b/gcc/common/config/s390/s390-common.c
+@@ -116,13 +116,20 @@ s390_handle_option (struct gcc_options *opts ATTRIBUTE_UNUSED,
+ 
+ /* -fsplit-stack uses a field in the TCB, available with glibc-2.23.
+    We don't verify it, since earlier versions just have padding at
+-   its place, which works just as well.  */
++   its place, which works just as well. For other libc implementations
++   we disable the feature entirely to avoid corrupting the TCB.  */
+ 
+ static bool
+ s390_supports_split_stack (bool report ATTRIBUTE_UNUSED,
+ 			   struct gcc_options *opts ATTRIBUTE_UNUSED)
+ {
+-  return true;
++  if (opts->x_linux_libc == LIBC_GLIBC) {
++    return true;
++  } else {
++    if (report)
++      error("%<-fsplit-stack%> currently only supported on GNU/Linux");
++    return false;
++  }
+ }
+ 
+ #undef TARGET_DEFAULT_TARGET_FLAGS
+diff --git a/gcc/config/i386/gnu-user-common.h b/gcc/config/i386/gnu-user-common.h
+index 00226f5a455..6e13315b5a3 100644
+--- a/gcc/config/i386/gnu-user-common.h
++++ b/gcc/config/i386/gnu-user-common.h
+@@ -66,7 +66,8 @@ along with GCC; see the file COPYING3.  If not see
+ #define STACK_CHECK_STATIC_BUILTIN 1
+ 
+ /* We only build the -fsplit-stack support in libgcc if the
+-   assembler has full support for the CFI directives.  */
+-#if HAVE_GAS_CFI_PERSONALITY_DIRECTIVE
++   assembler has full support for the CFI directives and
++   targets glibc.  */
++#if HAVE_GAS_CFI_PERSONALITY_DIRECTIVE && OPTION_GLIBC
+ #define TARGET_CAN_SPLIT_STACK
+ #endif
+diff --git a/gcc/config/i386/gnu.h b/gcc/config/i386/gnu.h
+index 25fbc07f58c..adfe817201e 100644
+--- a/gcc/config/i386/gnu.h
++++ b/gcc/config/i386/gnu.h
+@@ -35,7 +35,11 @@ along with GCC.  If not, see <http://www.gnu.org/licenses/>.
+    crti.o%s %{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s}"
+ #endif
+ 
+-#ifdef TARGET_LIBC_PROVIDES_SSP
++/* -fsplit-stack uses a field in the TCB at a fixed offset. This
++   field is only available for glibc. Disable -fsplit-stack for
++   other libc implementation to avoid silent TCB corruptions.  */
++
++#if defined (TARGET_LIBC_PROVIDES_SSP) && OPTION_GLIBC
+ 
+ /* i386 glibc provides __stack_chk_guard in %gs:0x14.  */
+ #define TARGET_THREAD_SSP_OFFSET        0x14
+
diff --git a/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch b/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
index bdf5c75d917d..c2acec586cfc 100644
--- a/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
+++ b/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
@@ -17,22 +17,25 @@ diff --git a/libgcc/config/rs6000/t-ibm-ldouble b/libgcc/config/rs6000/t-ibm-ldo
 index b132784..fb5eca8 100644
 --- a/libgcc/config/rs6000/t-ibm-ldouble
 +++ b/libgcc/config/rs6000/t-ibm-ldouble
-@@ -1,6 +1,6 @@
- # GCC 128-bit long double support routines.
- LIB2ADD += $(srcdir)/config/rs6000/ibm-ldouble.c
+@@ -3,4 +3,6 @@
  
--HOST_LIBGCC2_CFLAGS += -mlong-double-128
-+HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-gnu-attribute
+ HOST_LIBGCC2_CFLAGS += -mlong-double-128
  
++HOST_LIBGCC2_CFLAGS += -mno-gnu-attribute
++
  SHLIB_MAPFILES += $(srcdir)/config/rs6000/libgcc-ibm-ldouble.ver
 diff --git a/libgcc/config/rs6000/t-linux b/libgcc/config/rs6000/t-linux
 index 4f6d4c4..fa93bb6 100644
 --- a/libgcc/config/rs6000/t-linux
 +++ b/libgcc/config/rs6000/t-linux
-@@ -1,3 +1,3 @@
- SHLIB_MAPFILES += $(srcdir)/config/rs6000/libgcc-glibc.ver
+@@ -2,6 +2,8 @@
  
--HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-minimal-toc
-+HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-gnu-attribute -mno-minimal-toc
+ HOST_LIBGCC2_CFLAGS += -mlong-double-128
+ 
++HOST_LIBGCC2_CFLAGS += -mno-gnu-attribute
++
+ # This is a way of selecting -mcmodel=small for ppc64, which gives
+ # smaller and faster libgcc code.  Directly specifying -mcmodel=small
+ # would need to take into account targets for which -mcmodel is invalid.
 -- 
 2.24.0
diff --git a/srcpkgs/gcc/patches/musl-ada.patch b/srcpkgs/gcc/patches/musl-ada.patch
index c2c79df0adb7..3a7075f96311 100644
--- a/srcpkgs/gcc/patches/musl-ada.patch
+++ b/srcpkgs/gcc/patches/musl-ada.patch
@@ -1,20 +1,81 @@
+From 0b879c9a3ef83b3b08a0d72bfe89816d52489408 Mon Sep 17 00:00:00 2001
+From: Ariadne Conill <ariadne@dereferenced.org>
+Date: Fri, 21 Aug 2020 07:07:48 +0000
+Subject: [PATCH] ada: musl support fixes
+
+---
+ gcc/ada/Makefile.rtl | 10 +++++-----
+ gcc/ada/adaint.c     | 34 +++++++++++++++++++---------------
+ gcc/ada/adaint.h     | 10 ++++------
+ gcc/ada/terminals.c  |  8 ++++----
+ 4 files changed, 32 insertions(+), 30 deletions(-)
+
+diff --git a/gcc/ada/Makefile.rtl b/gcc/ada/Makefile.rtl
+index 987eff0abba..03c8bc6f496 100644
+--- a/gcc/ada/Makefile.rtl
++++ b/gcc/ada/Makefile.rtl
+@@ -1748,7 +1748,7 @@ ifeq ($(strip $(filter-out %86 linux%,$(target_cpu) $(target_os))),)
+   s-intman.adb<libgnarl/s-intman__posix.adb \
+   s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
+   $(TRASYM_DWARF_UNIX_PAIRS) \
+-  s-tsmona.adb<libgnat/s-tsmona__linux.adb \
++  s-tsmona.adb<libgnat/s-tsmona.adb \
+   a-exetim.adb<libgnarl/a-exetim__posix.adb \
+   a-exetim.ads<libgnarl/a-exetim__default.ads \
+   s-linux.ads<libgnarl/s-linux.ads \
+@@ -2355,7 +2355,7 @@ ifeq ($(strip $(filter-out powerpc% linux%,$(target_cpu) $(target_os))),)
+   s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
+   s-taspri.ads<libgnarl/s-taspri__posix.ads \
+   $(TRASYM_DWARF_UNIX_PAIRS) \
+-  s-tsmona.adb<libgnat/s-tsmona__linux.adb \
++  s-tsmona.adb<libgnat/s-tsmona.adb \
+   $(ATOMICS_TARGET_PAIRS) \
+   $(ATOMICS_BUILTINS_TARGET_PAIRS) \
+   system.ads<libgnat/system-linux-ppc.ads
+@@ -2386,7 +2386,7 @@ ifeq ($(strip $(filter-out powerpc% linux%,$(target_cpu) $(target_os))),)
+ endif
+ 
+ # ARM linux, GNU eabi
+-ifeq ($(strip $(filter-out arm% linux-gnueabi%,$(target_cpu) $(target_os))),)
++ifeq ($(strip $(filter-out arm% linux-gnueabi% linux-musleabi% linux-muslgnueabi%,$(target_cpu) $(target_os))),)
+   LIBGNAT_TARGET_PAIRS = \
+   a-intnam.ads<libgnarl/a-intnam__linux.ads \
+   s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
+@@ -2597,7 +2597,7 @@ ifeq ($(strip $(filter-out %ia64 linux%,$(target_cpu) $(target_os))),)
+   s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
+   s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
+   $(TRASYM_DWARF_UNIX_PAIRS) \
+-  s-tsmona.adb<libgnat/s-tsmona__linux.adb \
++  s-tsmona.adb<libgnat/s-tsmona.adb \
+   $(ATOMICS_TARGET_PAIRS) \
+   $(ATOMICS_BUILTINS_TARGET_PAIRS) \
+   $(GNATRTL_128BIT_PAIRS) \
+@@ -2699,7 +2699,7 @@ ifeq ($(strip $(filter-out %x86_64 linux%,$(target_cpu) $(target_os))),)
+   s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
+   s-taspri.ads<libgnarl/s-taspri__posix.ads \
+   $(TRASYM_DWARF_UNIX_PAIRS) \
+-  s-tsmona.adb<libgnat/s-tsmona__linux.adb \
++  s-tsmona.adb<libgnat/s-tsmona.adb \
+   $(ATOMICS_TARGET_PAIRS) \
+   $(X86_64_TARGET_PAIRS) \
+   $(GNATRTL_128BIT_PAIRS) \
 diff --git a/gcc/ada/adaint.c b/gcc/ada/adaint.c
-index 3b0aea9..ee0bb69 100644
+index 2e54e69643a..e7e6507e2e0 100644
 --- a/gcc/ada/adaint.c
 +++ b/gcc/ada/adaint.c
-@@ -76,6 +76,11 @@
+@@ -91,6 +91,11 @@
  #include <sys/param.h>
  #include <sys/pstat.h>
  #endif
 + 
-+#if defined (linux)
++#if defined (linux) || defined(__linux__)
 +#define _GNU_SOURCE 1
 +#include <sched.h>
 +#endif
  
  #ifdef __PikeOS__
  #define __BSD_VISIBLE 1
-@@ -3255,7 +3260,6 @@ __gnat_lwp_self (void)
+@@ -3442,7 +3447,6 @@ __gnat_lwp_self (void)
  #endif
  
  #if defined (__linux__)
@@ -22,7 +83,7 @@ index 3b0aea9..ee0bb69 100644
  
  /* glibc versions earlier than 2.7 do not define the routines to handle
     dynamically allocated CPU sets. For these targets, we use the static
-@@ -3265,7 +3269,7 @@ __gnat_lwp_self (void)
+@@ -3452,7 +3456,7 @@ __gnat_lwp_self (void)
  
  /* Dynamic cpu sets */
  
@@ -31,7 +92,7 @@ index 3b0aea9..ee0bb69 100644
  __gnat_cpu_alloc (size_t count)
  {
    return CPU_ALLOC (count);
-@@ -3278,33 +3282,33 @@ __gnat_cpu_alloc_size (size_t count)
+@@ -3465,33 +3469,33 @@ __gnat_cpu_alloc_size (size_t count)
  }
  
  void
@@ -73,7 +134,7 @@ index 3b0aea9..ee0bb69 100644
  }
  
  size_t
-@@ -3314,23 +3318,23 @@ __gnat_cpu_alloc_size (size_t count ATTRIBUTE_UNUSED)
+@@ -3501,23 +3505,23 @@ __gnat_cpu_alloc_size (size_t count ATTRIBUTE_UNUSED)
  }
  
  void
@@ -103,10 +164,10 @@ index 3b0aea9..ee0bb69 100644
  #endif /* !CPU_ALLOC */
  #endif /* __linux__ */
 diff --git a/gcc/ada/adaint.h b/gcc/ada/adaint.h
-index 0d12f7e..a063b47 100644
+index 85997b9ba68..fd10e5b5589 100644
 --- a/gcc/ada/adaint.h
 +++ b/gcc/ada/adaint.h
-@@ -316,13 +316,11 @@ extern void   *__gnat_lwp_self			   (void);
+@@ -325,13 +325,11 @@ extern void   *__gnat_lwp_self			   (void);
  
  /* Routines for interface to required CPU set primitives */
  
@@ -124,56 +185,11 @@ index 0d12f7e..a063b47 100644
  #endif
  
  #if defined (_WIN32)
---- a/gcc/ada/Makefile.rtl	2020-07-23 08:35:17.052381336 +0200
-+++ b/gcc/ada/Makefile.rtl	2020-07-23 08:35:17.052381336 +0200
-@@ -1533,7 +1533,7 @@
-   s-intman.adb<libgnarl/s-intman__posix.adb \
-   s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
-   $(TRASYM_DWARF_UNIX_PAIRS) \
--  s-tsmona.adb<libgnat/s-tsmona__linux.adb \
-+  s-tsmona.adb<libgnat/s-tsmona.adb \
-   a-exetim.adb<libgnarl/a-exetim__posix.adb \
-   a-exetim.ads<libgnarl/a-exetim__default.ads \
-   s-linux.ads<libgnarl/s-linux.ads \
-@@ -2083,7 +2083,7 @@
-   s-osinte.adb<libgnarl/s-osinte__posix.adb \
-   s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
-   $(TRASYM_DWARF_UNIX_PAIRS) \
--  s-tsmona.adb<libgnat/s-tsmona__linux.adb \
-+  s-tsmona.adb<libgnat/s-tsmona.adb \
-   $(ATOMICS_TARGET_PAIRS) \
-   $(ATOMICS_BUILTINS_TARGET_PAIRS) \
-   system.ads<libgnat/system-linux-ppc.ads
-@@ -2112,7 +2112,7 @@
- endif
- 
- # ARM linux, GNU eabi
--ifeq ($(strip $(filter-out arm% linux-gnueabi%,$(target_cpu) $(target_os))),)
-+ifeq ($(strip $(filter-out arm% linux-gnueabi% linux-musleabi% linux-muslgnueabi%,$(target_cpu) $(target_os))),)
-   LIBGNAT_TARGET_PAIRS = \
-   a-intnam.ads<libgnarl/a-intnam__linux.ads \
-   s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
-@@ -2305,7 +2305,7 @@
-   s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
-   s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
-   $(TRASYM_DWARF_UNIX_PAIRS) \
--  s-tsmona.adb<libgnat/s-tsmona__linux.adb \
-+  s-tsmona.adb<libgnat/s-tsmona.adb \
-   $(ATOMICS_TARGET_PAIRS) \
-   $(ATOMICS_BUILTINS_TARGET_PAIRS) \
-   system.ads<libgnat/system-linux-ia64.ads
-@@ -2401,7 +2401,7 @@
-   s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
-   s-taspri.ads<libgnarl/s-taspri__posix.ads \
-   $(TRASYM_DWARF_UNIX_PAIRS) \
--  s-tsmona.adb<libgnat/s-tsmona__linux.adb \
-+  s-tsmona.adb<libgnat/s-tsmona.adb \
-   $(ATOMICS_TARGET_PAIRS) \
-   $(X86_64_TARGET_PAIRS) \
-   system.ads<libgnat/system-linux-x86.ads
---- a/gcc/ada/terminals.c	2019-01-08 10:54:04.000000000 +0100
-+++ b/gcc/ada/terminals.c	2019-05-15 13:14:09.935742526 +0200
-@@ -1136,7 +1136,7 @@
+diff --git a/gcc/ada/terminals.c b/gcc/ada/terminals.c
+index ec9db3a6a4c..6f92e50dd67 100644
+--- a/gcc/ada/terminals.c
++++ b/gcc/ada/terminals.c
+@@ -1132,7 +1132,7 @@ __gnat_setup_winsize (void *desc ATTRIBUTE_UNUSED,
  /* POSIX does not specify how to open the master side of a terminal.Several
     methods are available (system specific):
        1- using a cloning device (USE_CLONE_DEVICE)
@@ -182,7 +198,7 @@ index 0d12f7e..a063b47 100644
        3- openpty                (USE_OPENPTY)
  
     When using the cloning device method, the macro USE_CLONE_DEVICE should
-@@ -1150,7 +1150,7 @@
+@@ -1146,7 +1146,7 @@ __gnat_setup_winsize (void *desc ATTRIBUTE_UNUSED,
  #if defined (__APPLE__) || defined (BSD)
  #define USE_OPENPTY
  #elif defined (__linux__)
@@ -191,7 +207,7 @@ index 0d12f7e..a063b47 100644
  #elif defined (__sun__)
  #define USE_CLONE_DEVICE "/dev/ptmx"
  #elif defined (_AIX)
-@@ -1199,8 +1199,8 @@
+@@ -1195,8 +1195,8 @@ allocate_pty_desc (pty_desc **desc) {
     int  master_fd   = -1;
     char *slave_name = NULL;
  
@@ -202,3 +218,6 @@ index 0d12f7e..a063b47 100644
  #elif defined (USE_OPENPTY)
    status = openpty (&master_fd, &slave_fd, NULL, NULL, NULL);
  #elif defined (USE_CLONE_DEVICE)
+-- 
+2.34.0
+
diff --git a/srcpkgs/gcc/template b/srcpkgs/gcc/template
index 09727ef34fb2..d7adc658eeb6 100644
--- a/srcpkgs/gcc/template
+++ b/srcpkgs/gcc/template
@@ -3,35 +3,35 @@
 # which use the version number.
 
 pkgname=gcc
-# we are using a 10-stable git snapshot alpine is using in order
-# to get regression fixes not yet incorporate into a stable release
-# it should be possible to switch back to stable with 10.3 or 11
-version=10.2.1pre1
-revision=3
-_patchver="${version%pre*}"
+# we are using an 11-stable 9b6ad13 git snapshot alpine is using
+# in order to get regression fixes not yet incorporated into the
+# latest stable release
+version=11.2.1git20211128
+revision=1
+_patchver="${version%git*}"
 _minorver="${_patchver%.*}"
 _majorver="${_minorver%.*}"
-_gmp_version=6.2.0
+_gmp_version=6.2.1
 _mpfr_version=4.1.0
-_mpc_version=1.1.0
-_isl_version=0.21
-wrksrc=gcc-${version/pre/_pre}
+_mpc_version=1.2.1
+_isl_version=0.24
+wrksrc=gcc-${version/git/_git}
 short_desc="GNU Compiler Collection"
 maintainer="Enno Boland <gottox@voidlinux.org>"
 homepage="http://gcc.gnu.org"
 license="GFDL-1.2-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
 # *-musl builders have issues fetching https://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz
 distfiles="
- https://dev.alpinelinux.org/~nenolod/gcc-${version/pre/_pre}.tar.xz
+ https://dev.alpinelinux.org/~nenolod/gcc-${version/git/_git}.tar.xz
  https://gmplib.org/download/gmp/gmp-${_gmp_version}.tar.xz
  ${GNU_SITE}/mpfr/mpfr-${_mpfr_version}.tar.xz
  ${GNU_SITE}/mpc/mpc-${_mpc_version}.tar.gz
  ${SOURCEFORGE_SITE}/libisl/isl-${_isl_version}.tar.bz2"
-checksum="772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 258e6cd51b3fbdfc185c716d55f82c08aff57df0c6fbd143cf6ed561267a1526
+checksum="a058c487c36f07a2c98ab2297c990136516cd7444f73199f0da8bf8232641d92
+ fd4829912cddd12f84181c3451cc752be224643e87fac497b69edddadc49b4f2
  0c98a3f1732ff6ca4ea690552079da9c597872d30e96ec28414ee23c95558a7f
- 6985c538143c1208dcb1ac42cedad6ff52e267b47e5f970183a3e75125b43c2e
- d18ca11f8ad1a39ab6d03d3dcb3365ab416720fcb65b42d69f34f51bf0a0e859"
+ 17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459
+ fcf78dd9656c10eb8cf9fbd5f59a0b6b01386205fe1934b3b287a0a1898145c0"
 
 nopie=yes
 lib32disabled=yes

From 9f344b4c442ead0f5365a0fa7246d0a5cbba2f23 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Tue, 4 Jan 2022 22:51:14 -0800
Subject: [PATCH 3/3] libtool: revbump for gcc update

---
 srcpkgs/libtool/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/libtool/template b/srcpkgs/libtool/template
index b9972df70341..46ddf4f1c70d 100644
--- a/srcpkgs/libtool/template
+++ b/srcpkgs/libtool/template
@@ -1,7 +1,7 @@
 # Template file for 'libtool'
 pkgname=libtool
 version=2.4.6
-revision=6
+revision=7
 build_style=gnu-configure
 hostmakedepends="texinfo perl automake help2man xz"
 depends="tar sed"

^ permalink raw reply	[flat|nested] 144+ messages in thread

* Re: gcc: update to 11.2.1git20211128
  2022-01-06  6:15 [PR PATCH] gcc: update to 11.2.1git20211128 Oreo639
@ 2022-01-26 19:41 ` dkwo
  2022-01-26 22:12 ` oreo639
                   ` (141 subsequent siblings)
  142 siblings, 0 replies; 144+ messages in thread
From: dkwo @ 2022-01-26 19:41 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 487 bytes --]

New comment by dkwo on void-packages repository

https://github.com/void-linux/void-packages/pull/34902#issuecomment-1022539606

Comment:
I was getting a bunch of `WARNING: usr/lib/*.so should be in -devel package` as well as
```
=> WARNING: libada-11.2.1git20211128_1: libgnarl-11.so not found in common/shlibs!
=> WARNING: libada-11.2.1git20211128_1: libgnat-11.so not found in common/shlibs!
=> WARNING: gcc-11.2.1git20211128_1: libcp1plugin.so.0 not found in common/shlibs!
```

^ permalink raw reply	[flat|nested] 144+ messages in thread

* Re: gcc: update to 11.2.1git20211128
  2022-01-06  6:15 [PR PATCH] gcc: update to 11.2.1git20211128 Oreo639
  2022-01-26 19:41 ` dkwo
@ 2022-01-26 22:12 ` oreo639
  2022-01-26 23:16 ` oreo639
                   ` (140 subsequent siblings)
  142 siblings, 0 replies; 144+ messages in thread
From: oreo639 @ 2022-01-26 22:12 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 210 bytes --]

New comment by oreo639 on void-packages repository

https://github.com/void-linux/void-packages/pull/34902#issuecomment-1022651196

Comment:
Thank you for pointing those out, I'll fix that when I am available.

^ permalink raw reply	[flat|nested] 144+ messages in thread

* Re: gcc: update to 11.2.1git20211128
  2022-01-06  6:15 [PR PATCH] gcc: update to 11.2.1git20211128 Oreo639
  2022-01-26 19:41 ` dkwo
  2022-01-26 22:12 ` oreo639
@ 2022-01-26 23:16 ` oreo639
  2022-01-26 23:16 ` [PR PATCH] [Updated] " oreo639
                   ` (139 subsequent siblings)
  142 siblings, 0 replies; 144+ messages in thread
From: oreo639 @ 2022-01-26 23:16 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 364 bytes --]

New comment by oreo639 on void-packages repository

https://github.com/void-linux/void-packages/pull/34902#issuecomment-1022651196

Comment:
> => WARNING: gcc-11.2.1git20211128_1: libcp1plugin.so.0 not found in common/shlibs!

`libcp1plugin.so.0` is in the current gcc 10 package and isn't in shlibs, so I assume that isn't an issue since nothing depends on it.

^ permalink raw reply	[flat|nested] 144+ messages in thread

* Re: [PR PATCH] [Updated] gcc: update to 11.2.1git20211128
  2022-01-06  6:15 [PR PATCH] gcc: update to 11.2.1git20211128 Oreo639
                   ` (2 preceding siblings ...)
  2022-01-26 23:16 ` oreo639
@ 2022-01-26 23:16 ` oreo639
  2022-01-26 23:25 ` oreo639
                   ` (138 subsequent siblings)
  142 siblings, 0 replies; 144+ messages in thread
From: oreo639 @ 2022-01-26 23:16 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1728 bytes --]

There is an updated pull request by oreo639 against master on the void-packages repository

https://github.com/oreo639/void-packages gcc11
https://github.com/void-linux/void-packages/pull/34902

gcc: update to 11.2.1git20211128
<!-- Uncomment relevant sections and delete options which are not applicable -->
[ci skip]

Note: depends on https://github.com/void-linux/void-packages/pull/32330
(Otherwise, it would work until you try recompiling glibc)

I tested this PR with glibc and it appears to work fine so far, aside from the issue mentioned earlier.
I also tested this PR with x86_64-musl, and it appears to run fine in a musl chroot, and recompiling and installing musl with gcc 11 doesn't appear to result in any issues.

Please let me know if there are any issues.

(Related: https://github.com/void-linux/void-packages/pull/34153)

#### Testing the changes
- I tested the changes in this PR: **briefly**

<!--
#### New package
- This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please [skip CI](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration)
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->

#### Local build testing
- I built this PR locally for my native architecture, (x86_64-glibc)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - x86_64-musl

A patch file from https://github.com/void-linux/void-packages/pull/34902.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-gcc11-34902.patch --]
[-- Type: text/x-diff, Size: 48850 bytes --]

From 3385c6500defc873cd57bf293c938f81421165d6 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Tue, 4 Jan 2022 20:41:41 -0800
Subject: [PATCH 1/3] binutils: update to 2.37

---
 ...e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch |  60 -----
 .../patches/bfd-close-file-descriptor.patch   | 232 ++++++++++++++++++
 .../patches/binutils-missing-man-pages.patch  |  32 +++
 .../patches/ppc64-revert-gnu-attributes.patch |  65 ++---
 srcpkgs/binutils/template                     |  19 +-
 5 files changed, 296 insertions(+), 112 deletions(-)
 delete mode 100644 srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch
 create mode 100644 srcpkgs/binutils/patches/bfd-close-file-descriptor.patch
 create mode 100644 srcpkgs/binutils/patches/binutils-missing-man-pages.patch

diff --git a/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch b/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch
deleted file mode 100644
index a55432d83cff..000000000000
--- a/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff Mon Sep 17 00:00:00 2001
-From: "H.J. Lu" <hjl.tools@gmail.com>
-Date: Mon, 16 Nov 2020 06:37:53 -0800
-Subject: [PATCH] elf: Set rel_from_abs to 1 for __ehdr_start
-
-bfdlink.h has
-
-  /* Symbol will be converted from absolute to section-relative.  Set for
-     symbols defined by a script from "dot" (also SEGMENT_START or ORIGIN)
-     outside of an output section statement.  */
-  unsigned int rel_from_abs : 1;
-
-linker.c has
-
-.{* Return TRUE if the symbol described by a linker hash entry H
-.   is going to be absolute.  Linker-script defined symbols can be
-.   converted from absolute to section-relative ones late in the
-.   link.  Use this macro to correctly determine whether the symbol
-.   will actually end up absolute in output.  *}
-.#define bfd_is_abs_symbol(H) \
-.  (((H)->type == bfd_link_hash_defined \
-.    || (H)->type == bfd_link_hash_defweak) \
-.   && bfd_is_abs_section ((H)->u.def.section) \
-.   && !(H)->rel_from_abs)
-.
-
-Set rel_from_abs to 1 for __ehdr_start which will be converted from
-absolute to section-relative in assign_file_positions_for_load_sections.
-
-	PR ld/26869
-	* ldelf.c (ldelf_before_allocation): Set rel_from_abs to 1 for
-	__ehdr_start.
-	* testsuite/ld-i386/i386.exp: Run pr26869.
-	* testsuite/ld-i386/pr26869.d: New file.
-	* testsuite/ld-i386/pr26869.s: Likewise.
-
-(cherry picked from commit cbd5b99cce073273f668b154d4514e8e7e7ccc51)
----
- ld/ChangeLog                   |  9 +++++++++
- ld/ldelf.c                     |  2 ++
- ld/testsuite/ld-i386/i386.exp  |  1 +
- ld/testsuite/ld-i386/pr26869.d | 14 ++++++++++++++
- ld/testsuite/ld-i386/pr26869.s |  3 +++
- 5 files changed, 29 insertions(+)
- create mode 100644 ld/testsuite/ld-i386/pr26869.d
- create mode 100644 ld/testsuite/ld-i386/pr26869.s
-
-diff --git a/ld/ldelf.c b/ld/ldelf.c
-index bada3ade2d7..831d032fe56 100644
---- a/ld/ldelf.c
-+++ b/ld/ldelf.c
-@@ -1589,6 +1589,8 @@ ldelf_before_allocation (char *audit, char *depaudit,
- 		      (char *) &ehdr_start->u + sizeof ehdr_start->u.def.next,
- 		      sizeof ehdr_start_save_u);
- 	      ehdr_start->type = bfd_link_hash_defined;
-+	      /* It will be converted to section-relative later.  */
-+	      ehdr_start->rel_from_abs = 1;
- 	      ehdr_start->u.def.section = bfd_abs_section_ptr;
- 	      ehdr_start->u.def.value = 0;
- 	    }
diff --git a/srcpkgs/binutils/patches/bfd-close-file-descriptor.patch b/srcpkgs/binutils/patches/bfd-close-file-descriptor.patch
new file mode 100644
index 000000000000..192d4e02d456
--- /dev/null
+++ b/srcpkgs/binutils/patches/bfd-close-file-descriptor.patch
@@ -0,0 +1,232 @@
+From 1c611b40e6bfc8029bff7696814330b5bc0ee5c0 Mon Sep 17 00:00:00 2001
+From: "H.J. Lu" <hjl.tools@gmail.com>
+Date: Mon, 26 Jul 2021 05:59:55 -0700
+Subject: [PATCH] bfd: Close the file descriptor if there is no archive fd
+
+Close the file descriptor if there is no archive plugin file descriptor
+to avoid running out of file descriptors on thin archives with many
+archive members.
+
+bfd/
+
+	PR ld/28138
+	* plugin.c (bfd_plugin_close_file_descriptor): Close the file
+	descriptor there is no archive plugin file descriptor.
+
+ld/
+
+	PR ld/28138
+	* testsuite/ld-plugin/lto.exp: Run tmpdir/pr28138 only for
+	native build.
+
+	PR ld/28138
+	* testsuite/ld-plugin/lto.exp: Run ld/28138 tests.
+	* testsuite/ld-plugin/pr28138.c: New file.
+	* testsuite/ld-plugin/pr28138-1.c: Likewise.
+	* testsuite/ld-plugin/pr28138-2.c: Likewise.
+	* testsuite/ld-plugin/pr28138-3.c: Likewise.
+	* testsuite/ld-plugin/pr28138-4.c: Likewise.
+	* testsuite/ld-plugin/pr28138-5.c: Likewise.
+	* testsuite/ld-plugin/pr28138-6.c: Likewise.
+	* testsuite/ld-plugin/pr28138-7.c: Likewise.
+
+(cherry picked from commit 5a98fb7513b559e20dfebdbaa2a471afda3b4742)
+(cherry picked from commit 7dc37e1e1209c80e0bab784df6b6bac335e836f2)
+---
+ bfd/plugin.c                       |  8 +++++++
+ ld/testsuite/ld-plugin/lto.exp     | 34 ++++++++++++++++++++++++++++++
+ ld/testsuite/ld-plugin/pr28138-1.c |  6 ++++++
+ ld/testsuite/ld-plugin/pr28138-2.c |  6 ++++++
+ ld/testsuite/ld-plugin/pr28138-3.c |  6 ++++++
+ ld/testsuite/ld-plugin/pr28138-4.c |  6 ++++++
+ ld/testsuite/ld-plugin/pr28138-5.c |  6 ++++++
+ ld/testsuite/ld-plugin/pr28138-6.c |  6 ++++++
+ ld/testsuite/ld-plugin/pr28138-7.c |  6 ++++++
+ ld/testsuite/ld-plugin/pr28138.c   | 20 ++++++++++++++++++
+ 10 files changed, 104 insertions(+)
+ create mode 100644 ld/testsuite/ld-plugin/pr28138-1.c
+ create mode 100644 ld/testsuite/ld-plugin/pr28138-2.c
+ create mode 100644 ld/testsuite/ld-plugin/pr28138-3.c
+ create mode 100644 ld/testsuite/ld-plugin/pr28138-4.c
+ create mode 100644 ld/testsuite/ld-plugin/pr28138-5.c
+ create mode 100644 ld/testsuite/ld-plugin/pr28138-6.c
+ create mode 100644 ld/testsuite/ld-plugin/pr28138-7.c
+ create mode 100644 ld/testsuite/ld-plugin/pr28138.c
+
+diff --git a/bfd/plugin.c b/bfd/plugin.c
+index 6cfa2b66470..3bab8febe88 100644
+--- a/bfd/plugin.c
++++ b/bfd/plugin.c
+@@ -291,6 +291,14 @@ bfd_plugin_close_file_descriptor (bfd *abfd, int fd)
+ 	     && !bfd_is_thin_archive (abfd->my_archive))
+ 	abfd = abfd->my_archive;
+ 
++      /* Close the file descriptor if there is no archive plugin file
++	 descriptor.  */
++      if (abfd->archive_plugin_fd == -1)
++	{
++	  close (fd);
++	  return;
++	}
++
+       abfd->archive_plugin_fd_open_count--;
+       /* Dup the archive plugin file descriptor for later use, which
+ 	 will be closed by _bfd_archive_close_and_cleanup.  */
+diff --git a/ld/testsuite/ld-plugin/lto.exp b/ld/testsuite/ld-plugin/lto.exp
+index def69e43ab3..999d911ce6a 100644
+--- a/ld/testsuite/ld-plugin/lto.exp
++++ b/ld/testsuite/ld-plugin/lto.exp
+@@ -687,6 +687,40 @@ if { [is_elf_format] && [check_lto_shared_available] } {
+     }
+ }
+ 
++run_cc_link_tests [list \
++    [list \
++	"Build pr28138.a" \
++	"-T" "" \
++	{pr28138-1.c pr28138-2.c pr28138-3.c pr28138-4.c pr28138-5.c \
++	 pr28138-6.c pr28138-7.c} {} "pr28138.a" \
++    ] \
++    [list \
++	"Build pr28138.o" \
++	"" "" \
++	{pr28138.c} {} \
++    ] \
++]
++
++set exec_output [run_host_cmd "sh" \
++			      "-c \"ulimit -n 20; \
++			      $CC -Btmpdir/ld -o tmpdir/pr28138 \
++			      tmpdir/pr28138.o tmpdir/pr28138.a\""]
++set exec_output [prune_warnings $exec_output]
++if [string match "" $exec_output] then {
++    if { [isnative] } {
++	set exec_output [run_host_cmd "tmpdir/pr28138" ""]
++	if [string match "PASS" $exec_output] then {
++	    pass "PR ld/28138"
++	} else {
++	    fail "PR ld/28138"
++	}
++    } else {
++	pass "PR ld/28138"
++    }
++} else {
++    fail "PR ld/28138"
++}
++
+ set testname "Build liblto-11.a"
+ remote_file host delete "tmpdir/liblto-11.a"
+ set catch_output [run_host_cmd "$ar" "rc $plug_opt tmpdir/liblto-11.a tmpdir/lto-11a.o tmpdir/lto-11b.o tmpdir/lto-11c.o"]
+diff --git a/ld/testsuite/ld-plugin/pr28138-1.c b/ld/testsuite/ld-plugin/pr28138-1.c
+new file mode 100644
+index 00000000000..51d119e1642
+--- /dev/null
++++ b/ld/testsuite/ld-plugin/pr28138-1.c
+@@ -0,0 +1,6 @@
++extern int a0(void);
++int
++a1(void)
++{
++  return 1 + a0();
++}
+diff --git a/ld/testsuite/ld-plugin/pr28138-2.c b/ld/testsuite/ld-plugin/pr28138-2.c
+new file mode 100644
+index 00000000000..1120cd797e9
+--- /dev/null
++++ b/ld/testsuite/ld-plugin/pr28138-2.c
+@@ -0,0 +1,6 @@
++extern int a1(void);
++int
++a2(void)
++{
++  return 1 + a1();
++}
+diff --git a/ld/testsuite/ld-plugin/pr28138-3.c b/ld/testsuite/ld-plugin/pr28138-3.c
+new file mode 100644
+index 00000000000..ec464947ee6
+--- /dev/null
++++ b/ld/testsuite/ld-plugin/pr28138-3.c
+@@ -0,0 +1,6 @@
++extern int a2(void);
++int
++a3(void)
++{
++  return 1 + a2();
++}
+diff --git a/ld/testsuite/ld-plugin/pr28138-4.c b/ld/testsuite/ld-plugin/pr28138-4.c
+new file mode 100644
+index 00000000000..475701b2c5c
+--- /dev/null
++++ b/ld/testsuite/ld-plugin/pr28138-4.c
+@@ -0,0 +1,6 @@
++extern int a3(void);
++int
++a4(void)
++{
++  return 1 + a3();
++}
+diff --git a/ld/testsuite/ld-plugin/pr28138-5.c b/ld/testsuite/ld-plugin/pr28138-5.c
+new file mode 100644
+index 00000000000..e24f86c363e
+--- /dev/null
++++ b/ld/testsuite/ld-plugin/pr28138-5.c
+@@ -0,0 +1,6 @@
++extern int a4(void);
++int
++a5(void)
++{
++  return 1 + a4();
++}
+diff --git a/ld/testsuite/ld-plugin/pr28138-6.c b/ld/testsuite/ld-plugin/pr28138-6.c
+new file mode 100644
+index 00000000000..b5b938bdb21
+--- /dev/null
++++ b/ld/testsuite/ld-plugin/pr28138-6.c
+@@ -0,0 +1,6 @@
++extern int a5(void);
++int
++a6(void)
++{
++  return 1 + a5();
++}
+diff --git a/ld/testsuite/ld-plugin/pr28138-7.c b/ld/testsuite/ld-plugin/pr28138-7.c
+new file mode 100644
+index 00000000000..4ef75bf0f0c
+--- /dev/null
++++ b/ld/testsuite/ld-plugin/pr28138-7.c
+@@ -0,0 +1,6 @@
++extern int a6(void);
++int
++a7(void)
++{
++  return 1 + a6();
++}
+diff --git a/ld/testsuite/ld-plugin/pr28138.c b/ld/testsuite/ld-plugin/pr28138.c
+new file mode 100644
+index 00000000000..68252c9f382
+--- /dev/null
++++ b/ld/testsuite/ld-plugin/pr28138.c
+@@ -0,0 +1,20 @@
++#include <stdio.h>
++
++extern int a7(void);
++
++int
++a0(void)
++{
++  return 0;
++}
++
++int
++main()
++{
++  if (a7() == 7)
++    {
++      printf ("PASS\n");
++      return 0;
++    }
++  return 1;
++}
+-- 
+2.27.0
+
diff --git a/srcpkgs/binutils/patches/binutils-missing-man-pages.patch b/srcpkgs/binutils/patches/binutils-missing-man-pages.patch
new file mode 100644
index 000000000000..905f6620cc39
--- /dev/null
+++ b/srcpkgs/binutils/patches/binutils-missing-man-pages.patch
@@ -0,0 +1,32 @@
+From 96a7037cd8573cf065aa6b12baca68696f96d9ca Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <siarheit@google.com>
+Date: Mon, 26 Jul 2021 22:51:18 +0100
+Subject: [PATCH] texi2pod.pl: add no-op --no-split option support [PR28144]
+
+Change 2faf902da ("generate single html manual page by default")
+added use of --no-split option to makeinfo. binutils reuses
+makeinfo options for texi2pod.pl wrapper. Unsupported option
+led to silent manpage truncation.
+
+The change adds no-op option support.
+
+etc/
+
+	* texi2pod.pl: Handle no-op --no-split option.
+---
+ etc/texi2pod.pl | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/etc/texi2pod.pl b/etc/texi2pod.pl
+index 11f70d156be..dcf2b437640 100644
+--- a/etc/texi2pod.pl
++++ b/etc/texi2pod.pl
+@@ -59,6 +59,8 @@
+ 	    $flag = shift;
+ 	}
+         push (@ipath, $flag);
++    } elsif (/^--no-split$/) {
++	# ignore option for makeinfo compatibility
+     } elsif (/^-/) {
+ 	usage();
+     } else {
diff --git a/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch b/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
index 5de937f4fcce..6e1fa7731c9e 100644
--- a/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
+++ b/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
@@ -1,39 +1,24 @@
-From b1faf99f3e546df2cd302bb1ad36a2078224fe8b Mon Sep 17 00:00:00 2001
+From bbf05b742fde518fb97c789b043fe0d3aaf549f0 Mon Sep 17 00:00:00 2001
 From: Ariadne Conill <ariadne@dereferenced.org>
-Date: Fri, 30 Oct 2020 16:59:48 -0600
+Date: Tue, 21 Sep 2021 14:53:13 +0000
 Subject: [PATCH] Revert "PR25882, .gnu.attributes are not checked for shared
  libraries"
 
+This revert is needed to avoid wrongly tagging objects with the incompatible
+IBM long double ABI, which is not supported by musl and will result in
+linking errors if used.
+
 This reverts commit a8acd6eeb6dc2cc5460ece90f90ebe36b56b20ba.
 ---
- bfd/ChangeLog     | 6 ------
- bfd/elf32-tic6x.c | 3 ---
- ld/ChangeLog      | 6 ------
- ld/ldlang.c       | 9 ++++-----
- 4 files changed, 4 insertions(+), 20 deletions(-)
+ bfd/elf32-tic6x.c |  3 ---
+ ld/ldlang.c       | 10 ++++------
+ 2 files changed, 4 insertions(+), 9 deletions(-)
 
-diff --git a/bfd/ChangeLog b/bfd/ChangeLog
-index 9fac12538a..b5461494e8 100644
---- a/bfd/ChangeLog
-+++ b/bfd/ChangeLog
-@@ -1422,12 +1422,6 @@
- 	accessing root.u.def of symbols.  Also check root.u.def.section
- 	is non-NULL.  Reverse tests so as to make the logic positive.
- 
--2020-05-01  Alan Modra  <amodra@gmail.com>
--
--	PR 25882
--	* elf32-tic6x.c (elf32_tic6x_merge_attributes): Don't transfer
--	Tag_ABI_PIC or Tag_ABI_PID from dynamic objects to the output.
--
- 2020-05-01  Alan Modra  <amodra@gmail.com>
- 
- 	PR 25882
 diff --git a/bfd/elf32-tic6x.c b/bfd/elf32-tic6x.c
-index b8b916bfd3..91bb6a10b1 100644
+index 5754f3cb860..3ad1d612749 100644
 --- a/bfd/elf32-tic6x.c
 +++ b/bfd/elf32-tic6x.c
-@@ -3748,9 +3748,6 @@ elf32_tic6x_merge_attributes (bfd *ibfd, struct bfd_link_info *info)
+@@ -3735,9 +3735,6 @@ elf32_tic6x_merge_attributes (bfd *ibfd, struct bfd_link_info *info)
  
  	case Tag_ABI_PIC:
  	case Tag_ABI_PID:
@@ -43,36 +28,20 @@ index b8b916bfd3..91bb6a10b1 100644
  	  if (out_attr[i].i > in_attr[i].i)
  	    out_attr[i].i = in_attr[i].i;
  	  break;
-diff --git a/ld/ChangeLog b/ld/ChangeLog
-index 4eec7d2977..b93452f70c 100644
---- a/ld/ChangeLog
-+++ b/ld/ChangeLog
-@@ -1319,12 +1319,6 @@
- 	* testsuite/ld-aarch64/farcall-group.d: New test driver.
- 	* testsuite/ld-aarch64/aarch64-elf.exp: Run the new test.
- 
--2020-05-01  Alan Modra  <amodra@gmail.com>
--
--	PR 25882
--	* ldlang.c (lang_check): Call bfd_merge_private_bfd_data for
--	shared libraries.
--
- 2020-05-01  Alan Modra  <amodra@gmail.com>
- 
- 	* po/BLD-POTFILES.in: Regenerate.
 diff --git a/ld/ldlang.c b/ld/ldlang.c
-index 9977195074..173d8ec349 100644
+index 37b64c89ee1..f13beaef9d9 100644
 --- a/ld/ldlang.c
 +++ b/ld/ldlang.c
-@@ -6972,12 +6972,11 @@ lang_check (void)
+@@ -7071,13 +7071,11 @@ lang_check (void)
  		   bfd_printable_name (input_bfd), input_bfd,
  		   bfd_printable_name (link_info.output_bfd));
  	}
 -
 -      /* If the input bfd has no contents, it shouldn't set the
 -	 private data of the output bfd.  */
--      else if ((input_bfd->flags & DYNAMIC) != 0
--	       || bfd_count_sections (input_bfd) != 0)
+-      else if (!file->flags.just_syms
+-	       && ((input_bfd->flags & DYNAMIC) != 0
+-		   || bfd_count_sections (input_bfd) != 0))
 +      else if (bfd_count_sections (input_bfd))
  	{
 +	  /* If the input bfd has no contents, it shouldn't set the
@@ -82,5 +51,5 @@ index 9977195074..173d8ec349 100644
  
  	  /* If we aren't supposed to warn about mismatched input
 -- 
-2.29.2
+2.33.0
 
diff --git a/srcpkgs/binutils/template b/srcpkgs/binutils/template
index 6270f8618c87..743618a216c3 100644
--- a/srcpkgs/binutils/template
+++ b/srcpkgs/binutils/template
@@ -1,25 +1,36 @@
 # Template file for 'binutils'
 pkgname=binutils
-version=2.35.1
-revision=4
+version=2.37
+revision=1
 bootstrap=yes
+hostmakedepends="pkg-config"
 makedepends="zlib-devel"
 short_desc="GNU binary utilities"
 maintainer="Enno Boland <gottox@voidlinux.org>"
 license="GPL-3.0-or-later"
 homepage="http://www.gnu.org/software/binutils/"
 distfiles="${GNU_SITE}/$pkgname/$pkgname-$version.tar.xz"
-checksum=3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
+checksum=820d9724f020a3e69cb337893a0b63c2db161dadcb0e06fc11dc29eb1e84a32c
 
 subpackages="binutils-doc"
 if [ "$CHROOT_READY" ]; then
-	hostmakedepends="flex perl texinfo"
+	hostmakedepends+=" flex perl texinfo"
 	makedepends+=" elfutils-devel"
 	checkdepends="bc"
 	depends="binutils-doc"
 	subpackages+=" binutils-devel"
 fi
 
+pre_configure() {
+	# Binutils 2.37 ships empty man pages; we apply a patch that fixes the
+	# build system so that it doesn't generate empty man pages, but we need
+	# to delete the empty man pages for the build system to regenerate
+	# them.
+	if [ "$CHROOT_READY" ]; then
+		find -name \*.1 -delete
+	fi
+}
+
 _get_triplet() {
 	if [ -z "$XBPS_TRIPLET" ]; then
 		echo $(

From 8288603096873e75fe36368ecb97aed22feb7f49 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Tue, 4 Jan 2022 20:42:09 -0800
Subject: [PATCH 2/3] gcc: update to 11.2.1git20211128

---
 common/shlibs                                 |   6 +-
 srcpkgs/gcc/files/libgnarl-musl.patch         |  39 +++--
 srcpkgs/gcc/files/libssp-musl.patch           |  49 +-----
 ...upport-for-musl-typedef-macro-guards.patch | 106 +++++++++++++
 srcpkgs/gcc/patches/fsplit-stack-musl.patch   | 112 ++++++++++++++
 .../gcc/patches/libgcc-ibm128-no-tag.patch    |  21 +--
 srcpkgs/gcc/patches/musl-ada.patch            | 141 ++++++++++--------
 srcpkgs/gcc/template                          |  30 ++--
 8 files changed, 354 insertions(+), 150 deletions(-)
 create mode 100644 srcpkgs/gcc/patches/0040-stddef.h-add-support-for-musl-typedef-macro-guards.patch
 create mode 100644 srcpkgs/gcc/patches/fsplit-stack-musl.patch

diff --git a/common/shlibs b/common/shlibs
index 999d3ad714b8..0d397db35298 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -58,7 +58,7 @@ libcc1plugin.so.0 gcc-6.2.1_1
 libitm.so.1 libitm-4.7.3_1
 liblto_plugin.so.0 gcc-4.7.3_1
 libgcc_s.so.1 libgcc-4.4.0_1
-libgo.so.16 libgo-10.2.0_1
+libgo.so.19 libgo-11.2.1_1
 libperl.so.5.34 perl-5.34.0_1
 libgmp.so.10 gmp-5.0.1_1
 libgmpxx.so.4 gmpxx-6.0.0_2
@@ -843,8 +843,8 @@ libgdkmm-2.4.so.1 gtkmm2-2.24.0_1
 libgtkmm-2.4.so.1 gtkmm2-2.24.0_1
 libquadmath.so.0 libquadmath-4.4.0_1
 libgfortran.so.5 libgfortran-8.2.0_1
-libgnarl-10.so libada-10.2.0_1
-libgnat-10.so libada-10.2.0_1
+libgnarl-11.so libada-11.2.1_1
+libgnat-11.so libada-11.2.1_1
 libwebp.so.7 libwebp-0.6.0_1
 libwebpmux.so.3 libwebp-0.6.0_1
 libwebpdemux.so.2 libwebp-0.5.0_1
diff --git a/srcpkgs/gcc/files/libgnarl-musl.patch b/srcpkgs/gcc/files/libgnarl-musl.patch
index 99a734c42c90..ec60c82f9289 100644
--- a/srcpkgs/gcc/files/libgnarl-musl.patch
+++ b/srcpkgs/gcc/files/libgnarl-musl.patch
@@ -2,10 +2,16 @@ Source: Alpine Linux
 Upstream: Unknown
 Reason: Patch libgnarl to not use function missing from musl.
 
-diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/libgnarl/s-osinte__linux.ads
---- a/gcc/ada/libgnarl/s-osinte__linux.ads	2018-01-11 00:55:25.000000000 -0800
-+++ b/gcc/ada/libgnarl/s-osinte__linux.ads	2018-11-01 16:16:23.372452951 -0700
-@@ -394,12 +394,6 @@ package System.OS_Interface is
+---
+ gcc/ada/libgnarl/s-osinte__linux.ads | 11 ------
+ gcc/ada/libgnarl/s-taprop__linux.adb | 53 ++--------------------------
+ 2 files changed, 3 insertions(+), 61 deletions(-)
+
+diff --git a/gcc/ada/libgnarl/s-osinte__linux.ads b/gcc/ada/libgnarl/s-osinte__linux.ads
+index 2272f83d68d..1d78456544a 100644
+--- a/gcc/ada/libgnarl/s-osinte__linux.ads
++++ b/gcc/ada/libgnarl/s-osinte__linux.ads
+@@ -401,12 +401,6 @@ package System.OS_Interface is
     PTHREAD_RWLOCK_PREFER_WRITER_NP              : constant := 1;
     PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP : constant := 2;
  
@@ -18,7 +24,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/l
     function pthread_rwlock_init
       (mutex : access pthread_rwlock_t;
        attr  : access pthread_rwlockattr_t) return int;
-@@ -464,11 +458,6 @@ package System.OS_Interface is
+@@ -468,11 +462,6 @@ package System.OS_Interface is
        protocol : int) return int;
     pragma Import (C, pthread_mutexattr_setprotocol);
  
@@ -30,10 +36,11 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/l
     type struct_sched_param is record
        sched_priority : int;  --  scheduling priority
     end record;
-diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/libgnarl/s-taprop__linux.adb
---- a/gcc/ada/libgnarl/s-taprop__linux.adb	2018-01-11 00:55:25.000000000 -0800
-+++ b/gcc/ada/libgnarl/s-taprop__linux.adb	2018-11-13 11:28:36.433964449 -0800
-@@ -202,9 +202,6 @@ package body System.Task_Primitives.Oper
+diff --git a/gcc/ada/libgnarl/s-taprop__linux.adb b/gcc/ada/libgnarl/s-taprop__linux.adb
+index 757a6cdfdad..82df94f6a00 100644
+--- a/gcc/ada/libgnarl/s-taprop__linux.adb
++++ b/gcc/ada/libgnarl/s-taprop__linux.adb
+@@ -198,9 +198,6 @@ package body System.Task_Primitives.Operations is
     pragma Import
       (C, GNAT_pthread_condattr_setup, "__gnat_pthread_condattr_setup");
  
@@ -43,7 +50,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
     --  We do not have pragma Linker_Options ("-lcap"); here, because this
     --  library is not present on many Linux systems. 'libcap' is the Linux
     --  "capabilities" library, called by __gnat_has_cap_sys_nice.
-@@ -214,38 +211,6 @@ package body System.Task_Primitives.Oper
+@@ -210,38 +207,6 @@ package body System.Task_Primitives.Operations is
     --  Convert Ada priority to Linux priority. Priorities are 1 .. 99 on
     --  GNU/Linux, so we map 0 .. 98 to 1 .. 99.
  
@@ -76,13 +83,13 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
 -      return Ceiling_Support;
 -   end Get_Ceiling_Support;
 -
--   pragma Warnings (Off, "non-static call not allowed in preelaborated unit");
+-   pragma Warnings (Off, "non-preelaborable call not allowed*");
 -   Ceiling_Support : constant Boolean := Get_Ceiling_Support;
--   pragma Warnings (On, "non-static call not allowed in preelaborated unit");
+-   pragma Warnings (On, "non-preelaborable call not allowed*");
     --  True if the locking policy is Ceiling_Locking, and the current process
     --  has permission to use this policy. The process has permission if it is
     --  running as 'root', or if the capability was set by the setcap command,
-@@ -348,7 +313,9 @@ package body System.Task_Primitives.Oper
+@@ -344,7 +309,9 @@ package body System.Task_Primitives.Operations is
     -- Init_Mutex --
     ----------------
  
@@ -92,7 +99,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
        Mutex_Attr : aliased pthread_mutexattr_t;
        Result, Result_2 : C.int;
  
-@@ -360,16 +327,7 @@ package body System.Task_Primitives.Oper
+@@ -356,16 +323,7 @@ package body System.Task_Primitives.Operations is
           return Result;
        end if;
  
@@ -110,7 +117,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
           Result := pthread_mutexattr_setprotocol
             (Mutex_Attr'Access, PTHREAD_PRIO_INHERIT);
           pragma Assert (Result = 0);
-@@ -409,11 +367,6 @@ package body System.Task_Primitives.Oper
+@@ -405,11 +363,6 @@ package body System.Task_Primitives.Operations is
              Result := pthread_rwlockattr_init (RWlock_Attr'Access);
              pragma Assert (Result = 0);
  
@@ -122,4 +129,6 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
              Result := pthread_rwlock_init (L.RW'Access, RWlock_Attr'Access);
  
              pragma Assert (Result in 0 | ENOMEM);
+-- 
+2.34.0
 
diff --git a/srcpkgs/gcc/files/libssp-musl.patch b/srcpkgs/gcc/files/libssp-musl.patch
index b21a2c29e57c..ed4444dcdc52 100644
--- a/srcpkgs/gcc/files/libssp-musl.patch
+++ b/srcpkgs/gcc/files/libssp-musl.patch
@@ -1,19 +1,9 @@
-First part taken from Alpine.
-
-Second part added to prevent gccgo from thinking it can -fsplit-stack on musl.
+Taken from Alpine.
 
 --- a/gcc/gcc.c
 +++ b/gcc/gcc.c
-@@ -874,10 +874,15 @@ proper position among the other output files.  */
- #define LINK_GCC_C_SEQUENCE_SPEC "%G %{!nolibc:%L %G}"
- #endif
+@@ -997,8 +997,7 @@ proper position among the other output files.  */
  
-+#ifdef ENABLE_DEFAULT_SSP
-+#define NO_SSP_SPEC "%{nostdlib|nodefaultlibs|ffreestanding:-fno-stack-protector} "
-+#else
-+#define NO_SSP_SPEC ""
-+#endif
-+
  #ifndef LINK_SSP_SPEC
  #ifdef TARGET_LIBC_PROVIDES_SSP
 -#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
@@ -22,15 +12,6 @@ Second part added to prevent gccgo from thinking it can -fsplit-stack on musl.
  #else
  #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
  		       "|fstack-protector-strong|fstack-protector-explicit" \
-@@ -1155,7 +1160,7 @@ static const char *cc1_options =
-  %{-version:--version}\
-  %{-help=*:--help=%*}\
-  %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %b.s}}}\
-- %{fsyntax-only:-o %j} %{-param*}\
-+ %{fsyntax-only:-o %j} %{-param*} " NO_SSP_SPEC "\
-  %{coverage:-fprofile-arcs -ftest-coverage}\
-  %{fprofile-arcs|fprofile-generate*|coverage:\
-    %{!fprofile-update=single:\
 --- a/gcc/params.opt
 +++ b/gcc/params.opt
 @@ -853,7 +853,7 @@ Common Joined UInteger Var(param_ssa_name_def_chain_limit) Init(512) Param Optim
@@ -42,29 +23,3 @@ Second part added to prevent gccgo from thinking it can -fsplit-stack on musl.
  The lower bound for a buffer to be considered for stack smashing protection.
  
  -param=stack-clash-protection-guard-size=
---- a/gcc/config/i386/gnu-user-common.h
-+++ b/gcc/config/i386/gnu-user-common.h
-@@ -64,9 +64,3 @@ along with GCC; see the file COPYING3.  If not see
- 
- /* Static stack checking is supported by means of probes.  */
- #define STACK_CHECK_STATIC_BUILTIN 1
--
--/* We only build the -fsplit-stack support in libgcc if the
--   assembler has full support for the CFI directives.  */
--#if HAVE_GAS_CFI_PERSONALITY_DIRECTIVE
--#define TARGET_CAN_SPLIT_STACK
--#endif
---- a/gcc/config/i386/gnu.h
-+++ b/gcc/config/i386/gnu.h
-@@ -40,11 +40,6 @@ along with GCC.  If not, see <http://www.gnu.org/licenses/>.
- /* i386 glibc provides __stack_chk_guard in %gs:0x14.  */
- #define TARGET_THREAD_SSP_OFFSET        0x14
- 
--/* We only build the -fsplit-stack support in libgcc if the
--   assembler has full support for the CFI directives.  */
--#if HAVE_GAS_CFI_PERSONALITY_DIRECTIVE
--#define TARGET_CAN_SPLIT_STACK
--#endif
- /* We steal the last transactional memory word.  */
- #define TARGET_THREAD_SPLIT_STACK_OFFSET 0x30
- #endif
diff --git a/srcpkgs/gcc/patches/0040-stddef.h-add-support-for-musl-typedef-macro-guards.patch b/srcpkgs/gcc/patches/0040-stddef.h-add-support-for-musl-typedef-macro-guards.patch
new file mode 100644
index 000000000000..c22f7f43f3d7
--- /dev/null
+++ b/srcpkgs/gcc/patches/0040-stddef.h-add-support-for-musl-typedef-macro-guards.patch
@@ -0,0 +1,106 @@
+From 5a76cf60df5c9ba274f1d0dcd79fc0cbad9d0fe0 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
+Date: Thu, 25 Nov 2021 17:44:04 +0100
+Subject: [PATCH] stddef.h: add support for musl typedef macro guards
+
+The stddef.h header checks/sets various hardcoded toolchain/os specific
+macro guards to prevent redefining types such as ptrdiff_t, wchar_t, or
+size_t. However, without this patch, the file does not check/set the
+typedef macro guards for musl libc. This causes types such as size_t to
+be defined twice for files which include both musl's stddef.h as well as
+GCC's ginclude/stddef.h. This is, for example, the case for
+libgo/sysinfo.c. If libgo/sysinfo.c has multiple typedefs for size_t
+this confuses -fdump-go-spec and causes size_t not to be included in the
+generated type definitions thereby causing a gcc-go compilation failure
+on musl with the following error message:
+
+	sysinfo.go:7765:13: error: use of undefined type '_size_t'
+	 7765 | type Size_t _size_t
+	      |             ^
+	libcall_posix.go:49:35: error: non-integer len argument in make
+	   49 |                 b := make([]byte, len)
+	      |
+
+This commit fixes this issue by ensuring that ptrdiff_t, wchar_t, and size_t
+are only defined once in the pre-processed libgo/sysinfo.c file by enhancing
+gcc/ginclude/stddef.h with musl-specific typedef macro guards.
+---
+ gcc/ginclude/stddef.h | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/gcc/ginclude/stddef.h b/gcc/ginclude/stddef.h
+index 66619fe43b1..50d710a5ab9 100644
+--- a/gcc/ginclude/stddef.h
++++ b/gcc/ginclude/stddef.h
+@@ -128,6 +128,7 @@ _TYPE_wchar_t;
+ #ifndef ___int_ptrdiff_t_h
+ #ifndef _GCC_PTRDIFF_T
+ #ifndef _PTRDIFF_T_DECLARED /* DragonFly */
++#ifndef __DEFINED_ptrdiff_t /* musl libc */
+ #define _PTRDIFF_T
+ #define _T_PTRDIFF_
+ #define _T_PTRDIFF
+@@ -137,10 +138,12 @@ _TYPE_wchar_t;
+ #define ___int_ptrdiff_t_h
+ #define _GCC_PTRDIFF_T
+ #define _PTRDIFF_T_DECLARED
++#define __DEFINED_ptrdiff_t
+ #ifndef __PTRDIFF_TYPE__
+ #define __PTRDIFF_TYPE__ long int
+ #endif
+ typedef __PTRDIFF_TYPE__ ptrdiff_t;
++#endif /* __DEFINED_ptrdiff_t */
+ #endif /* _PTRDIFF_T_DECLARED */
+ #endif /* _GCC_PTRDIFF_T */
+ #endif /* ___int_ptrdiff_t_h */
+@@ -174,6 +177,7 @@ typedef __PTRDIFF_TYPE__ ptrdiff_t;
+ #ifndef _SIZE_T_DEFINED
+ #ifndef _BSD_SIZE_T_DEFINED_	/* Darwin */
+ #ifndef _SIZE_T_DECLARED	/* FreeBSD 5 */
++#ifndef __DEFINED_size_t	/* musl libc */
+ #ifndef ___int_size_t_h
+ #ifndef _GCC_SIZE_T
+ #ifndef _SIZET_
+@@ -191,6 +195,7 @@ typedef __PTRDIFF_TYPE__ ptrdiff_t;
+ #define _SIZE_T_DEFINED
+ #define _BSD_SIZE_T_DEFINED_	/* Darwin */
+ #define _SIZE_T_DECLARED	/* FreeBSD 5 */
++#define __DEFINED_size_t	/* musl libc */
+ #define ___int_size_t_h
+ #define _GCC_SIZE_T
+ #define _SIZET_
+@@ -215,6 +220,7 @@ typedef long ssize_t;
+ #endif /* _SIZET_ */
+ #endif /* _GCC_SIZE_T */
+ #endif /* ___int_size_t_h */
++#endif /* __DEFINED_size_t */
+ #endif /* _SIZE_T_DECLARED */
+ #endif /* _BSD_SIZE_T_DEFINED_ */
+ #endif /* _SIZE_T_DEFINED */
+@@ -251,6 +257,7 @@ typedef long ssize_t;
+ #ifndef _BSD_WCHAR_T_DEFINED_    /* Darwin */
+ #ifndef _BSD_RUNE_T_DEFINED_	/* Darwin */
+ #ifndef _WCHAR_T_DECLARED /* FreeBSD 5 */
++#ifndef __DEFINED_wchar_t /* musl libc */
+ #ifndef _WCHAR_T_DEFINED_
+ #ifndef _WCHAR_T_DEFINED
+ #ifndef _WCHAR_T_H
+@@ -272,6 +279,7 @@ typedef long ssize_t;
+ #define __INT_WCHAR_T_H
+ #define _GCC_WCHAR_T
+ #define _WCHAR_T_DECLARED
++#define __DEFINED_wchar_t
+ 
+ /* On BSD/386 1.1, at least, machine/ansi.h defines _BSD_WCHAR_T_
+    instead of _WCHAR_T_, and _BSD_RUNE_T_ (which, unlike the other
+@@ -326,6 +334,7 @@ typedef __WCHAR_TYPE__ wchar_t;
+ #endif
+ #endif
+ #endif
++#endif /* __DEFINED_wchar_t */
+ #endif /* _WCHAR_T_DECLARED */
+ #endif /* _BSD_RUNE_T_DEFINED_ */
+ #endif
+-- 
+2.34.0
+
diff --git a/srcpkgs/gcc/patches/fsplit-stack-musl.patch b/srcpkgs/gcc/patches/fsplit-stack-musl.patch
new file mode 100644
index 000000000000..6b7b60d9d04b
--- /dev/null
+++ b/srcpkgs/gcc/patches/fsplit-stack-musl.patch
@@ -0,0 +1,112 @@
+Subject: [PATCH v2] Disable -fsplit-stack support on non-glibc targets
+From: Sören Tempel <soeren@soeren-tempel.net>
+
+The -fsplit-stack option requires the pthread_t TCB definition in the
+libc to provide certain struct fields at specific hardcoded offsets. As
+far as I know, only glibc provides these fields at the required offsets.
+Most notably, musl libc does not have these fields. However, since gcc
+accesses the fields using a fixed offset, this does not cause a
+compile-time error, but instead results in a silent memory corruption at
+run-time with musl libc. For example, on s390x libgcc's
+__stack_split_initialize CTOR will overwrite the cancel field in the
+pthread_t TCB on musl.
+
+The -fsplit-stack option is used within the gcc code base itself by
+gcc-go (if available). On musl-based systems with split-stack support
+(i.e. s390x or x86) this causes Go programs compiled with gcc-go to
+misbehave at run-time.
+
+This patch fixes gcc-go on musl by disabling -fsplit-stack in gcc itself
+since it is not supported on non-glibc targets anyhow. This is achieved
+by checking if gcc targets a glibc-based system. This check has been
+added for x86 and s390x, the rs6000 config already checks for
+TARGET_GLIBC_MAJOR. Other architectures do not have split-stack
+support. With this patch applied, the gcc-go configure script will
+detect that -fsplit-stack support is not available and will not use it.
+
+See https://www.openwall.com/lists/musl/2012/10/16/12
+
+This patch was written under the assumption that glibc is the only libc
+implementation which supports the required fields at the required
+offsets in the pthread_t TCB. The patch has been tested on Alpine Linux
+Edge on the s390x and x86 architectures by bootstrapping Google's Go
+implementation with gcc-go.
+
+Signed-off-by: Sören Tempel <soeren@soeren-tempel.net>
+
+gcc/ChangeLog:
+
+	* common/config/s390/s390-common.c (s390_supports_split_stack):
+	Only support split-stack on glibc targets.
+	* config/i386/gnu-user-common.h (STACK_CHECK_STATIC_BUILTIN): Ditto.
+	* config/i386/gnu.h (defined): Ditto.
+---
+This version of the patch addresses feedback by Andrew Pinski and uses
+OPTION_GLIBC as well as opts->x_linux_libc == LIBC_GLIBC to detect glibc
+targets (instead of relying on TARGET_GLIBC_MAJOR).
+
+ gcc/common/config/s390/s390-common.c | 11 +++++++++--
+ gcc/config/i386/gnu-user-common.h    |  5 +++--
+ gcc/config/i386/gnu.h                |  6 +++++-
+ 3 files changed, 17 insertions(+), 5 deletions(-)
+
+diff --git a/gcc/common/config/s390/s390-common.c b/gcc/common/config/s390/s390-common.c
+index b6bc8501742..fc86e0bc5e7 100644
+--- a/gcc/common/config/s390/s390-common.c
++++ b/gcc/common/config/s390/s390-common.c
+@@ -116,13 +116,20 @@ s390_handle_option (struct gcc_options *opts ATTRIBUTE_UNUSED,
+ 
+ /* -fsplit-stack uses a field in the TCB, available with glibc-2.23.
+    We don't verify it, since earlier versions just have padding at
+-   its place, which works just as well.  */
++   its place, which works just as well. For other libc implementations
++   we disable the feature entirely to avoid corrupting the TCB.  */
+ 
+ static bool
+ s390_supports_split_stack (bool report ATTRIBUTE_UNUSED,
+ 			   struct gcc_options *opts ATTRIBUTE_UNUSED)
+ {
+-  return true;
++  if (opts->x_linux_libc == LIBC_GLIBC) {
++    return true;
++  } else {
++    if (report)
++      error("%<-fsplit-stack%> currently only supported on GNU/Linux");
++    return false;
++  }
+ }
+ 
+ #undef TARGET_DEFAULT_TARGET_FLAGS
+diff --git a/gcc/config/i386/gnu-user-common.h b/gcc/config/i386/gnu-user-common.h
+index 00226f5a455..6e13315b5a3 100644
+--- a/gcc/config/i386/gnu-user-common.h
++++ b/gcc/config/i386/gnu-user-common.h
+@@ -66,7 +66,8 @@ along with GCC; see the file COPYING3.  If not see
+ #define STACK_CHECK_STATIC_BUILTIN 1
+ 
+ /* We only build the -fsplit-stack support in libgcc if the
+-   assembler has full support for the CFI directives.  */
+-#if HAVE_GAS_CFI_PERSONALITY_DIRECTIVE
++   assembler has full support for the CFI directives and
++   targets glibc.  */
++#if HAVE_GAS_CFI_PERSONALITY_DIRECTIVE && OPTION_GLIBC
+ #define TARGET_CAN_SPLIT_STACK
+ #endif
+diff --git a/gcc/config/i386/gnu.h b/gcc/config/i386/gnu.h
+index 25fbc07f58c..adfe817201e 100644
+--- a/gcc/config/i386/gnu.h
++++ b/gcc/config/i386/gnu.h
+@@ -35,7 +35,11 @@ along with GCC.  If not, see <http://www.gnu.org/licenses/>.
+    crti.o%s %{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s}"
+ #endif
+ 
+-#ifdef TARGET_LIBC_PROVIDES_SSP
++/* -fsplit-stack uses a field in the TCB at a fixed offset. This
++   field is only available for glibc. Disable -fsplit-stack for
++   other libc implementation to avoid silent TCB corruptions.  */
++
++#if defined (TARGET_LIBC_PROVIDES_SSP) && OPTION_GLIBC
+ 
+ /* i386 glibc provides __stack_chk_guard in %gs:0x14.  */
+ #define TARGET_THREAD_SSP_OFFSET        0x14
+
diff --git a/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch b/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
index bdf5c75d917d..c2acec586cfc 100644
--- a/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
+++ b/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
@@ -17,22 +17,25 @@ diff --git a/libgcc/config/rs6000/t-ibm-ldouble b/libgcc/config/rs6000/t-ibm-ldo
 index b132784..fb5eca8 100644
 --- a/libgcc/config/rs6000/t-ibm-ldouble
 +++ b/libgcc/config/rs6000/t-ibm-ldouble
-@@ -1,6 +1,6 @@
- # GCC 128-bit long double support routines.
- LIB2ADD += $(srcdir)/config/rs6000/ibm-ldouble.c
+@@ -3,4 +3,6 @@
  
--HOST_LIBGCC2_CFLAGS += -mlong-double-128
-+HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-gnu-attribute
+ HOST_LIBGCC2_CFLAGS += -mlong-double-128
  
++HOST_LIBGCC2_CFLAGS += -mno-gnu-attribute
++
  SHLIB_MAPFILES += $(srcdir)/config/rs6000/libgcc-ibm-ldouble.ver
 diff --git a/libgcc/config/rs6000/t-linux b/libgcc/config/rs6000/t-linux
 index 4f6d4c4..fa93bb6 100644
 --- a/libgcc/config/rs6000/t-linux
 +++ b/libgcc/config/rs6000/t-linux
-@@ -1,3 +1,3 @@
- SHLIB_MAPFILES += $(srcdir)/config/rs6000/libgcc-glibc.ver
+@@ -2,6 +2,8 @@
  
--HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-minimal-toc
-+HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-gnu-attribute -mno-minimal-toc
+ HOST_LIBGCC2_CFLAGS += -mlong-double-128
+ 
++HOST_LIBGCC2_CFLAGS += -mno-gnu-attribute
++
+ # This is a way of selecting -mcmodel=small for ppc64, which gives
+ # smaller and faster libgcc code.  Directly specifying -mcmodel=small
+ # would need to take into account targets for which -mcmodel is invalid.
 -- 
 2.24.0
diff --git a/srcpkgs/gcc/patches/musl-ada.patch b/srcpkgs/gcc/patches/musl-ada.patch
index c2c79df0adb7..3a7075f96311 100644
--- a/srcpkgs/gcc/patches/musl-ada.patch
+++ b/srcpkgs/gcc/patches/musl-ada.patch
@@ -1,20 +1,81 @@
+From 0b879c9a3ef83b3b08a0d72bfe89816d52489408 Mon Sep 17 00:00:00 2001
+From: Ariadne Conill <ariadne@dereferenced.org>
+Date: Fri, 21 Aug 2020 07:07:48 +0000
+Subject: [PATCH] ada: musl support fixes
+
+---
+ gcc/ada/Makefile.rtl | 10 +++++-----
+ gcc/ada/adaint.c     | 34 +++++++++++++++++++---------------
+ gcc/ada/adaint.h     | 10 ++++------
+ gcc/ada/terminals.c  |  8 ++++----
+ 4 files changed, 32 insertions(+), 30 deletions(-)
+
+diff --git a/gcc/ada/Makefile.rtl b/gcc/ada/Makefile.rtl
+index 987eff0abba..03c8bc6f496 100644
+--- a/gcc/ada/Makefile.rtl
++++ b/gcc/ada/Makefile.rtl
+@@ -1748,7 +1748,7 @@ ifeq ($(strip $(filter-out %86 linux%,$(target_cpu) $(target_os))),)
+   s-intman.adb<libgnarl/s-intman__posix.adb \
+   s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
+   $(TRASYM_DWARF_UNIX_PAIRS) \
+-  s-tsmona.adb<libgnat/s-tsmona__linux.adb \
++  s-tsmona.adb<libgnat/s-tsmona.adb \
+   a-exetim.adb<libgnarl/a-exetim__posix.adb \
+   a-exetim.ads<libgnarl/a-exetim__default.ads \
+   s-linux.ads<libgnarl/s-linux.ads \
+@@ -2355,7 +2355,7 @@ ifeq ($(strip $(filter-out powerpc% linux%,$(target_cpu) $(target_os))),)
+   s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
+   s-taspri.ads<libgnarl/s-taspri__posix.ads \
+   $(TRASYM_DWARF_UNIX_PAIRS) \
+-  s-tsmona.adb<libgnat/s-tsmona__linux.adb \
++  s-tsmona.adb<libgnat/s-tsmona.adb \
+   $(ATOMICS_TARGET_PAIRS) \
+   $(ATOMICS_BUILTINS_TARGET_PAIRS) \
+   system.ads<libgnat/system-linux-ppc.ads
+@@ -2386,7 +2386,7 @@ ifeq ($(strip $(filter-out powerpc% linux%,$(target_cpu) $(target_os))),)
+ endif
+ 
+ # ARM linux, GNU eabi
+-ifeq ($(strip $(filter-out arm% linux-gnueabi%,$(target_cpu) $(target_os))),)
++ifeq ($(strip $(filter-out arm% linux-gnueabi% linux-musleabi% linux-muslgnueabi%,$(target_cpu) $(target_os))),)
+   LIBGNAT_TARGET_PAIRS = \
+   a-intnam.ads<libgnarl/a-intnam__linux.ads \
+   s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
+@@ -2597,7 +2597,7 @@ ifeq ($(strip $(filter-out %ia64 linux%,$(target_cpu) $(target_os))),)
+   s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
+   s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
+   $(TRASYM_DWARF_UNIX_PAIRS) \
+-  s-tsmona.adb<libgnat/s-tsmona__linux.adb \
++  s-tsmona.adb<libgnat/s-tsmona.adb \
+   $(ATOMICS_TARGET_PAIRS) \
+   $(ATOMICS_BUILTINS_TARGET_PAIRS) \
+   $(GNATRTL_128BIT_PAIRS) \
+@@ -2699,7 +2699,7 @@ ifeq ($(strip $(filter-out %x86_64 linux%,$(target_cpu) $(target_os))),)
+   s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
+   s-taspri.ads<libgnarl/s-taspri__posix.ads \
+   $(TRASYM_DWARF_UNIX_PAIRS) \
+-  s-tsmona.adb<libgnat/s-tsmona__linux.adb \
++  s-tsmona.adb<libgnat/s-tsmona.adb \
+   $(ATOMICS_TARGET_PAIRS) \
+   $(X86_64_TARGET_PAIRS) \
+   $(GNATRTL_128BIT_PAIRS) \
 diff --git a/gcc/ada/adaint.c b/gcc/ada/adaint.c
-index 3b0aea9..ee0bb69 100644
+index 2e54e69643a..e7e6507e2e0 100644
 --- a/gcc/ada/adaint.c
 +++ b/gcc/ada/adaint.c
-@@ -76,6 +76,11 @@
+@@ -91,6 +91,11 @@
  #include <sys/param.h>
  #include <sys/pstat.h>
  #endif
 + 
-+#if defined (linux)
++#if defined (linux) || defined(__linux__)
 +#define _GNU_SOURCE 1
 +#include <sched.h>
 +#endif
  
  #ifdef __PikeOS__
  #define __BSD_VISIBLE 1
-@@ -3255,7 +3260,6 @@ __gnat_lwp_self (void)
+@@ -3442,7 +3447,6 @@ __gnat_lwp_self (void)
  #endif
  
  #if defined (__linux__)
@@ -22,7 +83,7 @@ index 3b0aea9..ee0bb69 100644
  
  /* glibc versions earlier than 2.7 do not define the routines to handle
     dynamically allocated CPU sets. For these targets, we use the static
-@@ -3265,7 +3269,7 @@ __gnat_lwp_self (void)
+@@ -3452,7 +3456,7 @@ __gnat_lwp_self (void)
  
  /* Dynamic cpu sets */
  
@@ -31,7 +92,7 @@ index 3b0aea9..ee0bb69 100644
  __gnat_cpu_alloc (size_t count)
  {
    return CPU_ALLOC (count);
-@@ -3278,33 +3282,33 @@ __gnat_cpu_alloc_size (size_t count)
+@@ -3465,33 +3469,33 @@ __gnat_cpu_alloc_size (size_t count)
  }
  
  void
@@ -73,7 +134,7 @@ index 3b0aea9..ee0bb69 100644
  }
  
  size_t
-@@ -3314,23 +3318,23 @@ __gnat_cpu_alloc_size (size_t count ATTRIBUTE_UNUSED)
+@@ -3501,23 +3505,23 @@ __gnat_cpu_alloc_size (size_t count ATTRIBUTE_UNUSED)
  }
  
  void
@@ -103,10 +164,10 @@ index 3b0aea9..ee0bb69 100644
  #endif /* !CPU_ALLOC */
  #endif /* __linux__ */
 diff --git a/gcc/ada/adaint.h b/gcc/ada/adaint.h
-index 0d12f7e..a063b47 100644
+index 85997b9ba68..fd10e5b5589 100644
 --- a/gcc/ada/adaint.h
 +++ b/gcc/ada/adaint.h
-@@ -316,13 +316,11 @@ extern void   *__gnat_lwp_self			   (void);
+@@ -325,13 +325,11 @@ extern void   *__gnat_lwp_self			   (void);
  
  /* Routines for interface to required CPU set primitives */
  
@@ -124,56 +185,11 @@ index 0d12f7e..a063b47 100644
  #endif
  
  #if defined (_WIN32)
---- a/gcc/ada/Makefile.rtl	2020-07-23 08:35:17.052381336 +0200
-+++ b/gcc/ada/Makefile.rtl	2020-07-23 08:35:17.052381336 +0200
-@@ -1533,7 +1533,7 @@
-   s-intman.adb<libgnarl/s-intman__posix.adb \
-   s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
-   $(TRASYM_DWARF_UNIX_PAIRS) \
--  s-tsmona.adb<libgnat/s-tsmona__linux.adb \
-+  s-tsmona.adb<libgnat/s-tsmona.adb \
-   a-exetim.adb<libgnarl/a-exetim__posix.adb \
-   a-exetim.ads<libgnarl/a-exetim__default.ads \
-   s-linux.ads<libgnarl/s-linux.ads \
-@@ -2083,7 +2083,7 @@
-   s-osinte.adb<libgnarl/s-osinte__posix.adb \
-   s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
-   $(TRASYM_DWARF_UNIX_PAIRS) \
--  s-tsmona.adb<libgnat/s-tsmona__linux.adb \
-+  s-tsmona.adb<libgnat/s-tsmona.adb \
-   $(ATOMICS_TARGET_PAIRS) \
-   $(ATOMICS_BUILTINS_TARGET_PAIRS) \
-   system.ads<libgnat/system-linux-ppc.ads
-@@ -2112,7 +2112,7 @@
- endif
- 
- # ARM linux, GNU eabi
--ifeq ($(strip $(filter-out arm% linux-gnueabi%,$(target_cpu) $(target_os))),)
-+ifeq ($(strip $(filter-out arm% linux-gnueabi% linux-musleabi% linux-muslgnueabi%,$(target_cpu) $(target_os))),)
-   LIBGNAT_TARGET_PAIRS = \
-   a-intnam.ads<libgnarl/a-intnam__linux.ads \
-   s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
-@@ -2305,7 +2305,7 @@
-   s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
-   s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
-   $(TRASYM_DWARF_UNIX_PAIRS) \
--  s-tsmona.adb<libgnat/s-tsmona__linux.adb \
-+  s-tsmona.adb<libgnat/s-tsmona.adb \
-   $(ATOMICS_TARGET_PAIRS) \
-   $(ATOMICS_BUILTINS_TARGET_PAIRS) \
-   system.ads<libgnat/system-linux-ia64.ads
-@@ -2401,7 +2401,7 @@
-   s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
-   s-taspri.ads<libgnarl/s-taspri__posix.ads \
-   $(TRASYM_DWARF_UNIX_PAIRS) \
--  s-tsmona.adb<libgnat/s-tsmona__linux.adb \
-+  s-tsmona.adb<libgnat/s-tsmona.adb \
-   $(ATOMICS_TARGET_PAIRS) \
-   $(X86_64_TARGET_PAIRS) \
-   system.ads<libgnat/system-linux-x86.ads
---- a/gcc/ada/terminals.c	2019-01-08 10:54:04.000000000 +0100
-+++ b/gcc/ada/terminals.c	2019-05-15 13:14:09.935742526 +0200
-@@ -1136,7 +1136,7 @@
+diff --git a/gcc/ada/terminals.c b/gcc/ada/terminals.c
+index ec9db3a6a4c..6f92e50dd67 100644
+--- a/gcc/ada/terminals.c
++++ b/gcc/ada/terminals.c
+@@ -1132,7 +1132,7 @@ __gnat_setup_winsize (void *desc ATTRIBUTE_UNUSED,
  /* POSIX does not specify how to open the master side of a terminal.Several
     methods are available (system specific):
        1- using a cloning device (USE_CLONE_DEVICE)
@@ -182,7 +198,7 @@ index 0d12f7e..a063b47 100644
        3- openpty                (USE_OPENPTY)
  
     When using the cloning device method, the macro USE_CLONE_DEVICE should
-@@ -1150,7 +1150,7 @@
+@@ -1146,7 +1146,7 @@ __gnat_setup_winsize (void *desc ATTRIBUTE_UNUSED,
  #if defined (__APPLE__) || defined (BSD)
  #define USE_OPENPTY
  #elif defined (__linux__)
@@ -191,7 +207,7 @@ index 0d12f7e..a063b47 100644
  #elif defined (__sun__)
  #define USE_CLONE_DEVICE "/dev/ptmx"
  #elif defined (_AIX)
-@@ -1199,8 +1199,8 @@
+@@ -1195,8 +1195,8 @@ allocate_pty_desc (pty_desc **desc) {
     int  master_fd   = -1;
     char *slave_name = NULL;
  
@@ -202,3 +218,6 @@ index 0d12f7e..a063b47 100644
  #elif defined (USE_OPENPTY)
    status = openpty (&master_fd, &slave_fd, NULL, NULL, NULL);
  #elif defined (USE_CLONE_DEVICE)
+-- 
+2.34.0
+
diff --git a/srcpkgs/gcc/template b/srcpkgs/gcc/template
index 09727ef34fb2..d7adc658eeb6 100644
--- a/srcpkgs/gcc/template
+++ b/srcpkgs/gcc/template
@@ -3,35 +3,35 @@
 # which use the version number.
 
 pkgname=gcc
-# we are using a 10-stable git snapshot alpine is using in order
-# to get regression fixes not yet incorporate into a stable release
-# it should be possible to switch back to stable with 10.3 or 11
-version=10.2.1pre1
-revision=3
-_patchver="${version%pre*}"
+# we are using an 11-stable 9b6ad13 git snapshot alpine is using
+# in order to get regression fixes not yet incorporated into the
+# latest stable release
+version=11.2.1git20211128
+revision=1
+_patchver="${version%git*}"
 _minorver="${_patchver%.*}"
 _majorver="${_minorver%.*}"
-_gmp_version=6.2.0
+_gmp_version=6.2.1
 _mpfr_version=4.1.0
-_mpc_version=1.1.0
-_isl_version=0.21
-wrksrc=gcc-${version/pre/_pre}
+_mpc_version=1.2.1
+_isl_version=0.24
+wrksrc=gcc-${version/git/_git}
 short_desc="GNU Compiler Collection"
 maintainer="Enno Boland <gottox@voidlinux.org>"
 homepage="http://gcc.gnu.org"
 license="GFDL-1.2-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
 # *-musl builders have issues fetching https://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz
 distfiles="
- https://dev.alpinelinux.org/~nenolod/gcc-${version/pre/_pre}.tar.xz
+ https://dev.alpinelinux.org/~nenolod/gcc-${version/git/_git}.tar.xz
  https://gmplib.org/download/gmp/gmp-${_gmp_version}.tar.xz
  ${GNU_SITE}/mpfr/mpfr-${_mpfr_version}.tar.xz
  ${GNU_SITE}/mpc/mpc-${_mpc_version}.tar.gz
  ${SOURCEFORGE_SITE}/libisl/isl-${_isl_version}.tar.bz2"
-checksum="772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 258e6cd51b3fbdfc185c716d55f82c08aff57df0c6fbd143cf6ed561267a1526
+checksum="a058c487c36f07a2c98ab2297c990136516cd7444f73199f0da8bf8232641d92
+ fd4829912cddd12f84181c3451cc752be224643e87fac497b69edddadc49b4f2
  0c98a3f1732ff6ca4ea690552079da9c597872d30e96ec28414ee23c95558a7f
- 6985c538143c1208dcb1ac42cedad6ff52e267b47e5f970183a3e75125b43c2e
- d18ca11f8ad1a39ab6d03d3dcb3365ab416720fcb65b42d69f34f51bf0a0e859"
+ 17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459
+ fcf78dd9656c10eb8cf9fbd5f59a0b6b01386205fe1934b3b287a0a1898145c0"
 
 nopie=yes
 lib32disabled=yes

From 9bbfea5bb0a512550d8ab0f5abdbf415f86434ee Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Tue, 4 Jan 2022 22:51:14 -0800
Subject: [PATCH 3/3] libtool: revbump for gcc update

---
 srcpkgs/libtool/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/libtool/template b/srcpkgs/libtool/template
index b9972df70341..46ddf4f1c70d 100644
--- a/srcpkgs/libtool/template
+++ b/srcpkgs/libtool/template
@@ -1,7 +1,7 @@
 # Template file for 'libtool'
 pkgname=libtool
 version=2.4.6
-revision=6
+revision=7
 build_style=gnu-configure
 hostmakedepends="texinfo perl automake help2man xz"
 depends="tar sed"

^ permalink raw reply	[flat|nested] 144+ messages in thread

* Re: gcc: update to 11.2.1git20211128
  2022-01-06  6:15 [PR PATCH] gcc: update to 11.2.1git20211128 Oreo639
                   ` (3 preceding siblings ...)
  2022-01-26 23:16 ` [PR PATCH] [Updated] " oreo639
@ 2022-01-26 23:25 ` oreo639
  2022-01-26 23:25 ` oreo639
                   ` (137 subsequent siblings)
  142 siblings, 0 replies; 144+ messages in thread
From: oreo639 @ 2022-01-26 23:25 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 524 bytes --]

New comment by oreo639 on void-packages repository

https://github.com/void-linux/void-packages/pull/34902#issuecomment-1022651196

Comment:
> => WARNING: gcc-11.2.1git20211128_1: libcp1plugin.so.0 not found in common/shlibs!

`libcp1plugin.so.0` is in the current gcc 10 package and isn't in shlibs, so I assume that isn't an issue since nothing depends on it.

Same for all of the `WARNING: usr/lib/*.so should be in -devel package` afaik, so unless the maintainers think it is an issue, it probably isn't a big deal.

^ permalink raw reply	[flat|nested] 144+ messages in thread

* Re: gcc: update to 11.2.1git20211128
  2022-01-06  6:15 [PR PATCH] gcc: update to 11.2.1git20211128 Oreo639
                   ` (4 preceding siblings ...)
  2022-01-26 23:25 ` oreo639
@ 2022-01-26 23:25 ` oreo639
  2022-02-16 21:18 ` lane-brain
                   ` (136 subsequent siblings)
  142 siblings, 0 replies; 144+ messages in thread
From: oreo639 @ 2022-01-26 23:25 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 525 bytes --]

New comment by oreo639 on void-packages repository

https://github.com/void-linux/void-packages/pull/34902#issuecomment-1022651196

Comment:
> => WARNING: gcc-11.2.1git20211128_1: libcp1plugin.so.0 not found in common/shlibs!

`libcp1plugin.so.0` is in the current gcc 10 package and isn't in shlibs, so I assume that isn't an issue since nothing depends on it.

Same for all of the `WARNING: usr/lib/*.so should be in -devel package` afaict, so unless the maintainers think it is an issue, it probably isn't a big deal.

^ permalink raw reply	[flat|nested] 144+ messages in thread

* Re: gcc: update to 11.2.1git20211128
  2022-01-06  6:15 [PR PATCH] gcc: update to 11.2.1git20211128 Oreo639
                   ` (5 preceding siblings ...)
  2022-01-26 23:25 ` oreo639
@ 2022-02-16 21:18 ` lane-brain
  2022-02-17  1:56 ` oreo639
                   ` (135 subsequent siblings)
  142 siblings, 0 replies; 144+ messages in thread
From: lane-brain @ 2022-02-16 21:18 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 201 bytes --]

New comment by lane-brain on void-packages repository

https://github.com/void-linux/void-packages/pull/34902#issuecomment-1042319967

Comment:
@oreo639 is there any way that I can assist this effort?

^ permalink raw reply	[flat|nested] 144+ messages in thread

* Re: gcc: update to 11.2.1git20211128
  2022-01-06  6:15 [PR PATCH] gcc: update to 11.2.1git20211128 Oreo639
                   ` (6 preceding siblings ...)
  2022-02-16 21:18 ` lane-brain
@ 2022-02-17  1:56 ` oreo639
  2022-02-17  1:56 ` oreo639
                   ` (134 subsequent siblings)
  142 siblings, 0 replies; 144+ messages in thread
From: oreo639 @ 2022-02-17  1:56 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 317 bytes --]

New comment by oreo639 on void-packages repository

https://github.com/void-linux/void-packages/pull/34902#issuecomment-1042490083

Comment:
Not that I am aware of. If the maintainers want me to make any changes they can let me know. If they want to use it as a reference for their own gcc 11.2 port, they can do so.

^ permalink raw reply	[flat|nested] 144+ messages in thread

* Re: gcc: update to 11.2.1git20211128
  2022-01-06  6:15 [PR PATCH] gcc: update to 11.2.1git20211128 Oreo639
                   ` (7 preceding siblings ...)
  2022-02-17  1:56 ` oreo639
@ 2022-02-17  1:56 ` oreo639
  2022-04-14  2:41 ` oreo639
                   ` (133 subsequent siblings)
  142 siblings, 0 replies; 144+ messages in thread
From: oreo639 @ 2022-02-17  1:56 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 331 bytes --]

New comment by oreo639 on void-packages repository

https://github.com/void-linux/void-packages/pull/34902#issuecomment-1042490083

Comment:
Not that I am aware of at the moment. If the maintainers want me to make any changes they can let me know. If they want to use it as a reference for their own gcc 11.2 port, they can do so.

^ permalink raw reply	[flat|nested] 144+ messages in thread

* Re: gcc: update to 11.2.1git20211128
  2022-01-06  6:15 [PR PATCH] gcc: update to 11.2.1git20211128 Oreo639
                   ` (8 preceding siblings ...)
  2022-02-17  1:56 ` oreo639
@ 2022-04-14  2:41 ` oreo639
  2022-07-14  2:13 ` github-actions
                   ` (132 subsequent siblings)
  142 siblings, 0 replies; 144+ messages in thread
From: oreo639 @ 2022-04-14  2:41 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 741 bytes --]

New comment by oreo639 on void-packages repository

https://github.com/void-linux/void-packages/pull/34902#issuecomment-1022651196

Comment:
> => WARNING: libada-11.2.1git20211128_1: libgnarl-11.so not found in common/shlibs!
> => WARNING: libada-11.2.1git20211128_1: libgnat-11.so not found in common/shlibs!

Thank you for pointing that out, fixed.

> => WARNING: gcc-11.2.1git20211128_1: libcp1plugin.so.0 not found in common/shlibs!

`libcp1plugin.so.0` is in the current gcc 10 package and isn't in shlibs, so I assume that isn't an issue since nothing depends on it.

Same for all of the `WARNING: usr/lib/*.so should be in -devel package` afaict, so unless the maintainers think it is an issue, it probably isn't a big deal.

^ permalink raw reply	[flat|nested] 144+ messages in thread

* Re: gcc: update to 11.2.1git20211128
  2022-01-06  6:15 [PR PATCH] gcc: update to 11.2.1git20211128 Oreo639
                   ` (9 preceding siblings ...)
  2022-04-14  2:41 ` oreo639
@ 2022-07-14  2:13 ` github-actions
  2022-07-17 17:44 ` motorto
                   ` (131 subsequent siblings)
  142 siblings, 0 replies; 144+ messages in thread
From: github-actions @ 2022-07-14  2:13 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 305 bytes --]

New comment by github-actions[bot] on void-packages repository

https://github.com/void-linux/void-packages/pull/34902#issuecomment-1183905116

Comment:
Pull Requests become stale 90 days after last activity and are closed 14 days after that.  If this pull request is still relevant bump it or assign it.

^ permalink raw reply	[flat|nested] 144+ messages in thread

* Re: gcc: update to 11.2.1git20211128
  2022-01-06  6:15 [PR PATCH] gcc: update to 11.2.1git20211128 Oreo639
                   ` (10 preceding siblings ...)
  2022-07-14  2:13 ` github-actions
@ 2022-07-17 17:44 ` motorto
  2022-07-17 17:45 ` motorto
                   ` (130 subsequent siblings)
  142 siblings, 0 replies; 144+ messages in thread
From: motorto @ 2022-07-17 17:44 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 264 bytes --]

New comment by motorto on void-packages repository

https://github.com/void-linux/void-packages/pull/34902#issuecomment-1186579004

Comment:
@oreo639: could you bump this so that this work isn't lost ?  I will try to build on my x86_64-musl system and report back

^ permalink raw reply	[flat|nested] 144+ messages in thread

* Re: gcc: update to 11.2.1git20211128
  2022-01-06  6:15 [PR PATCH] gcc: update to 11.2.1git20211128 Oreo639
                   ` (11 preceding siblings ...)
  2022-07-17 17:44 ` motorto
@ 2022-07-17 17:45 ` motorto
  2022-08-12 13:29 ` [PR PATCH] [Updated] " oreo639
                   ` (129 subsequent siblings)
  142 siblings, 0 replies; 144+ messages in thread
From: motorto @ 2022-07-17 17:45 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 295 bytes --]

New comment by motorto on void-packages repository

https://github.com/void-linux/void-packages/pull/34902#issuecomment-1186579004

Comment:
@oreo639: could you bump this so that this work isn't lost ?  I will try to build on my x86_64-musl system and report back.

And maybe bump to 12.1.0 ?

^ permalink raw reply	[flat|nested] 144+ messages in thread

* Re: [PR PATCH] [Updated] gcc: update to 11.2.1git20211128
  2022-01-06  6:15 [PR PATCH] gcc: update to 11.2.1git20211128 Oreo639
                   ` (12 preceding siblings ...)
  2022-07-17 17:45 ` motorto
@ 2022-08-12 13:29 ` oreo639
  2022-08-13  6:32 ` [PR PATCH] [Updated] gcc: update to 12.1.0 oreo639
                   ` (128 subsequent siblings)
  142 siblings, 0 replies; 144+ messages in thread
From: oreo639 @ 2022-08-12 13:29 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1728 bytes --]

There is an updated pull request by oreo639 against master on the void-packages repository

https://github.com/oreo639/void-packages gcc11
https://github.com/void-linux/void-packages/pull/34902

gcc: update to 11.2.1git20211128
<!-- Uncomment relevant sections and delete options which are not applicable -->
[ci skip]

Note: depends on https://github.com/void-linux/void-packages/pull/32330
(Otherwise, it would work until you try recompiling glibc)

I tested this PR with glibc and it appears to work fine so far, aside from the issue mentioned earlier.
I also tested this PR with x86_64-musl, and it appears to run fine in a musl chroot, and recompiling and installing musl with gcc 11 doesn't appear to result in any issues.

Please let me know if there are any issues.

(Related: https://github.com/void-linux/void-packages/pull/34153)

#### Testing the changes
- I tested the changes in this PR: **briefly**

<!--
#### New package
- This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please [skip CI](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration)
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->

#### Local build testing
- I built this PR locally for my native architecture, (x86_64-glibc)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - x86_64-musl

A patch file from https://github.com/void-linux/void-packages/pull/34902.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-gcc11-34902.patch --]
[-- Type: text/x-diff, Size: 38315 bytes --]

From 4a911117ec972ee83d7a25e170798a892095b9df Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 01:14:21 -0700
Subject: [PATCH 1/3] binutils: update to 3.38

---
 ...e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch | 60 -----------------
 .../patches/ppc64-revert-gnu-attributes.patch | 66 +++++--------------
 srcpkgs/binutils/template                     |  9 +--
 3 files changed, 22 insertions(+), 113 deletions(-)
 delete mode 100644 srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch

diff --git a/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch b/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch
deleted file mode 100644
index a55432d83cff..000000000000
--- a/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff Mon Sep 17 00:00:00 2001
-From: "H.J. Lu" <hjl.tools@gmail.com>
-Date: Mon, 16 Nov 2020 06:37:53 -0800
-Subject: [PATCH] elf: Set rel_from_abs to 1 for __ehdr_start
-
-bfdlink.h has
-
-  /* Symbol will be converted from absolute to section-relative.  Set for
-     symbols defined by a script from "dot" (also SEGMENT_START or ORIGIN)
-     outside of an output section statement.  */
-  unsigned int rel_from_abs : 1;
-
-linker.c has
-
-.{* Return TRUE if the symbol described by a linker hash entry H
-.   is going to be absolute.  Linker-script defined symbols can be
-.   converted from absolute to section-relative ones late in the
-.   link.  Use this macro to correctly determine whether the symbol
-.   will actually end up absolute in output.  *}
-.#define bfd_is_abs_symbol(H) \
-.  (((H)->type == bfd_link_hash_defined \
-.    || (H)->type == bfd_link_hash_defweak) \
-.   && bfd_is_abs_section ((H)->u.def.section) \
-.   && !(H)->rel_from_abs)
-.
-
-Set rel_from_abs to 1 for __ehdr_start which will be converted from
-absolute to section-relative in assign_file_positions_for_load_sections.
-
-	PR ld/26869
-	* ldelf.c (ldelf_before_allocation): Set rel_from_abs to 1 for
-	__ehdr_start.
-	* testsuite/ld-i386/i386.exp: Run pr26869.
-	* testsuite/ld-i386/pr26869.d: New file.
-	* testsuite/ld-i386/pr26869.s: Likewise.
-
-(cherry picked from commit cbd5b99cce073273f668b154d4514e8e7e7ccc51)
----
- ld/ChangeLog                   |  9 +++++++++
- ld/ldelf.c                     |  2 ++
- ld/testsuite/ld-i386/i386.exp  |  1 +
- ld/testsuite/ld-i386/pr26869.d | 14 ++++++++++++++
- ld/testsuite/ld-i386/pr26869.s |  3 +++
- 5 files changed, 29 insertions(+)
- create mode 100644 ld/testsuite/ld-i386/pr26869.d
- create mode 100644 ld/testsuite/ld-i386/pr26869.s
-
-diff --git a/ld/ldelf.c b/ld/ldelf.c
-index bada3ade2d7..831d032fe56 100644
---- a/ld/ldelf.c
-+++ b/ld/ldelf.c
-@@ -1589,6 +1589,8 @@ ldelf_before_allocation (char *audit, char *depaudit,
- 		      (char *) &ehdr_start->u + sizeof ehdr_start->u.def.next,
- 		      sizeof ehdr_start_save_u);
- 	      ehdr_start->type = bfd_link_hash_defined;
-+	      /* It will be converted to section-relative later.  */
-+	      ehdr_start->rel_from_abs = 1;
- 	      ehdr_start->u.def.section = bfd_abs_section_ptr;
- 	      ehdr_start->u.def.value = 0;
- 	    }
diff --git a/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch b/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
index 5de937f4fcce..1c208dd8955c 100644
--- a/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
+++ b/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
@@ -1,39 +1,24 @@
-From b1faf99f3e546df2cd302bb1ad36a2078224fe8b Mon Sep 17 00:00:00 2001
+From bbf05b742fde518fb97c789b043fe0d3aaf549f0 Mon Sep 17 00:00:00 2001
 From: Ariadne Conill <ariadne@dereferenced.org>
-Date: Fri, 30 Oct 2020 16:59:48 -0600
+Date: Tue, 21 Sep 2021 14:53:13 +0000
 Subject: [PATCH] Revert "PR25882, .gnu.attributes are not checked for shared
  libraries"
 
+This revert is needed to avoid wrongly tagging objects with the incompatible
+IBM long double ABI, which is not supported by musl and will result in
+linking errors if used.
+
 This reverts commit a8acd6eeb6dc2cc5460ece90f90ebe36b56b20ba.
 ---
- bfd/ChangeLog     | 6 ------
- bfd/elf32-tic6x.c | 3 ---
- ld/ChangeLog      | 6 ------
- ld/ldlang.c       | 9 ++++-----
- 4 files changed, 4 insertions(+), 20 deletions(-)
+ bfd/elf32-tic6x.c |  3 ---
+ ld/ldlang.c       | 10 ++++------
+ 2 files changed, 4 insertions(+), 9 deletions(-)
 
-diff --git a/bfd/ChangeLog b/bfd/ChangeLog
-index 9fac12538a..b5461494e8 100644
---- a/bfd/ChangeLog
-+++ b/bfd/ChangeLog
-@@ -1422,12 +1422,6 @@
- 	accessing root.u.def of symbols.  Also check root.u.def.section
- 	is non-NULL.  Reverse tests so as to make the logic positive.
- 
--2020-05-01  Alan Modra  <amodra@gmail.com>
--
--	PR 25882
--	* elf32-tic6x.c (elf32_tic6x_merge_attributes): Don't transfer
--	Tag_ABI_PIC or Tag_ABI_PID from dynamic objects to the output.
--
- 2020-05-01  Alan Modra  <amodra@gmail.com>
- 
- 	PR 25882
 diff --git a/bfd/elf32-tic6x.c b/bfd/elf32-tic6x.c
-index b8b916bfd3..91bb6a10b1 100644
+index 5754f3cb860..3ad1d612749 100644
 --- a/bfd/elf32-tic6x.c
 +++ b/bfd/elf32-tic6x.c
-@@ -3748,9 +3748,6 @@ elf32_tic6x_merge_attributes (bfd *ibfd, struct bfd_link_info *info)
+@@ -3735,9 +3735,6 @@ elf32_tic6x_merge_attributes (bfd *ibfd, struct bfd_link_info *info)
  
  	case Tag_ABI_PIC:
  	case Tag_ABI_PID:
@@ -43,36 +28,20 @@ index b8b916bfd3..91bb6a10b1 100644
  	  if (out_attr[i].i > in_attr[i].i)
  	    out_attr[i].i = in_attr[i].i;
  	  break;
-diff --git a/ld/ChangeLog b/ld/ChangeLog
-index 4eec7d2977..b93452f70c 100644
---- a/ld/ChangeLog
-+++ b/ld/ChangeLog
-@@ -1319,12 +1319,6 @@
- 	* testsuite/ld-aarch64/farcall-group.d: New test driver.
- 	* testsuite/ld-aarch64/aarch64-elf.exp: Run the new test.
- 
--2020-05-01  Alan Modra  <amodra@gmail.com>
--
--	PR 25882
--	* ldlang.c (lang_check): Call bfd_merge_private_bfd_data for
--	shared libraries.
--
- 2020-05-01  Alan Modra  <amodra@gmail.com>
- 
- 	* po/BLD-POTFILES.in: Regenerate.
 diff --git a/ld/ldlang.c b/ld/ldlang.c
-index 9977195074..173d8ec349 100644
+index 37b64c89ee1..f13beaef9d9 100644
 --- a/ld/ldlang.c
 +++ b/ld/ldlang.c
-@@ -6972,12 +6972,11 @@ lang_check (void)
+@@ -7071,13 +7071,11 @@ lang_check (void)
  		   bfd_printable_name (input_bfd), input_bfd,
  		   bfd_printable_name (link_info.output_bfd));
  	}
 -
 -      /* If the input bfd has no contents, it shouldn't set the
 -	 private data of the output bfd.  */
--      else if ((input_bfd->flags & DYNAMIC) != 0
--	       || bfd_count_sections (input_bfd) != 0)
+-      else if (!file->flags.just_syms
+-	       && ((input_bfd->flags & DYNAMIC) != 0
+-		   || bfd_count_sections (input_bfd) != 0))
 +      else if (bfd_count_sections (input_bfd))
  	{
 +	  /* If the input bfd has no contents, it shouldn't set the
@@ -82,5 +51,4 @@ index 9977195074..173d8ec349 100644
  
  	  /* If we aren't supposed to warn about mismatched input
 -- 
-2.29.2
-
+2.33.0
diff --git a/srcpkgs/binutils/template b/srcpkgs/binutils/template
index 6270f8618c87..b2b1c47d22fc 100644
--- a/srcpkgs/binutils/template
+++ b/srcpkgs/binutils/template
@@ -1,19 +1,20 @@
 # Template file for 'binutils'
 pkgname=binutils
-version=2.35.1
-revision=4
+version=2.38
+revision=1
 bootstrap=yes
+hostmakedepends="pkg-config"
 makedepends="zlib-devel"
 short_desc="GNU binary utilities"
 maintainer="Enno Boland <gottox@voidlinux.org>"
 license="GPL-3.0-or-later"
 homepage="http://www.gnu.org/software/binutils/"
 distfiles="${GNU_SITE}/$pkgname/$pkgname-$version.tar.xz"
-checksum=3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
+checksum=e316477a914f567eccc34d5d29785b8b0f5a10208d36bbacedcc39048ecfe024
 
 subpackages="binutils-doc"
 if [ "$CHROOT_READY" ]; then
-	hostmakedepends="flex perl texinfo"
+	hostmakedepends+=" flex perl texinfo"
 	makedepends+=" elfutils-devel"
 	checkdepends="bc"
 	depends="binutils-doc"

From 7d2107a49bcf027cb5ec277324e631427af72f19 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 06:26:59 -0700
Subject: [PATCH 2/3] gcc: update to 12.1.0

---
 common/shlibs                                 |  10 +-
 srcpkgs/gcc/files/gccgo-musl.patch            |  74 +++--------
 srcpkgs/gcc/files/libgnarl-musl.patch         |  18 +--
 srcpkgs/gcc/files/libssp-musl.patch           |  10 +-
 ...c21f3f5726823e19728fdd1571a14aae0fb3.patch | 105 ++++++++++++++++
 ...08065bdd36fb1a9b6aad9666b1edb5e06474.patch | 115 ++++++++++++++++++
 srcpkgs/gcc/patches/libffi_gnulinux.patch     |  11 --
 .../gcc/patches/libgcc-ibm128-no-tag.patch    |  10 +-
 srcpkgs/gcc/patches/mips-sgidefs_h.patch      |   3 +-
 srcpkgs/gcc/template                          |  25 ++--
 10 files changed, 273 insertions(+), 108 deletions(-)
 create mode 100644 srcpkgs/gcc/patches/3b21c21f3f5726823e19728fdd1571a14aae0fb3.patch
 create mode 100644 srcpkgs/gcc/patches/49d508065bdd36fb1a9b6aad9666b1edb5e06474.patch
 delete mode 100644 srcpkgs/gcc/patches/libffi_gnulinux.patch

diff --git a/common/shlibs b/common/shlibs
index 61924610cc52..c6400b566966 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -60,7 +60,7 @@ libcc1plugin.so.0 gcc-6.2.1_1
 libitm.so.1 libitm-4.7.3_1
 liblto_plugin.so.0 gcc-4.7.3_1
 libgcc_s.so.1 libgcc-4.4.0_1
-libgo.so.16 libgo-10.2.0_1
+libgo.so.21 libgo-12.1.0_1
 libgccjit.so.0 libgccjit-10.2.1pre1_1
 libperl.so.5.34 perl-5.34.0_1
 libgmp.so.10 gmp-5.0.1_1
@@ -849,8 +849,8 @@ libgdkmm-2.4.so.1 gtkmm2-2.24.0_1
 libgtkmm-2.4.so.1 gtkmm2-2.24.0_1
 libquadmath.so.0 libquadmath-4.4.0_1
 libgfortran.so.5 libgfortran-8.2.0_1
-libgnarl-10.so libada-10.2.0_1
-libgnat-10.so libada-10.2.0_1
+libgnarl-12.so libada-12.1.0_1
+libgnat-12.so libada-12.1.0_1
 libwebp.so.7 libwebp-0.6.0_1
 libwebpmux.so.3 libwebp-0.6.0_1
 libwebpdemux.so.2 libwebp-0.5.0_1
@@ -1701,8 +1701,8 @@ libextractor.so.3 libextractor-1.1_1
 libextractor_common.so.1 libextractor-1.1_1
 libpano13.so.3 libpano13-2.9.19_1
 libubsan.so.1 libsanitizer-8.2.0_1
-libtsan.so.0 libsanitizer-6.3.0_1
-libasan.so.6 libsanitizer-10.2.0_1
+libtsan.so.2 libsanitizer-12.1.0_1
+libasan.so.8 libsanitizer-12.1.0_1
 liblsan.so.0 libsanitizer-6.3.0_1
 libvtv.so.0 libvtv-6.3.0_1
 libatomic.so.1 libatomic-4.9.0_1
diff --git a/srcpkgs/gcc/files/gccgo-musl.patch b/srcpkgs/gcc/files/gccgo-musl.patch
index 9762739615af..632ef951097b 100644
--- a/srcpkgs/gcc/files/gccgo-musl.patch
+++ b/srcpkgs/gcc/files/gccgo-musl.patch
@@ -53,17 +53,6 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
  	p := sysMmap(addr, n, prot, flags, fd, off)
  	if uintptr(p) == _MAP_FAILED {
  		return nil, errno()
---- a/libgo/go/runtime/signal_gccgo.go
-+++ b/libgo/go/runtime/signal_gccgo.go
-@@ -111,7 +111,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")
 --- a/libgo/go/syscall/errstr.go
 +++ b/libgo/go/syscall/errstr.go
 @@ -5,7 +5,6 @@
@@ -140,55 +129,6 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
  		plwoff = &lwoff
  	}
  	n, err = splice(rfd, plroff, wfd, plwoff, len, flags)
---- 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
---- a/libgo/runtime/go-signal.c	2020-07-23 08:35:19.004402840 +0200
-+++ b/libgo/runtime/go-signal.c	2020-08-09 21:35:54.352886232 +0200
-@@ -224,7 +224,11 @@
- #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;
-+	#ifdef __PPC64__
-+		ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.gp_regs[32];
-+	#else
-+		ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.gregs[32];
-+	#endif
- #elif defined(__PPC__) && defined(_AIX)
- 	ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.jmp_context.iar;
- #elif defined(__aarch64__) && defined(__linux__)
-@@ -333,7 +337,7 @@
- 		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(__linux__) && defined(__GLIBC__)
- 	  {
- 		mcontext_t *m = &((ucontext_t*)(context))->uc_mcontext;
- 		int i;
 --- a/libgo/runtime/runtime.h
 +++ b/libgo/runtime/runtime.h
 @@ -500,10 +500,13 @@ int __go_setcontext(__go_context_t*);
@@ -220,3 +160,17 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
  #if defined(HAVE_SYS_UTSNAME_H)
  #include <sys/utsname.h>
  #endif
+--- a/libgo/go/runtime/os_linux.go
++++ a/libgo/go/runtime/os_linux.go
+@@ -363,9 +363,9 @@
+ 
+ 	var timerid int32
+ 	var sevp _sigevent
+-	sevp.sigev_notify = _SIGEV_THREAD_ID
++	sevp.sigev_notify = 4
+ 	sevp.sigev_signo = _SIGPROF
+-	*((*int32)(unsafe.Pointer(&sevp._sigev_un))) = int32(mp.procid)
++	*((*int32)(unsafe.Pointer(&sevp.sigev_notify_function))) = int32(mp.procid)
+ 	ret := timer_create(_CLOCK_THREAD_CPUTIME_ID, &sevp, &timerid)
+ 	if ret != 0 {
+ 		// If we cannot create a timer for this M, leave profileTimerValid false
diff --git a/srcpkgs/gcc/files/libgnarl-musl.patch b/srcpkgs/gcc/files/libgnarl-musl.patch
index 99a734c42c90..91c95949e0e9 100644
--- a/srcpkgs/gcc/files/libgnarl-musl.patch
+++ b/srcpkgs/gcc/files/libgnarl-musl.patch
@@ -5,7 +5,7 @@ Reason: Patch libgnarl to not use function missing from musl.
 diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/libgnarl/s-osinte__linux.ads
 --- a/gcc/ada/libgnarl/s-osinte__linux.ads	2018-01-11 00:55:25.000000000 -0800
 +++ b/gcc/ada/libgnarl/s-osinte__linux.ads	2018-11-01 16:16:23.372452951 -0700
-@@ -394,12 +394,6 @@ package System.OS_Interface is
+@@ -403,12 +403,6 @@ package System.OS_Interface is
     PTHREAD_RWLOCK_PREFER_WRITER_NP              : constant := 1;
     PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP : constant := 2;
  
@@ -18,7 +18,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/l
     function pthread_rwlock_init
       (mutex : access pthread_rwlock_t;
        attr  : access pthread_rwlockattr_t) return int;
-@@ -464,11 +458,6 @@ package System.OS_Interface is
+@@ -470,11 +464,6 @@ package System.OS_Interface is
        protocol : int) return int;
     pragma Import (C, pthread_mutexattr_setprotocol);
  
@@ -33,7 +33,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/l
 diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/libgnarl/s-taprop__linux.adb
 --- a/gcc/ada/libgnarl/s-taprop__linux.adb	2018-01-11 00:55:25.000000000 -0800
 +++ b/gcc/ada/libgnarl/s-taprop__linux.adb	2018-11-13 11:28:36.433964449 -0800
-@@ -202,9 +202,6 @@ package body System.Task_Primitives.Oper
+@@ -198,9 +198,6 @@ package body System.Task_Primitives.Oper
     pragma Import
       (C, GNAT_pthread_condattr_setup, "__gnat_pthread_condattr_setup");
  
@@ -43,7 +43,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
     --  We do not have pragma Linker_Options ("-lcap"); here, because this
     --  library is not present on many Linux systems. 'libcap' is the Linux
     --  "capabilities" library, called by __gnat_has_cap_sys_nice.
-@@ -214,38 +211,6 @@ package body System.Task_Primitives.Oper
+@@ -210,38 +207,6 @@ package body System.Task_Primitives.Oper
     --  Convert Ada priority to Linux priority. Priorities are 1 .. 99 on
     --  GNU/Linux, so we map 0 .. 98 to 1 .. 99.
  
@@ -76,13 +76,13 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
 -      return Ceiling_Support;
 -   end Get_Ceiling_Support;
 -
--   pragma Warnings (Off, "non-static call not allowed in preelaborated unit");
+-   pragma Warnings (Off, "non-preelaborable call not allowed*");
 -   Ceiling_Support : constant Boolean := Get_Ceiling_Support;
--   pragma Warnings (On, "non-static call not allowed in preelaborated unit");
+-   pragma Warnings (On, "non-preelaborable call not allowed*");
     --  True if the locking policy is Ceiling_Locking, and the current process
     --  has permission to use this policy. The process has permission if it is
     --  running as 'root', or if the capability was set by the setcap command,
-@@ -348,7 +313,9 @@ package body System.Task_Primitives.Oper
+@@ -344,7 +309,9 @@ package body System.Task_Primitives.Oper
     -- Init_Mutex --
     ----------------
  
@@ -92,7 +92,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
        Mutex_Attr : aliased pthread_mutexattr_t;
        Result, Result_2 : C.int;
  
-@@ -360,16 +327,7 @@ package body System.Task_Primitives.Oper
+@@ -356,16 +323,7 @@ package body System.Task_Primitives.Oper
           return Result;
        end if;
  
@@ -110,7 +110,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
           Result := pthread_mutexattr_setprotocol
             (Mutex_Attr'Access, PTHREAD_PRIO_INHERIT);
           pragma Assert (Result = 0);
-@@ -409,11 +367,6 @@ package body System.Task_Primitives.Oper
+@@ -405,11 +363,6 @@ package body System.Task_Primitives.Oper
              Result := pthread_rwlockattr_init (RWlock_Attr'Access);
              pragma Assert (Result = 0);
  
diff --git a/srcpkgs/gcc/files/libssp-musl.patch b/srcpkgs/gcc/files/libssp-musl.patch
index b21a2c29e57c..99f248401a1c 100644
--- a/srcpkgs/gcc/files/libssp-musl.patch
+++ b/srcpkgs/gcc/files/libssp-musl.patch
@@ -2,9 +2,9 @@ First part taken from Alpine.
 
 Second part added to prevent gccgo from thinking it can -fsplit-stack on musl.
 
---- a/gcc/gcc.c
-+++ b/gcc/gcc.c
-@@ -874,10 +874,15 @@ proper position among the other output files.  */
+--- a/gcc/gcc.cc
++++ b/gcc/gcc.cc
+@@ -984,10 +984,15 @@ proper position among the other output f
  #define LINK_GCC_C_SEQUENCE_SPEC "%G %{!nolibc:%L %G}"
  #endif
  
@@ -22,10 +22,10 @@ Second part added to prevent gccgo from thinking it can -fsplit-stack on musl.
  #else
  #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
  		       "|fstack-protector-strong|fstack-protector-explicit" \
-@@ -1155,7 +1160,7 @@ static const char *cc1_options =
+@@ -1280,7 +1285,7 @@ static const char *cc1_options =
   %{-version:--version}\
   %{-help=*:--help=%*}\
-  %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %b.s}}}\
+  %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %w%b.s}}}\
 - %{fsyntax-only:-o %j} %{-param*}\
 + %{fsyntax-only:-o %j} %{-param*} " NO_SSP_SPEC "\
   %{coverage:-fprofile-arcs -ftest-coverage}\
diff --git a/srcpkgs/gcc/patches/3b21c21f3f5726823e19728fdd1571a14aae0fb3.patch b/srcpkgs/gcc/patches/3b21c21f3f5726823e19728fdd1571a14aae0fb3.patch
new file mode 100644
index 000000000000..00929202a503
--- /dev/null
+++ b/srcpkgs/gcc/patches/3b21c21f3f5726823e19728fdd1571a14aae0fb3.patch
@@ -0,0 +1,105 @@
+From 3b21c21f3f5726823e19728fdd1571a14aae0fb3 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <siarheit@google.com>
+Date: Mon, 27 Jun 2022 13:27:24 +0100
+Subject: [PATCH] c++: avoid <memory> poisoning on musl [PR106102]
+
+On musl <pthread.h> uses calloc() (via <sched.h>). <memory> includes
+it indirectly and exposes use of poisoned calloc() when module code
+is built:
+
+    /build/build/./prev-gcc/xg++ ... ../../gcc-13-20220626/gcc/cp/mapper-resolver.cc
+        In file included from /<<NIX>>/musl-1.2.3-dev/include/pthread.h:30,
+                 from /build/build/prev-x86_64-unknown-linux-musl/libstdc++-v3/include/x86_64-unknown-linux-musl/bits/gthr-default.h:35,
+                 ....
+                 from /build/build/prev-x86_64-unknown-linux-musl/libstdc++-v3/include/memory:77,
+                 from ../../gcc-13-20220626/gcc/../libcody/cody.hh:24,
+                 from ../../gcc-13-20220626/gcc/cp/../../c++tools/resolver.h:25,
+                 from ../../gcc-13-20220626/gcc/cp/../../c++tools/resolver.cc:23,
+                 from ../../gcc-13-20220626/gcc/cp/mapper-resolver.cc:32:
+    /<<NIX>>/musl-1.2.3-dev/include/sched.h:84:7: error: attempt to use poisoned "calloc"
+       84 | void *calloc(size_t, size_t);
+          |       ^
+    /<<NIX>>/musl-1.2.3-dev/include/sched.h:124:36: error: attempt to use poisoned "calloc"
+      124 | #define CPU_ALLOC(n) ((cpu_set_t *)calloc(1,CPU_ALLOC_SIZE(n)))
+          |                                    ^
+
+gcc/cp/
+
+	PR c++/106102
+	* mapper-client.cc: Include <memory> via "system.h".
+	* mapper-resolver.cc: Ditto.
+	* module.cc: Ditto.
+
+libcc1/
+
+	PR c++/106102
+	* libcc1plugin.cc: Include <memory> via "system.h".
+	* libcp1plugin.cc: Ditto.
+---
+ gcc/cp/mapper-client.cc   | 1 +
+ gcc/cp/mapper-resolver.cc | 1 +
+ gcc/cp/module.cc          | 1 +
+ libcc1/libcc1plugin.cc    | 1 +
+ libcc1/libcp1plugin.cc    | 1 +
+ 5 files changed, 5 insertions(+)
+
+diff --git a/gcc/cp/mapper-client.cc b/gcc/cp/mapper-client.cc
+index 8603a886a099..fe9544b5ba43 100644
+--- a/gcc/cp/mapper-client.cc
++++ b/gcc/cp/mapper-client.cc
+@@ -27,6 +27,7 @@ along with GCC; see the file COPYING3.  If not see
+ #define INCLUDE_STRING
+ #define INCLUDE_VECTOR
+ #define INCLUDE_MAP
++#define INCLUDE_MEMORY
+ #include "system.h"
+ 
+ #include "line-map.h"
+diff --git a/gcc/cp/mapper-resolver.cc b/gcc/cp/mapper-resolver.cc
+index e3d29fb5ada1..e70d1b4ae2ca 100644
+--- a/gcc/cp/mapper-resolver.cc
++++ b/gcc/cp/mapper-resolver.cc
+@@ -25,6 +25,7 @@ along with GCC; see the file COPYING3.  If not see
+ #define INCLUDE_VECTOR
+ #define INCLUDE_ALGORITHM
+ #define INCLUDE_MAP
++#define INCLUDE_MEMORY
+ #include "system.h"
+ 
+ // We don't want or need to be aware of networking
+diff --git a/gcc/cp/module.cc b/gcc/cp/module.cc
+index 753963a4b246..8bb22c2b305a 100644
+--- a/gcc/cp/module.cc
++++ b/gcc/cp/module.cc
+@@ -206,6 +206,7 @@ Classes used:
+ 
+ #define _DEFAULT_SOURCE 1 /* To get TZ field of struct tm, if available.  */
+ #include "config.h"
++#define INCLUDE_MEMORY
+ #define INCLUDE_STRING
+ #define INCLUDE_VECTOR
+ #include "system.h"
+diff --git a/libcc1/libcc1plugin.cc b/libcc1/libcc1plugin.cc
+index 12ab5a57c8dd..bdd0bdabe77f 100644
+--- a/libcc1/libcc1plugin.cc
++++ b/libcc1/libcc1plugin.cc
+@@ -31,6 +31,7 @@
+ #undef PACKAGE_TARNAME
+ #undef PACKAGE_VERSION
+ 
++#define INCLUDE_MEMORY
+ #include "gcc-plugin.h"
+ #include "system.h"
+ #include "coretypes.h"
+diff --git a/libcc1/libcp1plugin.cc b/libcc1/libcp1plugin.cc
+index 83dab7f58b11..e2d5039a0a1f 100644
+--- a/libcc1/libcp1plugin.cc
++++ b/libcc1/libcp1plugin.cc
+@@ -32,6 +32,7 @@
+ #undef PACKAGE_TARNAME
+ #undef PACKAGE_VERSION
+ 
++#define INCLUDE_MEMORY
+ #include "gcc-plugin.h"
+ #include "system.h"
+ #include "coretypes.h"
diff --git a/srcpkgs/gcc/patches/49d508065bdd36fb1a9b6aad9666b1edb5e06474.patch b/srcpkgs/gcc/patches/49d508065bdd36fb1a9b6aad9666b1edb5e06474.patch
new file mode 100644
index 000000000000..89bd053d6d04
--- /dev/null
+++ b/srcpkgs/gcc/patches/49d508065bdd36fb1a9b6aad9666b1edb5e06474.patch
@@ -0,0 +1,115 @@
+From 49d508065bdd36fb1a9b6aad9666b1edb5e06474 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <siarheit@google.com>
+Date: Mon, 27 Jun 2022 23:42:44 +0100
+Subject: [PATCH] jit: avoid calloc() poisoning on musl [PR106102]
+
+On musl <pthread.h> uses calloc() (via <sched.h>). jit/ includes
+it directly and exposes use of poisoned calloc():
+
+    /build/build/./prev-gcc/xg++ ... ../../gcc-13-20220626/gcc/jit/jit-playback.cc
+    make[3]: *** [Makefile:1143: jit/libgccjit.o] Error 1
+    make[3]: *** Waiting for unfinished jobs....
+    In file included from /<<NIX>>/musl-1.2.3-dev/include/pthread.h:30,
+                     from ../../gcc-13-20220626/gcc/jit/jit-playback.cc:44:
+    /<<NIX>>/musl-1.2.3-dev/include/sched.h:84:7: error: attempt to use poisoned "calloc"
+       84 | void *calloc(size_t, size_t);
+          |       ^
+    /<<NIX>>/musl-1.2.3-dev/include/sched.h:124:36: error: attempt to use poisoned "calloc"
+      124 | #define CPU_ALLOC(n) ((cpu_set_t *)calloc(1,CPU_ALLOC_SIZE(n)))
+          |                                    ^
+
+The change moves <pthread.h> inclusion to "system.h" under new
+INCLUDE_PTHREAD_H guard and uses this mechanism in libgccjit.
+
+gcc/
+
+	PR c++/106102
+	* system.h: Introduce INCLUDE_PTHREAD_H macros to include <pthread.h>.
+
+gcc/jit/
+
+	PR c++/106102
+	* jit-playback.cc: Include <pthread.h> via "system.h" to avoid calloc()
+	poisoning.
+	* jit-recording.cc: Ditto.
+	* libgccjit.cc: Ditto.
+---
+ gcc/jit/jit-playback.cc  | 3 +--
+ gcc/jit/jit-recording.cc | 2 +-
+ gcc/jit/libgccjit.cc     | 2 +-
+ gcc/system.h             | 4 ++++
+ 4 files changed, 7 insertions(+), 4 deletions(-)
+
+diff --git a/gcc/jit/jit-playback.cc b/gcc/jit/jit-playback.cc
+index 6be6bdf8dea5..79714132b91a 100644
+--- a/gcc/jit/jit-playback.cc
++++ b/gcc/jit/jit-playback.cc
+@@ -19,6 +19,7 @@ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
++#define INCLUDE_PTHREAD_H
+ #include "system.h"
+ #include "coretypes.h"
+ #include "target.h"
+@@ -41,8 +42,6 @@ along with GCC; see the file COPYING3.  If not see
+ #include "diagnostic.h"
+ #include "stmt.h"
+ 
+-#include <pthread.h>
+-
+ #include "jit-playback.h"
+ #include "jit-result.h"
+ #include "jit-builtins.h"
+diff --git a/gcc/jit/jit-recording.cc b/gcc/jit/jit-recording.cc
+index 697dee66e733..f78daed2d71a 100644
+--- a/gcc/jit/jit-recording.cc
++++ b/gcc/jit/jit-recording.cc
+@@ -19,13 +19,13 @@ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
++#define INCLUDE_PTHREAD_H
+ #include "system.h"
+ #include "coretypes.h"
+ #include "tm.h"
+ #include "pretty-print.h"
+ #include "toplev.h"
+ 
+-#include <pthread.h>
+ 
+ #include "jit-builtins.h"
+ #include "jit-recording.h"
+diff --git a/gcc/jit/libgccjit.cc b/gcc/jit/libgccjit.cc
+index 0e76097b4bac..ca862662777e 100644
+--- a/gcc/jit/libgccjit.cc
++++ b/gcc/jit/libgccjit.cc
+@@ -19,12 +19,12 @@ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
++#define INCLUDE_PTHREAD_H
+ #include "system.h"
+ #include "coretypes.h"
+ #include "timevar.h"
+ #include "typed-splay-tree.h"
+ #include "cppbuiltin.h"
+-#include <pthread.h>
+ 
+ #include "libgccjit.h"
+ #include "jit-recording.h"
+diff --git a/gcc/system.h b/gcc/system.h
+index 67158b70c789..f8d42ff68150 100644
+--- a/gcc/system.h
++++ b/gcc/system.h
+@@ -753,6 +753,10 @@ extern int vsnprintf (char *, size_t, const char *, va_list);
+ #endif
+ #endif
+ 
++#ifdef INCLUDE_PTHREAD_H
++#include <pthread.h>
++#endif
++
+ #ifdef INCLUDE_ISL
+ #ifdef HAVE_isl
+ #include <isl/options.h>
diff --git a/srcpkgs/gcc/patches/libffi_gnulinux.patch b/srcpkgs/gcc/patches/libffi_gnulinux.patch
deleted file mode 100644
index 98245bd5be1a..000000000000
--- a/srcpkgs/gcc/patches/libffi_gnulinux.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/libffi/src/closures.c
-+++ b/libffi/src/closures.c
-@@ -34,7 +34,7 @@
- #include <ffi_common.h>
-
- #if !FFI_MMAP_EXEC_WRIT && !FFI_EXEC_TRAMPOLINE_TABLE
--# if __gnu_linux__ && !defined(__ANDROID__)
-+# if __linux__ && !defined(__ANDROID__)
- /* This macro indicates it may be forbidden to map anonymous memory
-    with both write and execute permission.  Code compiled when this
-    option is defined will attempt to map such pages once, but if it
diff --git a/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch b/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
index bdf5c75d917d..26d80356ad0d 100644
--- a/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
+++ b/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
@@ -29,10 +29,14 @@ diff --git a/libgcc/config/rs6000/t-linux b/libgcc/config/rs6000/t-linux
 index 4f6d4c4..fa93bb6 100644
 --- a/libgcc/config/rs6000/t-linux
 +++ b/libgcc/config/rs6000/t-linux
-@@ -1,3 +1,3 @@
+@@ -1,6 +1,6 @@
  SHLIB_MAPFILES += $(srcdir)/config/rs6000/libgcc-glibc.ver
  
--HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-minimal-toc
-+HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-gnu-attribute -mno-minimal-toc
+-HOST_LIBGCC2_CFLAGS += -mlong-double-128
++HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-gnu-attribute
+ 
+ # This is a way of selecting -mcmodel=small for ppc64, which gives
+ # smaller and faster libgcc code.  Directly specifying -mcmodel=small
+
 -- 
 2.24.0
diff --git a/srcpkgs/gcc/patches/mips-sgidefs_h.patch b/srcpkgs/gcc/patches/mips-sgidefs_h.patch
index dddfe10e8c06..78a2ce35875d 100644
--- a/srcpkgs/gcc/patches/mips-sgidefs_h.patch
+++ b/srcpkgs/gcc/patches/mips-sgidefs_h.patch
@@ -3,9 +3,10 @@
 @@ -42,7 +42,7 @@
  #define _MIPS_SIM_NABI32	2
  #define _MIPS_SIM_ABI64		3
- #elif !defined(__OpenBSD__)
+ #elif !defined(__OpenBSD__) && !defined(__FreeBSD__)
 -# include <sgidefs.h>
 +# include <asm/sgidefs.h>
  #endif
  
  #  ifndef _ABIN32
+
diff --git a/srcpkgs/gcc/template b/srcpkgs/gcc/template
index 09727ef34fb2..32ee79e32f0d 100644
--- a/srcpkgs/gcc/template
+++ b/srcpkgs/gcc/template
@@ -3,18 +3,15 @@
 # which use the version number.
 
 pkgname=gcc
-# we are using a 10-stable git snapshot alpine is using in order
-# to get regression fixes not yet incorporate into a stable release
-# it should be possible to switch back to stable with 10.3 or 11
-version=10.2.1pre1
-revision=3
+version=12.1.0
+revision=1
 _patchver="${version%pre*}"
 _minorver="${_patchver%.*}"
 _majorver="${_minorver%.*}"
-_gmp_version=6.2.0
+_gmp_version=6.2.1
 _mpfr_version=4.1.0
-_mpc_version=1.1.0
-_isl_version=0.21
+_mpc_version=1.2.1
+_isl_version=0.24
 wrksrc=gcc-${version/pre/_pre}
 short_desc="GNU Compiler Collection"
 maintainer="Enno Boland <gottox@voidlinux.org>"
@@ -22,16 +19,16 @@ homepage="http://gcc.gnu.org"
 license="GFDL-1.2-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
 # *-musl builders have issues fetching https://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz
 distfiles="
- https://dev.alpinelinux.org/~nenolod/gcc-${version/pre/_pre}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${version}/gcc-${version}.tar.xz
  https://gmplib.org/download/gmp/gmp-${_gmp_version}.tar.xz
  ${GNU_SITE}/mpfr/mpfr-${_mpfr_version}.tar.xz
  ${GNU_SITE}/mpc/mpc-${_mpc_version}.tar.gz
  ${SOURCEFORGE_SITE}/libisl/isl-${_isl_version}.tar.bz2"
-checksum="772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 258e6cd51b3fbdfc185c716d55f82c08aff57df0c6fbd143cf6ed561267a1526
+checksum="62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
+ fd4829912cddd12f84181c3451cc752be224643e87fac497b69edddadc49b4f2
  0c98a3f1732ff6ca4ea690552079da9c597872d30e96ec28414ee23c95558a7f
- 6985c538143c1208dcb1ac42cedad6ff52e267b47e5f970183a3e75125b43c2e
- d18ca11f8ad1a39ab6d03d3dcb3365ab416720fcb65b42d69f34f51bf0a0e859"
+ 17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459
+ fcf78dd9656c10eb8cf9fbd5f59a0b6b01386205fe1934b3b287a0a1898145c0"
 
 nopie=yes
 lib32disabled=yes
@@ -396,7 +393,7 @@ gcc-ada_package() {
 	depends="gcc>=${_minorver} libada-devel>=${_minorver}"
 	short_desc+=" - Ada compiler frontend"
 	pkg_install() {
-		for f in gnat{,bind,chop,clean,find,kr,link,ls,make,name,prep,xref}; do
+		for f in gnat{,bind,chop,clean,kr,link,ls,make,name,prep}; do
 			vmove usr/bin/${f}
 		done
 	}

From 338f36a2e8fd5fa28c5b7221bc64cbc75635340c Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 06:27:47 -0700
Subject: [PATCH 3/3] libtool: update to 2.4.7

---
 .../patches/0002-rename-with-sysroot.patch    | 34 +++++++++----------
 srcpkgs/libtool/template                      |  6 ++--
 2 files changed, 20 insertions(+), 20 deletions(-)

diff --git a/srcpkgs/libtool/patches/0002-rename-with-sysroot.patch b/srcpkgs/libtool/patches/0002-rename-with-sysroot.patch
index 960873c04e24..152aace96c41 100644
--- a/srcpkgs/libtool/patches/0002-rename-with-sysroot.patch
+++ b/srcpkgs/libtool/patches/0002-rename-with-sysroot.patch
@@ -13,16 +13,16 @@ Jürgen Buchmüller <pullmoll@t-online.de>
 
 --- a/configure	2015-02-15 17:14:34.000000000 +0100
 +++ b/configure	2015-10-20 13:25:12.684906339 +0200
-@@ -824,7 +824,7 @@
+@@ -832,7 +832,7 @@
  enable_fast_install
  with_aix_soname
  with_gnu_ld
 -with_sysroot
 +with_libtool_sysroot
  enable_libtool_lock
+ enable_cross_guesses
  '
-       ac_precious_vars='build_alias
-@@ -1487,7 +1487,8 @@
+@@ -1509,7 +1509,8 @@
                            shared library versioning (aka "SONAME") variant to
                            provide on AIX, [default=aix].
    --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
@@ -32,7 +32,7 @@ Jürgen Buchmüller <pullmoll@t-online.de>
                            compiler's sysroot if not specified).
  
  Some influential environment variables:
-@@ -7389,29 +7390,29 @@
+@@ -7610,29 +7611,29 @@
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
  $as_echo_n "checking for sysroot... " >&6; }
  
@@ -57,8 +57,8 @@ Jürgen Buchmüller <pullmoll@t-online.de>
     fi
     ;; #(
   /*)
--   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
-+   lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"`
+-   lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"`
++   lt_sysroot=`echo "$with_libtool_sysroot" | $SED -e "$sed_quote_subst"`
     ;; #(
   no|'')
     ;; #(
@@ -72,7 +72,7 @@ Jürgen Buchmüller <pullmoll@t-online.de>
  esac
 --- a/libltdl/configure	2015-02-15 17:15:15.000000000 +0100
 +++ b/libltdl/configure	2015-10-20 13:26:45.747914683 +0200
-@@ -775,7 +775,7 @@
+@@ -777,7 +777,7 @@
  with_aix_soname
  enable_dependency_tracking
  with_gnu_ld
@@ -81,7 +81,7 @@ Jürgen Buchmüller <pullmoll@t-online.de>
  enable_libtool_lock
  enable_ltdl_install
  '
-@@ -1429,7 +1429,8 @@
+@@ -1442,7 +1442,8 @@
                            shared library versioning (aka "SONAME") variant to
                            provide on AIX, [default=aix].
    --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
@@ -91,7 +91,7 @@ Jürgen Buchmüller <pullmoll@t-online.de>
                            compiler's sysroot if not specified).
  
  Some influential environment variables:
-@@ -6275,29 +6276,29 @@
+@@ -6397,29 +6398,29 @@
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
  $as_echo_n "checking for sysroot... " >&6; }
  
@@ -116,8 +116,8 @@ Jürgen Buchmüller <pullmoll@t-online.de>
     fi
     ;; #(
   /*)
--   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
-+   lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"`
+-   lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"`
++   lt_sysroot=`echo "$with_libtool_sysroot" | $SED -e "$sed_quote_subst"`
     ;; #(
   no|'')
     ;; #(
@@ -243,14 +243,14 @@ Jürgen Buchmüller <pullmoll@t-online.de>
  ]])
 --- a/m4/libtool.m4	2015-01-20 17:15:19.000000000 +0100
 +++ b/m4/libtool.m4	2015-10-20 15:40:04.020631813 +0200
-@@ -1245,29 +1245,29 @@
- # _LT_WITH_SYSROOT
+@@ -1243,29 +1243,29 @@
  # ----------------
  AC_DEFUN([_LT_WITH_SYSROOT],
--[AC_MSG_CHECKING([for sysroot])
+ [m4_require([_LT_DECL_SED])dnl
+-AC_MSG_CHECKING([for sysroot])
 -AC_ARG_WITH([sysroot],
 -[AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@],
-+[AC_MSG_CHECKING([for libtool-sysroot])
++AC_MSG_CHECKING([for libtool-sysroot])
 +AC_ARG_WITH([libtool-sysroot],
 +[AS_HELP_STRING([--with-libtool-sysroot@<:@=DIR@:>@],
    [Search for dependent libraries within DIR (or the compiler's sysroot
@@ -269,8 +269,8 @@ Jürgen Buchmüller <pullmoll@t-online.de>
     fi
     ;; #(
   /*)
--   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
-+   lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"`
+-   lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"`
++   lt_sysroot=`echo "$with_libtool_sysroot" | $SED -e "$sed_quote_subst"`
     ;; #(
   no|'')
     ;; #(
diff --git a/srcpkgs/libtool/template b/srcpkgs/libtool/template
index b9972df70341..08e35d466a44 100644
--- a/srcpkgs/libtool/template
+++ b/srcpkgs/libtool/template
@@ -1,7 +1,7 @@
 # Template file for 'libtool'
 pkgname=libtool
-version=2.4.6
-revision=6
+version=2.4.7
+revision=1
 build_style=gnu-configure
 hostmakedepends="texinfo perl automake help2man xz"
 depends="tar sed"
@@ -10,7 +10,7 @@ maintainer="Enno Boland <gottox@voidlinux.org>"
 license="GPL-2.0-or-later"
 homepage="http://www.gnu.org/software/libtool"
 distfiles="${GNU_SITE}/libtool/$pkgname-$version.tar.xz"
-checksum=7c87a8c2c8c0fc9cd5019e402bed4292462d00a718a7cd5f11218153bf28b26f
+checksum=4f7f217f057ce655ff22559ad221a0fd8ef84ad1fc5fcb6990cecc333aa1635d
 
 pre_configure() {
 	touch aclocal.m4 libltdl/aclocal.m4 Makefile.am libltdl/Makefile.am Makefile.in libltdl/Makefile.in

^ permalink raw reply	[flat|nested] 144+ messages in thread

* Re: [PR PATCH] [Updated] gcc: update to 12.1.0
  2022-01-06  6:15 [PR PATCH] gcc: update to 11.2.1git20211128 Oreo639
                   ` (13 preceding siblings ...)
  2022-08-12 13:29 ` [PR PATCH] [Updated] " oreo639
@ 2022-08-13  6:32 ` oreo639
  2022-08-13  6:49 ` oreo639
                   ` (127 subsequent siblings)
  142 siblings, 0 replies; 144+ messages in thread
From: oreo639 @ 2022-08-13  6:32 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1754 bytes --]

There is an updated pull request by oreo639 against master on the void-packages repository

https://github.com/oreo639/void-packages gcc11
https://github.com/void-linux/void-packages/pull/34902

gcc: update to 12.1.0
<!-- Uncomment relevant sections and delete options which are not applicable -->
[ci skip]

Edit: this PR had been updated for gcc 12.1.0

This PR depends on: https://github.com/void-linux/void-packages/pull/32330

I tested this PR with glibc. It works for the most part, and while it is "usable" with glibc 3.32, it was very buggy and gjs failed to compile. Recompiling glibc didn't make a difference 3.32.
I also tested this PR with x86_64-musl, and it appears to run fine in a musl chroot, and recompiling and installing musl with gcc 12 doesn't appear to result in any issues. (more testing is needed)

Please let me know if there are any issues.

#### Testing the changes
- I tested the changes in this PR: **briefly**

<!--
#### New package
- This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please [skip CI](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration)
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->

#### Local build testing
- I built this PR locally for my native architecture, (x86_64-glibc)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - x86_64-musl

A patch file from https://github.com/void-linux/void-packages/pull/34902.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-gcc11-34902.patch --]
[-- Type: text/x-diff, Size: 56581 bytes --]

From 842b11688db1239c834f312d691a6b752237e94f Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 01:14:21 -0700
Subject: [PATCH 1/7] binutils: update to 3.38

---
 ...e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch | 60 -----------------
 .../patches/ppc64-revert-gnu-attributes.patch | 66 +++++--------------
 srcpkgs/binutils/template                     |  9 +--
 3 files changed, 22 insertions(+), 113 deletions(-)
 delete mode 100644 srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch

diff --git a/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch b/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch
deleted file mode 100644
index a55432d83cff..000000000000
--- a/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff Mon Sep 17 00:00:00 2001
-From: "H.J. Lu" <hjl.tools@gmail.com>
-Date: Mon, 16 Nov 2020 06:37:53 -0800
-Subject: [PATCH] elf: Set rel_from_abs to 1 for __ehdr_start
-
-bfdlink.h has
-
-  /* Symbol will be converted from absolute to section-relative.  Set for
-     symbols defined by a script from "dot" (also SEGMENT_START or ORIGIN)
-     outside of an output section statement.  */
-  unsigned int rel_from_abs : 1;
-
-linker.c has
-
-.{* Return TRUE if the symbol described by a linker hash entry H
-.   is going to be absolute.  Linker-script defined symbols can be
-.   converted from absolute to section-relative ones late in the
-.   link.  Use this macro to correctly determine whether the symbol
-.   will actually end up absolute in output.  *}
-.#define bfd_is_abs_symbol(H) \
-.  (((H)->type == bfd_link_hash_defined \
-.    || (H)->type == bfd_link_hash_defweak) \
-.   && bfd_is_abs_section ((H)->u.def.section) \
-.   && !(H)->rel_from_abs)
-.
-
-Set rel_from_abs to 1 for __ehdr_start which will be converted from
-absolute to section-relative in assign_file_positions_for_load_sections.
-
-	PR ld/26869
-	* ldelf.c (ldelf_before_allocation): Set rel_from_abs to 1 for
-	__ehdr_start.
-	* testsuite/ld-i386/i386.exp: Run pr26869.
-	* testsuite/ld-i386/pr26869.d: New file.
-	* testsuite/ld-i386/pr26869.s: Likewise.
-
-(cherry picked from commit cbd5b99cce073273f668b154d4514e8e7e7ccc51)
----
- ld/ChangeLog                   |  9 +++++++++
- ld/ldelf.c                     |  2 ++
- ld/testsuite/ld-i386/i386.exp  |  1 +
- ld/testsuite/ld-i386/pr26869.d | 14 ++++++++++++++
- ld/testsuite/ld-i386/pr26869.s |  3 +++
- 5 files changed, 29 insertions(+)
- create mode 100644 ld/testsuite/ld-i386/pr26869.d
- create mode 100644 ld/testsuite/ld-i386/pr26869.s
-
-diff --git a/ld/ldelf.c b/ld/ldelf.c
-index bada3ade2d7..831d032fe56 100644
---- a/ld/ldelf.c
-+++ b/ld/ldelf.c
-@@ -1589,6 +1589,8 @@ ldelf_before_allocation (char *audit, char *depaudit,
- 		      (char *) &ehdr_start->u + sizeof ehdr_start->u.def.next,
- 		      sizeof ehdr_start_save_u);
- 	      ehdr_start->type = bfd_link_hash_defined;
-+	      /* It will be converted to section-relative later.  */
-+	      ehdr_start->rel_from_abs = 1;
- 	      ehdr_start->u.def.section = bfd_abs_section_ptr;
- 	      ehdr_start->u.def.value = 0;
- 	    }
diff --git a/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch b/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
index 5de937f4fcce..1c208dd8955c 100644
--- a/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
+++ b/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
@@ -1,39 +1,24 @@
-From b1faf99f3e546df2cd302bb1ad36a2078224fe8b Mon Sep 17 00:00:00 2001
+From bbf05b742fde518fb97c789b043fe0d3aaf549f0 Mon Sep 17 00:00:00 2001
 From: Ariadne Conill <ariadne@dereferenced.org>
-Date: Fri, 30 Oct 2020 16:59:48 -0600
+Date: Tue, 21 Sep 2021 14:53:13 +0000
 Subject: [PATCH] Revert "PR25882, .gnu.attributes are not checked for shared
  libraries"
 
+This revert is needed to avoid wrongly tagging objects with the incompatible
+IBM long double ABI, which is not supported by musl and will result in
+linking errors if used.
+
 This reverts commit a8acd6eeb6dc2cc5460ece90f90ebe36b56b20ba.
 ---
- bfd/ChangeLog     | 6 ------
- bfd/elf32-tic6x.c | 3 ---
- ld/ChangeLog      | 6 ------
- ld/ldlang.c       | 9 ++++-----
- 4 files changed, 4 insertions(+), 20 deletions(-)
+ bfd/elf32-tic6x.c |  3 ---
+ ld/ldlang.c       | 10 ++++------
+ 2 files changed, 4 insertions(+), 9 deletions(-)
 
-diff --git a/bfd/ChangeLog b/bfd/ChangeLog
-index 9fac12538a..b5461494e8 100644
---- a/bfd/ChangeLog
-+++ b/bfd/ChangeLog
-@@ -1422,12 +1422,6 @@
- 	accessing root.u.def of symbols.  Also check root.u.def.section
- 	is non-NULL.  Reverse tests so as to make the logic positive.
- 
--2020-05-01  Alan Modra  <amodra@gmail.com>
--
--	PR 25882
--	* elf32-tic6x.c (elf32_tic6x_merge_attributes): Don't transfer
--	Tag_ABI_PIC or Tag_ABI_PID from dynamic objects to the output.
--
- 2020-05-01  Alan Modra  <amodra@gmail.com>
- 
- 	PR 25882
 diff --git a/bfd/elf32-tic6x.c b/bfd/elf32-tic6x.c
-index b8b916bfd3..91bb6a10b1 100644
+index 5754f3cb860..3ad1d612749 100644
 --- a/bfd/elf32-tic6x.c
 +++ b/bfd/elf32-tic6x.c
-@@ -3748,9 +3748,6 @@ elf32_tic6x_merge_attributes (bfd *ibfd, struct bfd_link_info *info)
+@@ -3735,9 +3735,6 @@ elf32_tic6x_merge_attributes (bfd *ibfd, struct bfd_link_info *info)
  
  	case Tag_ABI_PIC:
  	case Tag_ABI_PID:
@@ -43,36 +28,20 @@ index b8b916bfd3..91bb6a10b1 100644
  	  if (out_attr[i].i > in_attr[i].i)
  	    out_attr[i].i = in_attr[i].i;
  	  break;
-diff --git a/ld/ChangeLog b/ld/ChangeLog
-index 4eec7d2977..b93452f70c 100644
---- a/ld/ChangeLog
-+++ b/ld/ChangeLog
-@@ -1319,12 +1319,6 @@
- 	* testsuite/ld-aarch64/farcall-group.d: New test driver.
- 	* testsuite/ld-aarch64/aarch64-elf.exp: Run the new test.
- 
--2020-05-01  Alan Modra  <amodra@gmail.com>
--
--	PR 25882
--	* ldlang.c (lang_check): Call bfd_merge_private_bfd_data for
--	shared libraries.
--
- 2020-05-01  Alan Modra  <amodra@gmail.com>
- 
- 	* po/BLD-POTFILES.in: Regenerate.
 diff --git a/ld/ldlang.c b/ld/ldlang.c
-index 9977195074..173d8ec349 100644
+index 37b64c89ee1..f13beaef9d9 100644
 --- a/ld/ldlang.c
 +++ b/ld/ldlang.c
-@@ -6972,12 +6972,11 @@ lang_check (void)
+@@ -7071,13 +7071,11 @@ lang_check (void)
  		   bfd_printable_name (input_bfd), input_bfd,
  		   bfd_printable_name (link_info.output_bfd));
  	}
 -
 -      /* If the input bfd has no contents, it shouldn't set the
 -	 private data of the output bfd.  */
--      else if ((input_bfd->flags & DYNAMIC) != 0
--	       || bfd_count_sections (input_bfd) != 0)
+-      else if (!file->flags.just_syms
+-	       && ((input_bfd->flags & DYNAMIC) != 0
+-		   || bfd_count_sections (input_bfd) != 0))
 +      else if (bfd_count_sections (input_bfd))
  	{
 +	  /* If the input bfd has no contents, it shouldn't set the
@@ -82,5 +51,4 @@ index 9977195074..173d8ec349 100644
  
  	  /* If we aren't supposed to warn about mismatched input
 -- 
-2.29.2
-
+2.33.0
diff --git a/srcpkgs/binutils/template b/srcpkgs/binutils/template
index 6270f8618c87..b2b1c47d22fc 100644
--- a/srcpkgs/binutils/template
+++ b/srcpkgs/binutils/template
@@ -1,19 +1,20 @@
 # Template file for 'binutils'
 pkgname=binutils
-version=2.35.1
-revision=4
+version=2.38
+revision=1
 bootstrap=yes
+hostmakedepends="pkg-config"
 makedepends="zlib-devel"
 short_desc="GNU binary utilities"
 maintainer="Enno Boland <gottox@voidlinux.org>"
 license="GPL-3.0-or-later"
 homepage="http://www.gnu.org/software/binutils/"
 distfiles="${GNU_SITE}/$pkgname/$pkgname-$version.tar.xz"
-checksum=3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
+checksum=e316477a914f567eccc34d5d29785b8b0f5a10208d36bbacedcc39048ecfe024
 
 subpackages="binutils-doc"
 if [ "$CHROOT_READY" ]; then
-	hostmakedepends="flex perl texinfo"
+	hostmakedepends+=" flex perl texinfo"
 	makedepends+=" elfutils-devel"
 	checkdepends="bc"
 	depends="binutils-doc"

From d464e27001fd5fc8609566d1981b8cf0fca28742 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 06:26:59 -0700
Subject: [PATCH 2/7] gcc: update to 12.1.0

---
 common/shlibs                                 |  10 +-
 srcpkgs/gcc/files/gccgo-musl.patch            |  74 +++--------
 srcpkgs/gcc/files/libgnarl-musl.patch         |  18 +--
 srcpkgs/gcc/files/libssp-musl.patch           |  10 +-
 ...c21f3f5726823e19728fdd1571a14aae0fb3.patch | 105 ++++++++++++++++
 ...08065bdd36fb1a9b6aad9666b1edb5e06474.patch | 115 ++++++++++++++++++
 srcpkgs/gcc/patches/libffi_gnulinux.patch     |  11 --
 .../gcc/patches/libgcc-ibm128-no-tag.patch    |  10 +-
 srcpkgs/gcc/patches/mips-sgidefs_h.patch      |   3 +-
 srcpkgs/gcc/template                          |  25 ++--
 10 files changed, 273 insertions(+), 108 deletions(-)
 create mode 100644 srcpkgs/gcc/patches/3b21c21f3f5726823e19728fdd1571a14aae0fb3.patch
 create mode 100644 srcpkgs/gcc/patches/49d508065bdd36fb1a9b6aad9666b1edb5e06474.patch
 delete mode 100644 srcpkgs/gcc/patches/libffi_gnulinux.patch

diff --git a/common/shlibs b/common/shlibs
index 61924610cc52..c6400b566966 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -60,7 +60,7 @@ libcc1plugin.so.0 gcc-6.2.1_1
 libitm.so.1 libitm-4.7.3_1
 liblto_plugin.so.0 gcc-4.7.3_1
 libgcc_s.so.1 libgcc-4.4.0_1
-libgo.so.16 libgo-10.2.0_1
+libgo.so.21 libgo-12.1.0_1
 libgccjit.so.0 libgccjit-10.2.1pre1_1
 libperl.so.5.34 perl-5.34.0_1
 libgmp.so.10 gmp-5.0.1_1
@@ -849,8 +849,8 @@ libgdkmm-2.4.so.1 gtkmm2-2.24.0_1
 libgtkmm-2.4.so.1 gtkmm2-2.24.0_1
 libquadmath.so.0 libquadmath-4.4.0_1
 libgfortran.so.5 libgfortran-8.2.0_1
-libgnarl-10.so libada-10.2.0_1
-libgnat-10.so libada-10.2.0_1
+libgnarl-12.so libada-12.1.0_1
+libgnat-12.so libada-12.1.0_1
 libwebp.so.7 libwebp-0.6.0_1
 libwebpmux.so.3 libwebp-0.6.0_1
 libwebpdemux.so.2 libwebp-0.5.0_1
@@ -1701,8 +1701,8 @@ libextractor.so.3 libextractor-1.1_1
 libextractor_common.so.1 libextractor-1.1_1
 libpano13.so.3 libpano13-2.9.19_1
 libubsan.so.1 libsanitizer-8.2.0_1
-libtsan.so.0 libsanitizer-6.3.0_1
-libasan.so.6 libsanitizer-10.2.0_1
+libtsan.so.2 libsanitizer-12.1.0_1
+libasan.so.8 libsanitizer-12.1.0_1
 liblsan.so.0 libsanitizer-6.3.0_1
 libvtv.so.0 libvtv-6.3.0_1
 libatomic.so.1 libatomic-4.9.0_1
diff --git a/srcpkgs/gcc/files/gccgo-musl.patch b/srcpkgs/gcc/files/gccgo-musl.patch
index 9762739615af..632ef951097b 100644
--- a/srcpkgs/gcc/files/gccgo-musl.patch
+++ b/srcpkgs/gcc/files/gccgo-musl.patch
@@ -53,17 +53,6 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
  	p := sysMmap(addr, n, prot, flags, fd, off)
  	if uintptr(p) == _MAP_FAILED {
  		return nil, errno()
---- a/libgo/go/runtime/signal_gccgo.go
-+++ b/libgo/go/runtime/signal_gccgo.go
-@@ -111,7 +111,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")
 --- a/libgo/go/syscall/errstr.go
 +++ b/libgo/go/syscall/errstr.go
 @@ -5,7 +5,6 @@
@@ -140,55 +129,6 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
  		plwoff = &lwoff
  	}
  	n, err = splice(rfd, plroff, wfd, plwoff, len, flags)
---- 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
---- a/libgo/runtime/go-signal.c	2020-07-23 08:35:19.004402840 +0200
-+++ b/libgo/runtime/go-signal.c	2020-08-09 21:35:54.352886232 +0200
-@@ -224,7 +224,11 @@
- #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;
-+	#ifdef __PPC64__
-+		ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.gp_regs[32];
-+	#else
-+		ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.gregs[32];
-+	#endif
- #elif defined(__PPC__) && defined(_AIX)
- 	ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.jmp_context.iar;
- #elif defined(__aarch64__) && defined(__linux__)
-@@ -333,7 +337,7 @@
- 		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(__linux__) && defined(__GLIBC__)
- 	  {
- 		mcontext_t *m = &((ucontext_t*)(context))->uc_mcontext;
- 		int i;
 --- a/libgo/runtime/runtime.h
 +++ b/libgo/runtime/runtime.h
 @@ -500,10 +500,13 @@ int __go_setcontext(__go_context_t*);
@@ -220,3 +160,17 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
  #if defined(HAVE_SYS_UTSNAME_H)
  #include <sys/utsname.h>
  #endif
+--- a/libgo/go/runtime/os_linux.go
++++ a/libgo/go/runtime/os_linux.go
+@@ -363,9 +363,9 @@
+ 
+ 	var timerid int32
+ 	var sevp _sigevent
+-	sevp.sigev_notify = _SIGEV_THREAD_ID
++	sevp.sigev_notify = 4
+ 	sevp.sigev_signo = _SIGPROF
+-	*((*int32)(unsafe.Pointer(&sevp._sigev_un))) = int32(mp.procid)
++	*((*int32)(unsafe.Pointer(&sevp.sigev_notify_function))) = int32(mp.procid)
+ 	ret := timer_create(_CLOCK_THREAD_CPUTIME_ID, &sevp, &timerid)
+ 	if ret != 0 {
+ 		// If we cannot create a timer for this M, leave profileTimerValid false
diff --git a/srcpkgs/gcc/files/libgnarl-musl.patch b/srcpkgs/gcc/files/libgnarl-musl.patch
index 99a734c42c90..91c95949e0e9 100644
--- a/srcpkgs/gcc/files/libgnarl-musl.patch
+++ b/srcpkgs/gcc/files/libgnarl-musl.patch
@@ -5,7 +5,7 @@ Reason: Patch libgnarl to not use function missing from musl.
 diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/libgnarl/s-osinte__linux.ads
 --- a/gcc/ada/libgnarl/s-osinte__linux.ads	2018-01-11 00:55:25.000000000 -0800
 +++ b/gcc/ada/libgnarl/s-osinte__linux.ads	2018-11-01 16:16:23.372452951 -0700
-@@ -394,12 +394,6 @@ package System.OS_Interface is
+@@ -403,12 +403,6 @@ package System.OS_Interface is
     PTHREAD_RWLOCK_PREFER_WRITER_NP              : constant := 1;
     PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP : constant := 2;
  
@@ -18,7 +18,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/l
     function pthread_rwlock_init
       (mutex : access pthread_rwlock_t;
        attr  : access pthread_rwlockattr_t) return int;
-@@ -464,11 +458,6 @@ package System.OS_Interface is
+@@ -470,11 +464,6 @@ package System.OS_Interface is
        protocol : int) return int;
     pragma Import (C, pthread_mutexattr_setprotocol);
  
@@ -33,7 +33,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/l
 diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/libgnarl/s-taprop__linux.adb
 --- a/gcc/ada/libgnarl/s-taprop__linux.adb	2018-01-11 00:55:25.000000000 -0800
 +++ b/gcc/ada/libgnarl/s-taprop__linux.adb	2018-11-13 11:28:36.433964449 -0800
-@@ -202,9 +202,6 @@ package body System.Task_Primitives.Oper
+@@ -198,9 +198,6 @@ package body System.Task_Primitives.Oper
     pragma Import
       (C, GNAT_pthread_condattr_setup, "__gnat_pthread_condattr_setup");
  
@@ -43,7 +43,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
     --  We do not have pragma Linker_Options ("-lcap"); here, because this
     --  library is not present on many Linux systems. 'libcap' is the Linux
     --  "capabilities" library, called by __gnat_has_cap_sys_nice.
-@@ -214,38 +211,6 @@ package body System.Task_Primitives.Oper
+@@ -210,38 +207,6 @@ package body System.Task_Primitives.Oper
     --  Convert Ada priority to Linux priority. Priorities are 1 .. 99 on
     --  GNU/Linux, so we map 0 .. 98 to 1 .. 99.
  
@@ -76,13 +76,13 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
 -      return Ceiling_Support;
 -   end Get_Ceiling_Support;
 -
--   pragma Warnings (Off, "non-static call not allowed in preelaborated unit");
+-   pragma Warnings (Off, "non-preelaborable call not allowed*");
 -   Ceiling_Support : constant Boolean := Get_Ceiling_Support;
--   pragma Warnings (On, "non-static call not allowed in preelaborated unit");
+-   pragma Warnings (On, "non-preelaborable call not allowed*");
     --  True if the locking policy is Ceiling_Locking, and the current process
     --  has permission to use this policy. The process has permission if it is
     --  running as 'root', or if the capability was set by the setcap command,
-@@ -348,7 +313,9 @@ package body System.Task_Primitives.Oper
+@@ -344,7 +309,9 @@ package body System.Task_Primitives.Oper
     -- Init_Mutex --
     ----------------
  
@@ -92,7 +92,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
        Mutex_Attr : aliased pthread_mutexattr_t;
        Result, Result_2 : C.int;
  
-@@ -360,16 +327,7 @@ package body System.Task_Primitives.Oper
+@@ -356,16 +323,7 @@ package body System.Task_Primitives.Oper
           return Result;
        end if;
  
@@ -110,7 +110,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
           Result := pthread_mutexattr_setprotocol
             (Mutex_Attr'Access, PTHREAD_PRIO_INHERIT);
           pragma Assert (Result = 0);
-@@ -409,11 +367,6 @@ package body System.Task_Primitives.Oper
+@@ -405,11 +363,6 @@ package body System.Task_Primitives.Oper
              Result := pthread_rwlockattr_init (RWlock_Attr'Access);
              pragma Assert (Result = 0);
  
diff --git a/srcpkgs/gcc/files/libssp-musl.patch b/srcpkgs/gcc/files/libssp-musl.patch
index b21a2c29e57c..99f248401a1c 100644
--- a/srcpkgs/gcc/files/libssp-musl.patch
+++ b/srcpkgs/gcc/files/libssp-musl.patch
@@ -2,9 +2,9 @@ First part taken from Alpine.
 
 Second part added to prevent gccgo from thinking it can -fsplit-stack on musl.
 
---- a/gcc/gcc.c
-+++ b/gcc/gcc.c
-@@ -874,10 +874,15 @@ proper position among the other output files.  */
+--- a/gcc/gcc.cc
++++ b/gcc/gcc.cc
+@@ -984,10 +984,15 @@ proper position among the other output f
  #define LINK_GCC_C_SEQUENCE_SPEC "%G %{!nolibc:%L %G}"
  #endif
  
@@ -22,10 +22,10 @@ Second part added to prevent gccgo from thinking it can -fsplit-stack on musl.
  #else
  #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
  		       "|fstack-protector-strong|fstack-protector-explicit" \
-@@ -1155,7 +1160,7 @@ static const char *cc1_options =
+@@ -1280,7 +1285,7 @@ static const char *cc1_options =
   %{-version:--version}\
   %{-help=*:--help=%*}\
-  %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %b.s}}}\
+  %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %w%b.s}}}\
 - %{fsyntax-only:-o %j} %{-param*}\
 + %{fsyntax-only:-o %j} %{-param*} " NO_SSP_SPEC "\
   %{coverage:-fprofile-arcs -ftest-coverage}\
diff --git a/srcpkgs/gcc/patches/3b21c21f3f5726823e19728fdd1571a14aae0fb3.patch b/srcpkgs/gcc/patches/3b21c21f3f5726823e19728fdd1571a14aae0fb3.patch
new file mode 100644
index 000000000000..00929202a503
--- /dev/null
+++ b/srcpkgs/gcc/patches/3b21c21f3f5726823e19728fdd1571a14aae0fb3.patch
@@ -0,0 +1,105 @@
+From 3b21c21f3f5726823e19728fdd1571a14aae0fb3 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <siarheit@google.com>
+Date: Mon, 27 Jun 2022 13:27:24 +0100
+Subject: [PATCH] c++: avoid <memory> poisoning on musl [PR106102]
+
+On musl <pthread.h> uses calloc() (via <sched.h>). <memory> includes
+it indirectly and exposes use of poisoned calloc() when module code
+is built:
+
+    /build/build/./prev-gcc/xg++ ... ../../gcc-13-20220626/gcc/cp/mapper-resolver.cc
+        In file included from /<<NIX>>/musl-1.2.3-dev/include/pthread.h:30,
+                 from /build/build/prev-x86_64-unknown-linux-musl/libstdc++-v3/include/x86_64-unknown-linux-musl/bits/gthr-default.h:35,
+                 ....
+                 from /build/build/prev-x86_64-unknown-linux-musl/libstdc++-v3/include/memory:77,
+                 from ../../gcc-13-20220626/gcc/../libcody/cody.hh:24,
+                 from ../../gcc-13-20220626/gcc/cp/../../c++tools/resolver.h:25,
+                 from ../../gcc-13-20220626/gcc/cp/../../c++tools/resolver.cc:23,
+                 from ../../gcc-13-20220626/gcc/cp/mapper-resolver.cc:32:
+    /<<NIX>>/musl-1.2.3-dev/include/sched.h:84:7: error: attempt to use poisoned "calloc"
+       84 | void *calloc(size_t, size_t);
+          |       ^
+    /<<NIX>>/musl-1.2.3-dev/include/sched.h:124:36: error: attempt to use poisoned "calloc"
+      124 | #define CPU_ALLOC(n) ((cpu_set_t *)calloc(1,CPU_ALLOC_SIZE(n)))
+          |                                    ^
+
+gcc/cp/
+
+	PR c++/106102
+	* mapper-client.cc: Include <memory> via "system.h".
+	* mapper-resolver.cc: Ditto.
+	* module.cc: Ditto.
+
+libcc1/
+
+	PR c++/106102
+	* libcc1plugin.cc: Include <memory> via "system.h".
+	* libcp1plugin.cc: Ditto.
+---
+ gcc/cp/mapper-client.cc   | 1 +
+ gcc/cp/mapper-resolver.cc | 1 +
+ gcc/cp/module.cc          | 1 +
+ libcc1/libcc1plugin.cc    | 1 +
+ libcc1/libcp1plugin.cc    | 1 +
+ 5 files changed, 5 insertions(+)
+
+diff --git a/gcc/cp/mapper-client.cc b/gcc/cp/mapper-client.cc
+index 8603a886a099..fe9544b5ba43 100644
+--- a/gcc/cp/mapper-client.cc
++++ b/gcc/cp/mapper-client.cc
+@@ -27,6 +27,7 @@ along with GCC; see the file COPYING3.  If not see
+ #define INCLUDE_STRING
+ #define INCLUDE_VECTOR
+ #define INCLUDE_MAP
++#define INCLUDE_MEMORY
+ #include "system.h"
+ 
+ #include "line-map.h"
+diff --git a/gcc/cp/mapper-resolver.cc b/gcc/cp/mapper-resolver.cc
+index e3d29fb5ada1..e70d1b4ae2ca 100644
+--- a/gcc/cp/mapper-resolver.cc
++++ b/gcc/cp/mapper-resolver.cc
+@@ -25,6 +25,7 @@ along with GCC; see the file COPYING3.  If not see
+ #define INCLUDE_VECTOR
+ #define INCLUDE_ALGORITHM
+ #define INCLUDE_MAP
++#define INCLUDE_MEMORY
+ #include "system.h"
+ 
+ // We don't want or need to be aware of networking
+diff --git a/gcc/cp/module.cc b/gcc/cp/module.cc
+index 753963a4b246..8bb22c2b305a 100644
+--- a/gcc/cp/module.cc
++++ b/gcc/cp/module.cc
+@@ -206,6 +206,7 @@ Classes used:
+ 
+ #define _DEFAULT_SOURCE 1 /* To get TZ field of struct tm, if available.  */
+ #include "config.h"
++#define INCLUDE_MEMORY
+ #define INCLUDE_STRING
+ #define INCLUDE_VECTOR
+ #include "system.h"
+diff --git a/libcc1/libcc1plugin.cc b/libcc1/libcc1plugin.cc
+index 12ab5a57c8dd..bdd0bdabe77f 100644
+--- a/libcc1/libcc1plugin.cc
++++ b/libcc1/libcc1plugin.cc
+@@ -31,6 +31,7 @@
+ #undef PACKAGE_TARNAME
+ #undef PACKAGE_VERSION
+ 
++#define INCLUDE_MEMORY
+ #include "gcc-plugin.h"
+ #include "system.h"
+ #include "coretypes.h"
+diff --git a/libcc1/libcp1plugin.cc b/libcc1/libcp1plugin.cc
+index 83dab7f58b11..e2d5039a0a1f 100644
+--- a/libcc1/libcp1plugin.cc
++++ b/libcc1/libcp1plugin.cc
+@@ -32,6 +32,7 @@
+ #undef PACKAGE_TARNAME
+ #undef PACKAGE_VERSION
+ 
++#define INCLUDE_MEMORY
+ #include "gcc-plugin.h"
+ #include "system.h"
+ #include "coretypes.h"
diff --git a/srcpkgs/gcc/patches/49d508065bdd36fb1a9b6aad9666b1edb5e06474.patch b/srcpkgs/gcc/patches/49d508065bdd36fb1a9b6aad9666b1edb5e06474.patch
new file mode 100644
index 000000000000..89bd053d6d04
--- /dev/null
+++ b/srcpkgs/gcc/patches/49d508065bdd36fb1a9b6aad9666b1edb5e06474.patch
@@ -0,0 +1,115 @@
+From 49d508065bdd36fb1a9b6aad9666b1edb5e06474 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <siarheit@google.com>
+Date: Mon, 27 Jun 2022 23:42:44 +0100
+Subject: [PATCH] jit: avoid calloc() poisoning on musl [PR106102]
+
+On musl <pthread.h> uses calloc() (via <sched.h>). jit/ includes
+it directly and exposes use of poisoned calloc():
+
+    /build/build/./prev-gcc/xg++ ... ../../gcc-13-20220626/gcc/jit/jit-playback.cc
+    make[3]: *** [Makefile:1143: jit/libgccjit.o] Error 1
+    make[3]: *** Waiting for unfinished jobs....
+    In file included from /<<NIX>>/musl-1.2.3-dev/include/pthread.h:30,
+                     from ../../gcc-13-20220626/gcc/jit/jit-playback.cc:44:
+    /<<NIX>>/musl-1.2.3-dev/include/sched.h:84:7: error: attempt to use poisoned "calloc"
+       84 | void *calloc(size_t, size_t);
+          |       ^
+    /<<NIX>>/musl-1.2.3-dev/include/sched.h:124:36: error: attempt to use poisoned "calloc"
+      124 | #define CPU_ALLOC(n) ((cpu_set_t *)calloc(1,CPU_ALLOC_SIZE(n)))
+          |                                    ^
+
+The change moves <pthread.h> inclusion to "system.h" under new
+INCLUDE_PTHREAD_H guard and uses this mechanism in libgccjit.
+
+gcc/
+
+	PR c++/106102
+	* system.h: Introduce INCLUDE_PTHREAD_H macros to include <pthread.h>.
+
+gcc/jit/
+
+	PR c++/106102
+	* jit-playback.cc: Include <pthread.h> via "system.h" to avoid calloc()
+	poisoning.
+	* jit-recording.cc: Ditto.
+	* libgccjit.cc: Ditto.
+---
+ gcc/jit/jit-playback.cc  | 3 +--
+ gcc/jit/jit-recording.cc | 2 +-
+ gcc/jit/libgccjit.cc     | 2 +-
+ gcc/system.h             | 4 ++++
+ 4 files changed, 7 insertions(+), 4 deletions(-)
+
+diff --git a/gcc/jit/jit-playback.cc b/gcc/jit/jit-playback.cc
+index 6be6bdf8dea5..79714132b91a 100644
+--- a/gcc/jit/jit-playback.cc
++++ b/gcc/jit/jit-playback.cc
+@@ -19,6 +19,7 @@ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
++#define INCLUDE_PTHREAD_H
+ #include "system.h"
+ #include "coretypes.h"
+ #include "target.h"
+@@ -41,8 +42,6 @@ along with GCC; see the file COPYING3.  If not see
+ #include "diagnostic.h"
+ #include "stmt.h"
+ 
+-#include <pthread.h>
+-
+ #include "jit-playback.h"
+ #include "jit-result.h"
+ #include "jit-builtins.h"
+diff --git a/gcc/jit/jit-recording.cc b/gcc/jit/jit-recording.cc
+index 697dee66e733..f78daed2d71a 100644
+--- a/gcc/jit/jit-recording.cc
++++ b/gcc/jit/jit-recording.cc
+@@ -19,13 +19,13 @@ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
++#define INCLUDE_PTHREAD_H
+ #include "system.h"
+ #include "coretypes.h"
+ #include "tm.h"
+ #include "pretty-print.h"
+ #include "toplev.h"
+ 
+-#include <pthread.h>
+ 
+ #include "jit-builtins.h"
+ #include "jit-recording.h"
+diff --git a/gcc/jit/libgccjit.cc b/gcc/jit/libgccjit.cc
+index 0e76097b4bac..ca862662777e 100644
+--- a/gcc/jit/libgccjit.cc
++++ b/gcc/jit/libgccjit.cc
+@@ -19,12 +19,12 @@ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
++#define INCLUDE_PTHREAD_H
+ #include "system.h"
+ #include "coretypes.h"
+ #include "timevar.h"
+ #include "typed-splay-tree.h"
+ #include "cppbuiltin.h"
+-#include <pthread.h>
+ 
+ #include "libgccjit.h"
+ #include "jit-recording.h"
+diff --git a/gcc/system.h b/gcc/system.h
+index 67158b70c789..f8d42ff68150 100644
+--- a/gcc/system.h
++++ b/gcc/system.h
+@@ -753,6 +753,10 @@ extern int vsnprintf (char *, size_t, const char *, va_list);
+ #endif
+ #endif
+ 
++#ifdef INCLUDE_PTHREAD_H
++#include <pthread.h>
++#endif
++
+ #ifdef INCLUDE_ISL
+ #ifdef HAVE_isl
+ #include <isl/options.h>
diff --git a/srcpkgs/gcc/patches/libffi_gnulinux.patch b/srcpkgs/gcc/patches/libffi_gnulinux.patch
deleted file mode 100644
index 98245bd5be1a..000000000000
--- a/srcpkgs/gcc/patches/libffi_gnulinux.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/libffi/src/closures.c
-+++ b/libffi/src/closures.c
-@@ -34,7 +34,7 @@
- #include <ffi_common.h>
-
- #if !FFI_MMAP_EXEC_WRIT && !FFI_EXEC_TRAMPOLINE_TABLE
--# if __gnu_linux__ && !defined(__ANDROID__)
-+# if __linux__ && !defined(__ANDROID__)
- /* This macro indicates it may be forbidden to map anonymous memory
-    with both write and execute permission.  Code compiled when this
-    option is defined will attempt to map such pages once, but if it
diff --git a/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch b/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
index bdf5c75d917d..26d80356ad0d 100644
--- a/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
+++ b/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
@@ -29,10 +29,14 @@ diff --git a/libgcc/config/rs6000/t-linux b/libgcc/config/rs6000/t-linux
 index 4f6d4c4..fa93bb6 100644
 --- a/libgcc/config/rs6000/t-linux
 +++ b/libgcc/config/rs6000/t-linux
-@@ -1,3 +1,3 @@
+@@ -1,6 +1,6 @@
  SHLIB_MAPFILES += $(srcdir)/config/rs6000/libgcc-glibc.ver
  
--HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-minimal-toc
-+HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-gnu-attribute -mno-minimal-toc
+-HOST_LIBGCC2_CFLAGS += -mlong-double-128
++HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-gnu-attribute
+ 
+ # This is a way of selecting -mcmodel=small for ppc64, which gives
+ # smaller and faster libgcc code.  Directly specifying -mcmodel=small
+
 -- 
 2.24.0
diff --git a/srcpkgs/gcc/patches/mips-sgidefs_h.patch b/srcpkgs/gcc/patches/mips-sgidefs_h.patch
index dddfe10e8c06..78a2ce35875d 100644
--- a/srcpkgs/gcc/patches/mips-sgidefs_h.patch
+++ b/srcpkgs/gcc/patches/mips-sgidefs_h.patch
@@ -3,9 +3,10 @@
 @@ -42,7 +42,7 @@
  #define _MIPS_SIM_NABI32	2
  #define _MIPS_SIM_ABI64		3
- #elif !defined(__OpenBSD__)
+ #elif !defined(__OpenBSD__) && !defined(__FreeBSD__)
 -# include <sgidefs.h>
 +# include <asm/sgidefs.h>
  #endif
  
  #  ifndef _ABIN32
+
diff --git a/srcpkgs/gcc/template b/srcpkgs/gcc/template
index 09727ef34fb2..32ee79e32f0d 100644
--- a/srcpkgs/gcc/template
+++ b/srcpkgs/gcc/template
@@ -3,18 +3,15 @@
 # which use the version number.
 
 pkgname=gcc
-# we are using a 10-stable git snapshot alpine is using in order
-# to get regression fixes not yet incorporate into a stable release
-# it should be possible to switch back to stable with 10.3 or 11
-version=10.2.1pre1
-revision=3
+version=12.1.0
+revision=1
 _patchver="${version%pre*}"
 _minorver="${_patchver%.*}"
 _majorver="${_minorver%.*}"
-_gmp_version=6.2.0
+_gmp_version=6.2.1
 _mpfr_version=4.1.0
-_mpc_version=1.1.0
-_isl_version=0.21
+_mpc_version=1.2.1
+_isl_version=0.24
 wrksrc=gcc-${version/pre/_pre}
 short_desc="GNU Compiler Collection"
 maintainer="Enno Boland <gottox@voidlinux.org>"
@@ -22,16 +19,16 @@ homepage="http://gcc.gnu.org"
 license="GFDL-1.2-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
 # *-musl builders have issues fetching https://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz
 distfiles="
- https://dev.alpinelinux.org/~nenolod/gcc-${version/pre/_pre}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${version}/gcc-${version}.tar.xz
  https://gmplib.org/download/gmp/gmp-${_gmp_version}.tar.xz
  ${GNU_SITE}/mpfr/mpfr-${_mpfr_version}.tar.xz
  ${GNU_SITE}/mpc/mpc-${_mpc_version}.tar.gz
  ${SOURCEFORGE_SITE}/libisl/isl-${_isl_version}.tar.bz2"
-checksum="772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 258e6cd51b3fbdfc185c716d55f82c08aff57df0c6fbd143cf6ed561267a1526
+checksum="62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
+ fd4829912cddd12f84181c3451cc752be224643e87fac497b69edddadc49b4f2
  0c98a3f1732ff6ca4ea690552079da9c597872d30e96ec28414ee23c95558a7f
- 6985c538143c1208dcb1ac42cedad6ff52e267b47e5f970183a3e75125b43c2e
- d18ca11f8ad1a39ab6d03d3dcb3365ab416720fcb65b42d69f34f51bf0a0e859"
+ 17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459
+ fcf78dd9656c10eb8cf9fbd5f59a0b6b01386205fe1934b3b287a0a1898145c0"
 
 nopie=yes
 lib32disabled=yes
@@ -396,7 +393,7 @@ gcc-ada_package() {
 	depends="gcc>=${_minorver} libada-devel>=${_minorver}"
 	short_desc+=" - Ada compiler frontend"
 	pkg_install() {
-		for f in gnat{,bind,chop,clean,find,kr,link,ls,make,name,prep,xref}; do
+		for f in gnat{,bind,chop,clean,kr,link,ls,make,name,prep}; do
 			vmove usr/bin/${f}
 		done
 	}

From a2c1762014112a6a0b352ac9b86f9908bd282fce Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 06:27:47 -0700
Subject: [PATCH 3/7] libtool: update to 2.4.7

---
 .../patches/0002-rename-with-sysroot.patch    | 34 +++++++++----------
 srcpkgs/libtool/template                      |  6 ++--
 2 files changed, 20 insertions(+), 20 deletions(-)

diff --git a/srcpkgs/libtool/patches/0002-rename-with-sysroot.patch b/srcpkgs/libtool/patches/0002-rename-with-sysroot.patch
index 960873c04e24..152aace96c41 100644
--- a/srcpkgs/libtool/patches/0002-rename-with-sysroot.patch
+++ b/srcpkgs/libtool/patches/0002-rename-with-sysroot.patch
@@ -13,16 +13,16 @@ Jürgen Buchmüller <pullmoll@t-online.de>
 
 --- a/configure	2015-02-15 17:14:34.000000000 +0100
 +++ b/configure	2015-10-20 13:25:12.684906339 +0200
-@@ -824,7 +824,7 @@
+@@ -832,7 +832,7 @@
  enable_fast_install
  with_aix_soname
  with_gnu_ld
 -with_sysroot
 +with_libtool_sysroot
  enable_libtool_lock
+ enable_cross_guesses
  '
-       ac_precious_vars='build_alias
-@@ -1487,7 +1487,8 @@
+@@ -1509,7 +1509,8 @@
                            shared library versioning (aka "SONAME") variant to
                            provide on AIX, [default=aix].
    --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
@@ -32,7 +32,7 @@ Jürgen Buchmüller <pullmoll@t-online.de>
                            compiler's sysroot if not specified).
  
  Some influential environment variables:
-@@ -7389,29 +7390,29 @@
+@@ -7610,29 +7611,29 @@
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
  $as_echo_n "checking for sysroot... " >&6; }
  
@@ -57,8 +57,8 @@ Jürgen Buchmüller <pullmoll@t-online.de>
     fi
     ;; #(
   /*)
--   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
-+   lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"`
+-   lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"`
++   lt_sysroot=`echo "$with_libtool_sysroot" | $SED -e "$sed_quote_subst"`
     ;; #(
   no|'')
     ;; #(
@@ -72,7 +72,7 @@ Jürgen Buchmüller <pullmoll@t-online.de>
  esac
 --- a/libltdl/configure	2015-02-15 17:15:15.000000000 +0100
 +++ b/libltdl/configure	2015-10-20 13:26:45.747914683 +0200
-@@ -775,7 +775,7 @@
+@@ -777,7 +777,7 @@
  with_aix_soname
  enable_dependency_tracking
  with_gnu_ld
@@ -81,7 +81,7 @@ Jürgen Buchmüller <pullmoll@t-online.de>
  enable_libtool_lock
  enable_ltdl_install
  '
-@@ -1429,7 +1429,8 @@
+@@ -1442,7 +1442,8 @@
                            shared library versioning (aka "SONAME") variant to
                            provide on AIX, [default=aix].
    --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
@@ -91,7 +91,7 @@ Jürgen Buchmüller <pullmoll@t-online.de>
                            compiler's sysroot if not specified).
  
  Some influential environment variables:
-@@ -6275,29 +6276,29 @@
+@@ -6397,29 +6398,29 @@
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
  $as_echo_n "checking for sysroot... " >&6; }
  
@@ -116,8 +116,8 @@ Jürgen Buchmüller <pullmoll@t-online.de>
     fi
     ;; #(
   /*)
--   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
-+   lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"`
+-   lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"`
++   lt_sysroot=`echo "$with_libtool_sysroot" | $SED -e "$sed_quote_subst"`
     ;; #(
   no|'')
     ;; #(
@@ -243,14 +243,14 @@ Jürgen Buchmüller <pullmoll@t-online.de>
  ]])
 --- a/m4/libtool.m4	2015-01-20 17:15:19.000000000 +0100
 +++ b/m4/libtool.m4	2015-10-20 15:40:04.020631813 +0200
-@@ -1245,29 +1245,29 @@
- # _LT_WITH_SYSROOT
+@@ -1243,29 +1243,29 @@
  # ----------------
  AC_DEFUN([_LT_WITH_SYSROOT],
--[AC_MSG_CHECKING([for sysroot])
+ [m4_require([_LT_DECL_SED])dnl
+-AC_MSG_CHECKING([for sysroot])
 -AC_ARG_WITH([sysroot],
 -[AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@],
-+[AC_MSG_CHECKING([for libtool-sysroot])
++AC_MSG_CHECKING([for libtool-sysroot])
 +AC_ARG_WITH([libtool-sysroot],
 +[AS_HELP_STRING([--with-libtool-sysroot@<:@=DIR@:>@],
    [Search for dependent libraries within DIR (or the compiler's sysroot
@@ -269,8 +269,8 @@ Jürgen Buchmüller <pullmoll@t-online.de>
     fi
     ;; #(
   /*)
--   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
-+   lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"`
+-   lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"`
++   lt_sysroot=`echo "$with_libtool_sysroot" | $SED -e "$sed_quote_subst"`
     ;; #(
   no|'')
     ;; #(
diff --git a/srcpkgs/libtool/template b/srcpkgs/libtool/template
index b9972df70341..08e35d466a44 100644
--- a/srcpkgs/libtool/template
+++ b/srcpkgs/libtool/template
@@ -1,7 +1,7 @@
 # Template file for 'libtool'
 pkgname=libtool
-version=2.4.6
-revision=6
+version=2.4.7
+revision=1
 build_style=gnu-configure
 hostmakedepends="texinfo perl automake help2man xz"
 depends="tar sed"
@@ -10,7 +10,7 @@ maintainer="Enno Boland <gottox@voidlinux.org>"
 license="GPL-2.0-or-later"
 homepage="http://www.gnu.org/software/libtool"
 distfiles="${GNU_SITE}/libtool/$pkgname-$version.tar.xz"
-checksum=7c87a8c2c8c0fc9cd5019e402bed4292462d00a718a7cd5f11218153bf28b26f
+checksum=4f7f217f057ce655ff22559ad221a0fd8ef84ad1fc5fcb6990cecc333aa1635d
 
 pre_configure() {
 	touch aclocal.m4 libltdl/aclocal.m4 Makefile.am libltdl/Makefile.am Makefile.in libltdl/Makefile.in

From 45a7db03aa91e08e1dd8d4a8c77070b03e4f6af6 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 17:20:16 -0700
Subject: [PATCH 4/7] libiberty-devel: update to 20220713

---
 srcpkgs/libiberty-devel/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/libiberty-devel/template b/srcpkgs/libiberty-devel/template
index 1a4e1ca3d594..b04268908c2e 100644
--- a/srcpkgs/libiberty-devel/template
+++ b/srcpkgs/libiberty-devel/template
@@ -1,6 +1,6 @@
 # Template file for 'libiberty-devel'
 pkgname=libiberty-devel
-version=20210106
+version=20220713
 revision=1
 wrksrc=libiberty-${version}
 build_wrksrc=libiberty
@@ -11,7 +11,7 @@ maintainer="q66 <daniel@octaforge.org>"
 license="GPL-3.0-or-later"
 homepage="http://gcc.gnu.org/"
 distfiles="http://deb.debian.org/debian/pool/main/libi/libiberty/libiberty_${version}.orig.tar.xz"
-checksum=9df153d69914c0f5a9145e0abbb248e72feebab6777c712a30f1c3b8c19047d4
+checksum=b59050f48c8a0f9c9e6fba5d17c7a4f11d1329de0c0dca7331b767a6d2bbe8d9
 conflicts="binutils-devel<=2.35.1_3"
 
 CFLAGS="-fPIC"

From 96f361f00aadfe08f566077c324f9db7131f49d4 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 23:31:45 -0700
Subject: [PATCH 5/7] glibc: update to 2.36.

---
 common/shlibs                                 |  60 ++--
 .../glibc/patches/glibc-c-utf8-locale.patch   | 286 ------------------
 srcpkgs/glibc/template                        |  62 ++--
 3 files changed, 55 insertions(+), 353 deletions(-)
 delete mode 100644 srcpkgs/glibc/patches/glibc-c-utf8-locale.patch

diff --git a/common/shlibs b/common/shlibs
index c6400b566966..65f4d1b62b61 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -17,38 +17,38 @@
 # one (order top->bottom) is preferred over the next ones.
 #
 libc.so musl-1.1.24_7
-libc.so.6 glibc-2.32_1
-libm.so.6 glibc-2.32_1
-libpthread.so.0 glibc-2.32_1
-librt.so.1 glibc-2.32_1
-libdl.so.2 glibc-2.32_1
-ld-linux-x86-64.so.2 glibc-2.32_1 x86_64
-ld-linux.so.2 glibc-2.32_1 i686
-ld-linux.so.3 glibc-2.32_1 armv5tel
-ld-linux-aarch64.so.1 glibc-2.32_1 aarch64
-ld64.so.2 glibc-2.32_1 ppc64
-ld.so.1 glibc-2.32_1 mips
-ld.so.1 glibc-2.32_1 ppc
-ld-linux-armhf.so.3 glibc-2.32_1
-libresolv.so.2 glibc-2.32_1
-libanl.so.1 glibc-2.32_1
-libthread_db.so.1 glibc-2.32_1
-libutil.so.1 glibc-2.32_1
-libnsl.so.1 glibc-2.32_1
-libnss_db.so.2 glibc-2.32_1
-libnss_files.so.2 glibc-2.32_1
-libnss_compat.so.2 glibc-2.32_1
-libnss_dns.so.2 glibc-2.32_1
-libnss_hesiod.so.2 glibc-2.32_1
-libcrypt.so.1 glibc-2.32_1
-libBrokenLocale.so.1 glibc-2.32_1
+libc.so.6 glibc-2.36_1
+libm.so.6 glibc-2.36_1
+libpthread.so.0 glibc-2.36_1
+librt.so.1 glibc-2.36_1
+libdl.so.2 glibc-2.36_1
+ld-linux-x86-64.so.2 glibc-2.36_1 x86_64
+ld-linux.so.2 glibc-2.36_1 i686
+ld-linux.so.3 glibc-2.36_1 armv5tel
+ld-linux-aarch64.so.1 glibc-2.36_1 aarch64
+ld64.so.2 glibc-2.36_1 ppc64
+ld.so.1 glibc-2.36_1 mips
+ld.so.1 glibc-2.36_1 ppc
+ld-linux-armhf.so.3 glibc-2.36_1
+libresolv.so.2 glibc-2.36_1
+libanl.so.1 glibc-2.36_1
+libthread_db.so.1 glibc-2.36_1
+libutil.so.1 glibc-2.36_1
+libnsl.so.1 glibc-2.36_1
+libnss_db.so.2 glibc-2.36_1
+libnss_files.so.2 glibc-2.36_1
+libnss_compat.so.2 glibc-2.36_1
+libnss_dns.so.2 glibc-2.36_1
+libnss_hesiod.so.2 glibc-2.36_1
+libcrypt.so.1 glibc-2.36_1
+libBrokenLocale.so.1 glibc-2.36_1
 libSimGearCore.so.2020.3.13 simgear-2020.3.13_1
 libSimGearScene.so.2020.3.13 simgear-2020.3.13_1
-libmemusage.so glibc-2.32_1
-libSegFault.so glibc-2.32_1
-libpcprofile.so glibc-2.32_1
-libcidn.so.1 glibc-2.32_1
-libmvec.so.1 glibc-2.32_1
+libmemusage.so glibc-2.36_1
+libSegFault.so glibc-2.36_1
+libpcprofile.so glibc-2.36_1
+libcidn.so.1 glibc-2.36_1
+libmvec.so.1 glibc-2.36_1
 libcddgmp.so.0 cddlib-0.94m_1
 libcdd.so.0 cddlib-0.94m_1
 libz.so.1 zlib-1.2.3_1
diff --git a/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch b/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch
deleted file mode 100644
index 7215e1558b62..000000000000
--- a/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch
+++ /dev/null
@@ -1,286 +0,0 @@
-Short description: Add C.UTF-8 support.
-Author(s): Fedora glibc team <glibc@lists.fedoraproject.org>
-Origin: PATCH
-Upstream status: not-submitted
-
-This patch needs to upstream as part of Carlos O'Donell
-<carlos@redhat.com>'s work on enabling upstream C.UTF-8 support. This
-work is currently blocked on cleaning up the test results to prove that
-full code-point sorting is working as intended.
-
-Note that this patch does not provide full code-point sorting as
-expected.
-
-This patch needs to upstream as soon as possible since it would be nice
-to have this in F29 and fixed.
-
-From 2eda7b462b415105f5a05c1323372d4e39d46439 Mon Sep 17 00:00:00 2001
-From: Mike FABIAN <mfabian@redhat.com>
-Date: Mon, 10 Aug 2015 15:58:12 +0200
-Subject: [PATCH] Add a C.UTF-8 locale
-
----
- localedata/SUPPORTED |   1 +
- localedata/locales/C | 238 +++++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 239 insertions(+)
- create mode 100644 localedata/locales/C
-
-diff --git a/localedata/SUPPORTED b/localedata/SUPPORTED
-index 8ca023e..2a78391 100644
---- a/localedata/SUPPORTED
-+++ b/localedata/SUPPORTED
-@@ -1,6 +1,7 @@
- # This file names the currently supported and somewhat tested locales.
- # If you have any additions please file a glibc bug report.
- SUPPORTED-LOCALES=\
-+C.UTF-8/UTF-8 \
- aa_DJ.UTF-8/UTF-8 \
- aa_DJ/ISO-8859-1 \
- aa_ER/UTF-8 \
-diff --git a/localedata/locales/C b/localedata/locales/C
-new file mode 100644
-index 0000000..fdf460e
---- /dev/null
-+++ b/localedata/locales/C
-@@ -0,0 +1,238 @@
-+escape_char /
-+comment_char %
-+% Locale for C locale in UTF-8
-+
-+LC_IDENTIFICATION
-+title      "C locale"
-+source     ""
-+address    ""
-+contact    ""
-+email      "mfabian@redhat.com"
-+tel        ""
-+fax        ""
-+language   "C"
-+territory  ""
-+revision   "1.0"
-+date       "2015-08-10"
-+%
-+category  "i18n:2012";LC_IDENTIFICATION
-+category  "i18n:2012";LC_CTYPE
-+category  "i18n:2012";LC_COLLATE
-+category  "i18n:2012";LC_TIME
-+category  "i18n:2012";LC_NUMERIC
-+category  "i18n:2012";LC_MONETARY
-+category  "i18n:2012";LC_MESSAGES
-+category  "i18n:2012";LC_PAPER
-+category  "i18n:2012";LC_NAME
-+category  "i18n:2012";LC_ADDRESS
-+category  "i18n:2012";LC_TELEPHONE
-+category  "i18n:2012";LC_MEASUREMENT
-+END LC_IDENTIFICATION
-+
-+LC_CTYPE
-+copy "i18n"
-+
-+translit_start
-+include "translit_combining";""
-+translit_end
-+
-+END LC_CTYPE
-+
-+LC_COLLATE
-+order_start forward
-+<U0000>
-+..
-+<UFFFF>
-+<U10000>
-+..
-+<U1FFFF>
-+<U20000>
-+..
-+<U2FFFF>
-+<UE0000>
-+..
-+<UEFFFF>
-+<UF0000>
-+..
-+<UFFFFF>
-+<U100000>
-+..
-+<U10FFFF>
-+UNDEFINED
-+order_end
-+END LC_COLLATE
-+
-+LC_MONETARY
-+% This is the 14652 i18n fdcc-set definition for
-+% the LC_MONETARY category
-+% (except for the int_curr_symbol and currency_symbol, they are empty in
-+% the 14652 i18n fdcc-set definition and also empty in
-+% glibc/locale/C-monetary.c. But localedef complains in that case).
-+%
-+% Using "USD" for int_curr_symbol. But maybe "XXX" would be better?
-+% XXX is "No currency" (https://en.wikipedia.org/wiki/ISO_4217)
-+int_curr_symbol     "<U0055><U0053><U0044><U0020>"
-+% Using "$" for currency_symbol. But maybe <U00A4> would be better?
-+% U+00A4 is the "generic currency symbol"
-+% (https://en.wikipedia.org/wiki/Currency_sign_%28typography%29)
-+currency_symbol     "<U0024>"
-+mon_decimal_point   "<U002E>"
-+mon_thousands_sep   ""
-+mon_grouping        -1
-+positive_sign       ""
-+negative_sign       "<U002D>"
-+int_frac_digits     -1
-+frac_digits         -1
-+p_cs_precedes       -1
-+int_p_sep_by_space  -1
-+p_sep_by_space      -1
-+n_cs_precedes       -1
-+int_n_sep_by_space  -1
-+n_sep_by_space      -1
-+p_sign_posn         -1
-+n_sign_posn         -1
-+%
-+END LC_MONETARY
-+
-+LC_NUMERIC
-+% This is the POSIX Locale definition for
-+% the LC_NUMERIC category.
-+%
-+decimal_point   "<U002E>"
-+thousands_sep   ""
-+grouping        -1
-+END LC_NUMERIC
-+
-+LC_TIME
-+% This is the POSIX Locale definition for
-+% the LC_TIME category.
-+%
-+% Abbreviated weekday names (%a)
-+abday       "<U0053><U0075><U006E>";"<U004D><U006F><U006E>";/
-+            "<U0054><U0075><U0065>";"<U0057><U0065><U0064>";/
-+            "<U0054><U0068><U0075>";"<U0046><U0072><U0069>";/
-+            "<U0053><U0061><U0074>"
-+
-+% Full weekday names (%A)
-+day         "<U0053><U0075><U006E><U0064><U0061><U0079>";/
-+            "<U004D><U006F><U006E><U0064><U0061><U0079>";/
-+            "<U0054><U0075><U0065><U0073><U0064><U0061><U0079>";/
-+            "<U0057><U0065><U0064><U006E><U0065><U0073><U0064><U0061><U0079>";/
-+            "<U0054><U0068><U0075><U0072><U0073><U0064><U0061><U0079>";/
-+            "<U0046><U0072><U0069><U0064><U0061><U0079>";/
-+            "<U0053><U0061><U0074><U0075><U0072><U0064><U0061><U0079>"
-+
-+% Abbreviated month names (%b)
-+abmon       "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
-+            "<U004D><U0061><U0072>";"<U0041><U0070><U0072>";/
-+            "<U004D><U0061><U0079>";"<U004A><U0075><U006E>";/
-+            "<U004A><U0075><U006C>";"<U0041><U0075><U0067>";/
-+            "<U0053><U0065><U0070>";"<U004F><U0063><U0074>";/
-+            "<U004E><U006F><U0076>";"<U0044><U0065><U0063>"
-+
-+% Full month names (%B)
-+mon         "<U004A><U0061><U006E><U0075><U0061><U0072><U0079>";/
-+            "<U0046><U0065><U0062><U0072><U0075><U0061><U0072><U0079>";/
-+            "<U004D><U0061><U0072><U0063><U0068>";/
-+            "<U0041><U0070><U0072><U0069><U006C>";/
-+            "<U004D><U0061><U0079>";/
-+            "<U004A><U0075><U006E><U0065>";/
-+            "<U004A><U0075><U006C><U0079>";/
-+            "<U0041><U0075><U0067><U0075><U0073><U0074>";/
-+            "<U0053><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";/
-+            "<U004F><U0063><U0074><U006F><U0062><U0065><U0072>";/
-+            "<U004E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/
-+            "<U0044><U0065><U0063><U0065><U006D><U0062><U0065><U0072>"
-+
-+% Week description, consists of three fields:
-+% 1. Number of days in a week.
-+% 2. Gregorian date that is a first weekday (19971130 for Sunday, 19971201 for Monday).
-+% 3. The weekday number to be contained in the first week of the year.
-+%
-+% ISO 8601 conforming applications should use the values 7, 19971201 (a
-+% Monday), and 4 (Thursday), respectively.
-+week    7;19971201;4
-+first_weekday	1
-+first_workday	1
-+
-+% Appropriate date and time representation (%c)
-+%	"%a %b %e %H:%M:%S %Y"
-+d_t_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0059>"
-+
-+% Appropriate date representation (%x)
-+%	"%m/%d/%y"
-+d_fmt   "<U0025><U006D><U002F><U0025><U0064><U002F><U0025><U0079>"
-+
-+% Appropriate time representation (%X)
-+%	"%H:%M:%S"
-+t_fmt   "<U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053>"
-+
-+% Appropriate AM/PM time representation (%r)
-+%	"%I:%M:%S %p"
-+t_fmt_ampm "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0070>"
-+
-+% Equivalent of AM/PM (%p)      "AM"/"PM"
-+%
-+am_pm	"<U0041><U004D>";"<U0050><U004D>"
-+
-+% Appropriate date representation (date(1))   "%a %b %e %H:%M:%S %Z %Y"
-+date_fmt	"<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U005A><U0020><U0025><U0059>"
-+END LC_TIME
-+
-+LC_MESSAGES
-+% This is the POSIX Locale definition for
-+% the LC_NUMERIC category.
-+%
-+yesexpr "<U005E><U005B><U0079><U0059><U005D>"
-+noexpr  "<U005E><U005B><U006E><U004E><U005D>"
-+yesstr  "<U0059><U0065><U0073>"
-+nostr   "<U004E><U006F>"
-+END LC_MESSAGES
-+
-+LC_PAPER
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_PAPER category.
-+% (A4 paper, this is also used in the built in C/POSIX
-+% locale in glibc/locale/C-paper.c)
-+height   297
-+width    210
-+END LC_PAPER
-+
-+LC_NAME
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_NAME category.
-+% "%p%t%g%t%m%t%f"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-name.c)
-+name_fmt    "<U0025><U0070><U0025><U0074><U0025><U0067><U0025><U0074>/
-+<U0025><U006D><U0025><U0074><U0025><U0066>"
-+END LC_NAME
-+
-+LC_ADDRESS
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_ADDRESS category.
-+% "%a%N%f%N%d%N%b%N%s %h %e %r%N%C-%z %T%N%c%N"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-address.c)
-+postal_fmt    "<U0025><U0061><U0025><U004E><U0025><U0066><U0025><U004E>/
-+<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
-+<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
-+<U004E><U0025><U0043><U002D><U0025><U007A><U0020><U0025><U0054><U0025>/
-+<U004E><U0025><U0063><U0025><U004E>"
-+END LC_ADDRESS
-+
-+LC_TELEPHONE
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_TELEPHONE category.
-+% "+%c %a %l"
-+tel_int_fmt    "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025>/
-+<U006C>"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-telephone.c)
-+END LC_TELEPHONE
-+
-+LC_MEASUREMENT
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_MEASUREMENT category.
-+% (same as in the built in C/POSIX locale in glibc/locale/C-measurement.c)
-+%metric
-+measurement    1
-+END LC_MEASUREMENT
-+
--- 
-2.4.3
-
diff --git a/srcpkgs/glibc/template b/srcpkgs/glibc/template
index c62a4d2aedf1..139aab865864 100644
--- a/srcpkgs/glibc/template
+++ b/srcpkgs/glibc/template
@@ -1,14 +1,14 @@
 # Template file for 'glibc'
 pkgname=glibc
-version=2.32
-revision=2
+version=2.36
+revision=1
 bootstrap=yes
 short_desc="GNU C library"
 maintainer="Enno Boland <gottox@voidlinux.org>"
 license="GPL-2.0-or-later, LGPL-2.1-or-later, BSD-3-Clause"
 homepage="http://www.gnu.org/software/libc"
 distfiles="${GNU_SITE}/glibc/glibc-${version}.tar.xz"
-checksum=1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum=1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
 # Do not strip these files, objcopy errors out.
 nostrip_files="
 	XBS5_ILP32_OFFBIG
@@ -20,27 +20,28 @@ nostrip_files="
 	POSIX_V6_LP64_OFF64
 	POSIX_V7_LP64_OFF64
 	XBS5_LP64_OFF64
-	ld-${version}.so
-	libdl-${version}.so
-	libanl-${version}.so
-	libcidn-${version}.so
-	libresolv-${version}.so
-	libcrypt-${version}.so
-	libpthread-${version}.so
-	libm-${version}.so
-	libutil-${version}.so
-	libthread_db-1.0.so
-	librt-${version}.so
-	libnsl-${version}.so
-	libc-${version}.so
-	libBrokenLocale-${version}.so
-	libnss_compat-${version}.so
-	libnss_db-${version}.so
-	libnss_dns-${version}.so
-	libnss_files-${version}.so
-	libnss_hesiod-${version}.so
-	libnss_nisplus-${version}.so
-	libnss_nis-${version}.so"
+	ld-linux-x86-64.so.2
+	ld-linux.so.2
+	ld-linux.so.3
+	ld-linux-aarch64.so.1
+	ld64.so.2
+	ld.so.1
+	ld-linux-armhf.so.3
+	libresolv.so.2
+	libcrypt.so.1
+	libm.so.6
+	libthread_db.so.1
+	libnsl.so.1
+	libc.so.6
+	libc_malloc_debug.so.0
+	libmemusage.so
+	libmvec.so.1
+	libBrokenLocale.so.1
+	libnss_compat.so.2
+	libnss_db.so.2
+	libnss_dns.so.2
+	libnss_files.so.2
+	libnss_hesiod.so.2"
 
 conf_files="
 	/etc/rpc
@@ -54,7 +55,6 @@ lib32files="/usr/lib/gconv/gconv-modules"
 lib32symlinks="ld-linux.so.2"
 # There's no point in building this for musl.
 archs="~*-musl"
-nopie=yes
 
 do_configure() {
 	mkdir build
@@ -163,18 +163,6 @@ do_install() {
 	rm -f ${DESTDIR}/usr/bin/z{dump,ic}
 
 	mv ${DESTDIR}/usr/sbin/* ${DESTDIR}/usr/bin
-
-	# Create xbps.d(5) arch override file for 32-bit architectures
-	# 32-bit userlands may be used with 64-bit kernels and then
-	# xbps will report an incorrect architecture by default
-	case "$XBPS_TARGET_MACHINE" in
-		i686|ppc|ppcle|armv*)
-			vmkdir usr/share/xbps.d
-			echo "architecture=${XBPS_TARGET_MACHINE}" > \
-				${DESTDIR}/usr/share/xbps.d/arch-32bit.conf
-			;;
-		*) ;;
-	esac
 }
 
 glibc-devel_package() {

From 8fa0ce4a86e5d4b6f6ba70024132974f5ff0bd31 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 20:08:52 -0700
Subject: [PATCH 6/7] openssh: suppress werror on gcc12

---
 srcpkgs/openssh/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/openssh/template b/srcpkgs/openssh/template
index 02a2dec35f42..6e8e343a9dca 100644
--- a/srcpkgs/openssh/template
+++ b/srcpkgs/openssh/template
@@ -40,7 +40,7 @@ if [ "$build_option_ldns" -a -z "$build_option_ssl" ]; then
 	broken="option 'ldns' requires option 'ssl'"
 fi
 
-CFLAGS="-Wno-format-truncation -Wno-stringop-truncation"
+CFLAGS="-Wno-format-truncation -Wno-stringop-truncation -Wno-error=maybe-uninitialized"
 
 case $XBPS_TARGET_MACHINE in
 	i686-musl)

From bd035a36c1848019d68455d33eaa20d33de0168d Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 20:09:31 -0700
Subject: [PATCH 7/7] linux5.18: update dotconfigs for gcc12

---
 srcpkgs/linux5.18/files/x86_64-dotconfig | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/srcpkgs/linux5.18/files/x86_64-dotconfig b/srcpkgs/linux5.18/files/x86_64-dotconfig
index 4e73a3195d40..ea6204868e23 100644
--- a/srcpkgs/linux5.18/files/x86_64-dotconfig
+++ b/srcpkgs/linux5.18/files/x86_64-dotconfig
@@ -512,6 +512,7 @@ CONFIG_RETHUNK=y
 CONFIG_CPU_UNRET_ENTRY=y
 CONFIG_CPU_IBPB_ENTRY=y
 CONFIG_CPU_IBRS_ENTRY=y
+CONFIG_SLS=y
 CONFIG_ARCH_HAS_ADD_PAGES=y
 CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y
 
@@ -10060,8 +10061,11 @@ CONFIG_LSM="yama,loadpin,safesetid,integrity"
 # Memory initialization
 #
 CONFIG_INIT_STACK_NONE=y
+# CONFIG_INIT_STACK_ALL_PATTERN is not set
+# CONFIG_INIT_STACK_ALL_ZERO is not set
 CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
 # CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
+# CONFIG_ZERO_CALL_USED_REGS is not set
 # end of Memory initialization
 # end of Kernel hardening options
 # end of Security options
@@ -10538,6 +10542,7 @@ CONFIG_HAVE_ARCH_KGDB=y
 CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
 # CONFIG_UBSAN is not set
 CONFIG_HAVE_ARCH_KCSAN=y
+# CONFIG_KCSAN is not set
 # end of Generic Kernel Debugging Instruments
 
 #

^ permalink raw reply	[flat|nested] 144+ messages in thread

* Re: [PR PATCH] [Updated] gcc: update to 12.1.0
  2022-01-06  6:15 [PR PATCH] gcc: update to 11.2.1git20211128 Oreo639
                   ` (14 preceding siblings ...)
  2022-08-13  6:32 ` [PR PATCH] [Updated] gcc: update to 12.1.0 oreo639
@ 2022-08-13  6:49 ` oreo639
  2022-08-15  2:24 ` oreo639
                   ` (126 subsequent siblings)
  142 siblings, 0 replies; 144+ messages in thread
From: oreo639 @ 2022-08-13  6:49 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1717 bytes --]

There is an updated pull request by oreo639 against master on the void-packages repository

https://github.com/oreo639/void-packages gcc11
https://github.com/void-linux/void-packages/pull/34902

gcc: update to 12.1.0
<!-- Uncomment relevant sections and delete options which are not applicable -->
[ci skip]

Edit: this PR had been updated for gcc 12.1.0

This PR depends on: https://github.com/void-linux/void-packages/pull/32330

I tested this PR with glibc and after updating glibc, it seems to work fine.
I also tested this PR with x86_64-musl, and it appears to run fine in a musl chroot, and recompiling and installing musl with gcc 12 doesn't appear to result in any issues. (more testing is needed)

Please let me know if there are any issues.

I compiled base-system to ensure that compiles and it appears to work fine.

#### Testing the changes
- I tested the changes in this PR: **briefly**

<!--
#### New package
- This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please [skip CI](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration)
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->

#### Local build testing
- I built this PR locally for my native architecture, (x86_64-glibc)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - x86_64-musl

A patch file from https://github.com/void-linux/void-packages/pull/34902.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-gcc11-34902.patch --]
[-- Type: text/x-diff, Size: 56585 bytes --]

From bb6c79ed935b0a7513c85b5987c41aefcfaa0b00 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 01:14:21 -0700
Subject: [PATCH 1/7] binutils: update to 2.38.

---
 ...e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch | 60 -----------------
 .../patches/ppc64-revert-gnu-attributes.patch | 66 +++++--------------
 srcpkgs/binutils/template                     |  9 +--
 3 files changed, 22 insertions(+), 113 deletions(-)
 delete mode 100644 srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch

diff --git a/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch b/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch
deleted file mode 100644
index a55432d83cff..000000000000
--- a/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff Mon Sep 17 00:00:00 2001
-From: "H.J. Lu" <hjl.tools@gmail.com>
-Date: Mon, 16 Nov 2020 06:37:53 -0800
-Subject: [PATCH] elf: Set rel_from_abs to 1 for __ehdr_start
-
-bfdlink.h has
-
-  /* Symbol will be converted from absolute to section-relative.  Set for
-     symbols defined by a script from "dot" (also SEGMENT_START or ORIGIN)
-     outside of an output section statement.  */
-  unsigned int rel_from_abs : 1;
-
-linker.c has
-
-.{* Return TRUE if the symbol described by a linker hash entry H
-.   is going to be absolute.  Linker-script defined symbols can be
-.   converted from absolute to section-relative ones late in the
-.   link.  Use this macro to correctly determine whether the symbol
-.   will actually end up absolute in output.  *}
-.#define bfd_is_abs_symbol(H) \
-.  (((H)->type == bfd_link_hash_defined \
-.    || (H)->type == bfd_link_hash_defweak) \
-.   && bfd_is_abs_section ((H)->u.def.section) \
-.   && !(H)->rel_from_abs)
-.
-
-Set rel_from_abs to 1 for __ehdr_start which will be converted from
-absolute to section-relative in assign_file_positions_for_load_sections.
-
-	PR ld/26869
-	* ldelf.c (ldelf_before_allocation): Set rel_from_abs to 1 for
-	__ehdr_start.
-	* testsuite/ld-i386/i386.exp: Run pr26869.
-	* testsuite/ld-i386/pr26869.d: New file.
-	* testsuite/ld-i386/pr26869.s: Likewise.
-
-(cherry picked from commit cbd5b99cce073273f668b154d4514e8e7e7ccc51)
----
- ld/ChangeLog                   |  9 +++++++++
- ld/ldelf.c                     |  2 ++
- ld/testsuite/ld-i386/i386.exp  |  1 +
- ld/testsuite/ld-i386/pr26869.d | 14 ++++++++++++++
- ld/testsuite/ld-i386/pr26869.s |  3 +++
- 5 files changed, 29 insertions(+)
- create mode 100644 ld/testsuite/ld-i386/pr26869.d
- create mode 100644 ld/testsuite/ld-i386/pr26869.s
-
-diff --git a/ld/ldelf.c b/ld/ldelf.c
-index bada3ade2d7..831d032fe56 100644
---- a/ld/ldelf.c
-+++ b/ld/ldelf.c
-@@ -1589,6 +1589,8 @@ ldelf_before_allocation (char *audit, char *depaudit,
- 		      (char *) &ehdr_start->u + sizeof ehdr_start->u.def.next,
- 		      sizeof ehdr_start_save_u);
- 	      ehdr_start->type = bfd_link_hash_defined;
-+	      /* It will be converted to section-relative later.  */
-+	      ehdr_start->rel_from_abs = 1;
- 	      ehdr_start->u.def.section = bfd_abs_section_ptr;
- 	      ehdr_start->u.def.value = 0;
- 	    }
diff --git a/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch b/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
index 5de937f4fcce..1c208dd8955c 100644
--- a/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
+++ b/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
@@ -1,39 +1,24 @@
-From b1faf99f3e546df2cd302bb1ad36a2078224fe8b Mon Sep 17 00:00:00 2001
+From bbf05b742fde518fb97c789b043fe0d3aaf549f0 Mon Sep 17 00:00:00 2001
 From: Ariadne Conill <ariadne@dereferenced.org>
-Date: Fri, 30 Oct 2020 16:59:48 -0600
+Date: Tue, 21 Sep 2021 14:53:13 +0000
 Subject: [PATCH] Revert "PR25882, .gnu.attributes are not checked for shared
  libraries"
 
+This revert is needed to avoid wrongly tagging objects with the incompatible
+IBM long double ABI, which is not supported by musl and will result in
+linking errors if used.
+
 This reverts commit a8acd6eeb6dc2cc5460ece90f90ebe36b56b20ba.
 ---
- bfd/ChangeLog     | 6 ------
- bfd/elf32-tic6x.c | 3 ---
- ld/ChangeLog      | 6 ------
- ld/ldlang.c       | 9 ++++-----
- 4 files changed, 4 insertions(+), 20 deletions(-)
+ bfd/elf32-tic6x.c |  3 ---
+ ld/ldlang.c       | 10 ++++------
+ 2 files changed, 4 insertions(+), 9 deletions(-)
 
-diff --git a/bfd/ChangeLog b/bfd/ChangeLog
-index 9fac12538a..b5461494e8 100644
---- a/bfd/ChangeLog
-+++ b/bfd/ChangeLog
-@@ -1422,12 +1422,6 @@
- 	accessing root.u.def of symbols.  Also check root.u.def.section
- 	is non-NULL.  Reverse tests so as to make the logic positive.
- 
--2020-05-01  Alan Modra  <amodra@gmail.com>
--
--	PR 25882
--	* elf32-tic6x.c (elf32_tic6x_merge_attributes): Don't transfer
--	Tag_ABI_PIC or Tag_ABI_PID from dynamic objects to the output.
--
- 2020-05-01  Alan Modra  <amodra@gmail.com>
- 
- 	PR 25882
 diff --git a/bfd/elf32-tic6x.c b/bfd/elf32-tic6x.c
-index b8b916bfd3..91bb6a10b1 100644
+index 5754f3cb860..3ad1d612749 100644
 --- a/bfd/elf32-tic6x.c
 +++ b/bfd/elf32-tic6x.c
-@@ -3748,9 +3748,6 @@ elf32_tic6x_merge_attributes (bfd *ibfd, struct bfd_link_info *info)
+@@ -3735,9 +3735,6 @@ elf32_tic6x_merge_attributes (bfd *ibfd, struct bfd_link_info *info)
  
  	case Tag_ABI_PIC:
  	case Tag_ABI_PID:
@@ -43,36 +28,20 @@ index b8b916bfd3..91bb6a10b1 100644
  	  if (out_attr[i].i > in_attr[i].i)
  	    out_attr[i].i = in_attr[i].i;
  	  break;
-diff --git a/ld/ChangeLog b/ld/ChangeLog
-index 4eec7d2977..b93452f70c 100644
---- a/ld/ChangeLog
-+++ b/ld/ChangeLog
-@@ -1319,12 +1319,6 @@
- 	* testsuite/ld-aarch64/farcall-group.d: New test driver.
- 	* testsuite/ld-aarch64/aarch64-elf.exp: Run the new test.
- 
--2020-05-01  Alan Modra  <amodra@gmail.com>
--
--	PR 25882
--	* ldlang.c (lang_check): Call bfd_merge_private_bfd_data for
--	shared libraries.
--
- 2020-05-01  Alan Modra  <amodra@gmail.com>
- 
- 	* po/BLD-POTFILES.in: Regenerate.
 diff --git a/ld/ldlang.c b/ld/ldlang.c
-index 9977195074..173d8ec349 100644
+index 37b64c89ee1..f13beaef9d9 100644
 --- a/ld/ldlang.c
 +++ b/ld/ldlang.c
-@@ -6972,12 +6972,11 @@ lang_check (void)
+@@ -7071,13 +7071,11 @@ lang_check (void)
  		   bfd_printable_name (input_bfd), input_bfd,
  		   bfd_printable_name (link_info.output_bfd));
  	}
 -
 -      /* If the input bfd has no contents, it shouldn't set the
 -	 private data of the output bfd.  */
--      else if ((input_bfd->flags & DYNAMIC) != 0
--	       || bfd_count_sections (input_bfd) != 0)
+-      else if (!file->flags.just_syms
+-	       && ((input_bfd->flags & DYNAMIC) != 0
+-		   || bfd_count_sections (input_bfd) != 0))
 +      else if (bfd_count_sections (input_bfd))
  	{
 +	  /* If the input bfd has no contents, it shouldn't set the
@@ -82,5 +51,4 @@ index 9977195074..173d8ec349 100644
  
  	  /* If we aren't supposed to warn about mismatched input
 -- 
-2.29.2
-
+2.33.0
diff --git a/srcpkgs/binutils/template b/srcpkgs/binutils/template
index 6270f8618c87..b2b1c47d22fc 100644
--- a/srcpkgs/binutils/template
+++ b/srcpkgs/binutils/template
@@ -1,19 +1,20 @@
 # Template file for 'binutils'
 pkgname=binutils
-version=2.35.1
-revision=4
+version=2.38
+revision=1
 bootstrap=yes
+hostmakedepends="pkg-config"
 makedepends="zlib-devel"
 short_desc="GNU binary utilities"
 maintainer="Enno Boland <gottox@voidlinux.org>"
 license="GPL-3.0-or-later"
 homepage="http://www.gnu.org/software/binutils/"
 distfiles="${GNU_SITE}/$pkgname/$pkgname-$version.tar.xz"
-checksum=3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
+checksum=e316477a914f567eccc34d5d29785b8b0f5a10208d36bbacedcc39048ecfe024
 
 subpackages="binutils-doc"
 if [ "$CHROOT_READY" ]; then
-	hostmakedepends="flex perl texinfo"
+	hostmakedepends+=" flex perl texinfo"
 	makedepends+=" elfutils-devel"
 	checkdepends="bc"
 	depends="binutils-doc"

From e120b88e332b7b01fc62fb99bf71cb8577e9051f Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 06:26:59 -0700
Subject: [PATCH 2/7] gcc: update to 12.1.0.

---
 common/shlibs                                 |  10 +-
 srcpkgs/gcc/files/gccgo-musl.patch            |  74 +++--------
 srcpkgs/gcc/files/libgnarl-musl.patch         |  18 +--
 srcpkgs/gcc/files/libssp-musl.patch           |  10 +-
 ...c21f3f5726823e19728fdd1571a14aae0fb3.patch | 105 ++++++++++++++++
 ...08065bdd36fb1a9b6aad9666b1edb5e06474.patch | 115 ++++++++++++++++++
 srcpkgs/gcc/patches/libffi_gnulinux.patch     |  11 --
 .../gcc/patches/libgcc-ibm128-no-tag.patch    |  10 +-
 srcpkgs/gcc/patches/mips-sgidefs_h.patch      |   3 +-
 srcpkgs/gcc/template                          |  25 ++--
 10 files changed, 273 insertions(+), 108 deletions(-)
 create mode 100644 srcpkgs/gcc/patches/3b21c21f3f5726823e19728fdd1571a14aae0fb3.patch
 create mode 100644 srcpkgs/gcc/patches/49d508065bdd36fb1a9b6aad9666b1edb5e06474.patch
 delete mode 100644 srcpkgs/gcc/patches/libffi_gnulinux.patch

diff --git a/common/shlibs b/common/shlibs
index 61924610cc52..c6400b566966 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -60,7 +60,7 @@ libcc1plugin.so.0 gcc-6.2.1_1
 libitm.so.1 libitm-4.7.3_1
 liblto_plugin.so.0 gcc-4.7.3_1
 libgcc_s.so.1 libgcc-4.4.0_1
-libgo.so.16 libgo-10.2.0_1
+libgo.so.21 libgo-12.1.0_1
 libgccjit.so.0 libgccjit-10.2.1pre1_1
 libperl.so.5.34 perl-5.34.0_1
 libgmp.so.10 gmp-5.0.1_1
@@ -849,8 +849,8 @@ libgdkmm-2.4.so.1 gtkmm2-2.24.0_1
 libgtkmm-2.4.so.1 gtkmm2-2.24.0_1
 libquadmath.so.0 libquadmath-4.4.0_1
 libgfortran.so.5 libgfortran-8.2.0_1
-libgnarl-10.so libada-10.2.0_1
-libgnat-10.so libada-10.2.0_1
+libgnarl-12.so libada-12.1.0_1
+libgnat-12.so libada-12.1.0_1
 libwebp.so.7 libwebp-0.6.0_1
 libwebpmux.so.3 libwebp-0.6.0_1
 libwebpdemux.so.2 libwebp-0.5.0_1
@@ -1701,8 +1701,8 @@ libextractor.so.3 libextractor-1.1_1
 libextractor_common.so.1 libextractor-1.1_1
 libpano13.so.3 libpano13-2.9.19_1
 libubsan.so.1 libsanitizer-8.2.0_1
-libtsan.so.0 libsanitizer-6.3.0_1
-libasan.so.6 libsanitizer-10.2.0_1
+libtsan.so.2 libsanitizer-12.1.0_1
+libasan.so.8 libsanitizer-12.1.0_1
 liblsan.so.0 libsanitizer-6.3.0_1
 libvtv.so.0 libvtv-6.3.0_1
 libatomic.so.1 libatomic-4.9.0_1
diff --git a/srcpkgs/gcc/files/gccgo-musl.patch b/srcpkgs/gcc/files/gccgo-musl.patch
index 9762739615af..632ef951097b 100644
--- a/srcpkgs/gcc/files/gccgo-musl.patch
+++ b/srcpkgs/gcc/files/gccgo-musl.patch
@@ -53,17 +53,6 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
  	p := sysMmap(addr, n, prot, flags, fd, off)
  	if uintptr(p) == _MAP_FAILED {
  		return nil, errno()
---- a/libgo/go/runtime/signal_gccgo.go
-+++ b/libgo/go/runtime/signal_gccgo.go
-@@ -111,7 +111,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")
 --- a/libgo/go/syscall/errstr.go
 +++ b/libgo/go/syscall/errstr.go
 @@ -5,7 +5,6 @@
@@ -140,55 +129,6 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
  		plwoff = &lwoff
  	}
  	n, err = splice(rfd, plroff, wfd, plwoff, len, flags)
---- 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
---- a/libgo/runtime/go-signal.c	2020-07-23 08:35:19.004402840 +0200
-+++ b/libgo/runtime/go-signal.c	2020-08-09 21:35:54.352886232 +0200
-@@ -224,7 +224,11 @@
- #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;
-+	#ifdef __PPC64__
-+		ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.gp_regs[32];
-+	#else
-+		ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.gregs[32];
-+	#endif
- #elif defined(__PPC__) && defined(_AIX)
- 	ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.jmp_context.iar;
- #elif defined(__aarch64__) && defined(__linux__)
-@@ -333,7 +337,7 @@
- 		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(__linux__) && defined(__GLIBC__)
- 	  {
- 		mcontext_t *m = &((ucontext_t*)(context))->uc_mcontext;
- 		int i;
 --- a/libgo/runtime/runtime.h
 +++ b/libgo/runtime/runtime.h
 @@ -500,10 +500,13 @@ int __go_setcontext(__go_context_t*);
@@ -220,3 +160,17 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
  #if defined(HAVE_SYS_UTSNAME_H)
  #include <sys/utsname.h>
  #endif
+--- a/libgo/go/runtime/os_linux.go
++++ a/libgo/go/runtime/os_linux.go
+@@ -363,9 +363,9 @@
+ 
+ 	var timerid int32
+ 	var sevp _sigevent
+-	sevp.sigev_notify = _SIGEV_THREAD_ID
++	sevp.sigev_notify = 4
+ 	sevp.sigev_signo = _SIGPROF
+-	*((*int32)(unsafe.Pointer(&sevp._sigev_un))) = int32(mp.procid)
++	*((*int32)(unsafe.Pointer(&sevp.sigev_notify_function))) = int32(mp.procid)
+ 	ret := timer_create(_CLOCK_THREAD_CPUTIME_ID, &sevp, &timerid)
+ 	if ret != 0 {
+ 		// If we cannot create a timer for this M, leave profileTimerValid false
diff --git a/srcpkgs/gcc/files/libgnarl-musl.patch b/srcpkgs/gcc/files/libgnarl-musl.patch
index 99a734c42c90..91c95949e0e9 100644
--- a/srcpkgs/gcc/files/libgnarl-musl.patch
+++ b/srcpkgs/gcc/files/libgnarl-musl.patch
@@ -5,7 +5,7 @@ Reason: Patch libgnarl to not use function missing from musl.
 diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/libgnarl/s-osinte__linux.ads
 --- a/gcc/ada/libgnarl/s-osinte__linux.ads	2018-01-11 00:55:25.000000000 -0800
 +++ b/gcc/ada/libgnarl/s-osinte__linux.ads	2018-11-01 16:16:23.372452951 -0700
-@@ -394,12 +394,6 @@ package System.OS_Interface is
+@@ -403,12 +403,6 @@ package System.OS_Interface is
     PTHREAD_RWLOCK_PREFER_WRITER_NP              : constant := 1;
     PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP : constant := 2;
  
@@ -18,7 +18,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/l
     function pthread_rwlock_init
       (mutex : access pthread_rwlock_t;
        attr  : access pthread_rwlockattr_t) return int;
-@@ -464,11 +458,6 @@ package System.OS_Interface is
+@@ -470,11 +464,6 @@ package System.OS_Interface is
        protocol : int) return int;
     pragma Import (C, pthread_mutexattr_setprotocol);
  
@@ -33,7 +33,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/l
 diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/libgnarl/s-taprop__linux.adb
 --- a/gcc/ada/libgnarl/s-taprop__linux.adb	2018-01-11 00:55:25.000000000 -0800
 +++ b/gcc/ada/libgnarl/s-taprop__linux.adb	2018-11-13 11:28:36.433964449 -0800
-@@ -202,9 +202,6 @@ package body System.Task_Primitives.Oper
+@@ -198,9 +198,6 @@ package body System.Task_Primitives.Oper
     pragma Import
       (C, GNAT_pthread_condattr_setup, "__gnat_pthread_condattr_setup");
  
@@ -43,7 +43,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
     --  We do not have pragma Linker_Options ("-lcap"); here, because this
     --  library is not present on many Linux systems. 'libcap' is the Linux
     --  "capabilities" library, called by __gnat_has_cap_sys_nice.
-@@ -214,38 +211,6 @@ package body System.Task_Primitives.Oper
+@@ -210,38 +207,6 @@ package body System.Task_Primitives.Oper
     --  Convert Ada priority to Linux priority. Priorities are 1 .. 99 on
     --  GNU/Linux, so we map 0 .. 98 to 1 .. 99.
  
@@ -76,13 +76,13 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
 -      return Ceiling_Support;
 -   end Get_Ceiling_Support;
 -
--   pragma Warnings (Off, "non-static call not allowed in preelaborated unit");
+-   pragma Warnings (Off, "non-preelaborable call not allowed*");
 -   Ceiling_Support : constant Boolean := Get_Ceiling_Support;
--   pragma Warnings (On, "non-static call not allowed in preelaborated unit");
+-   pragma Warnings (On, "non-preelaborable call not allowed*");
     --  True if the locking policy is Ceiling_Locking, and the current process
     --  has permission to use this policy. The process has permission if it is
     --  running as 'root', or if the capability was set by the setcap command,
-@@ -348,7 +313,9 @@ package body System.Task_Primitives.Oper
+@@ -344,7 +309,9 @@ package body System.Task_Primitives.Oper
     -- Init_Mutex --
     ----------------
  
@@ -92,7 +92,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
        Mutex_Attr : aliased pthread_mutexattr_t;
        Result, Result_2 : C.int;
  
-@@ -360,16 +327,7 @@ package body System.Task_Primitives.Oper
+@@ -356,16 +323,7 @@ package body System.Task_Primitives.Oper
           return Result;
        end if;
  
@@ -110,7 +110,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
           Result := pthread_mutexattr_setprotocol
             (Mutex_Attr'Access, PTHREAD_PRIO_INHERIT);
           pragma Assert (Result = 0);
-@@ -409,11 +367,6 @@ package body System.Task_Primitives.Oper
+@@ -405,11 +363,6 @@ package body System.Task_Primitives.Oper
              Result := pthread_rwlockattr_init (RWlock_Attr'Access);
              pragma Assert (Result = 0);
  
diff --git a/srcpkgs/gcc/files/libssp-musl.patch b/srcpkgs/gcc/files/libssp-musl.patch
index b21a2c29e57c..99f248401a1c 100644
--- a/srcpkgs/gcc/files/libssp-musl.patch
+++ b/srcpkgs/gcc/files/libssp-musl.patch
@@ -2,9 +2,9 @@ First part taken from Alpine.
 
 Second part added to prevent gccgo from thinking it can -fsplit-stack on musl.
 
---- a/gcc/gcc.c
-+++ b/gcc/gcc.c
-@@ -874,10 +874,15 @@ proper position among the other output files.  */
+--- a/gcc/gcc.cc
++++ b/gcc/gcc.cc
+@@ -984,10 +984,15 @@ proper position among the other output f
  #define LINK_GCC_C_SEQUENCE_SPEC "%G %{!nolibc:%L %G}"
  #endif
  
@@ -22,10 +22,10 @@ Second part added to prevent gccgo from thinking it can -fsplit-stack on musl.
  #else
  #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
  		       "|fstack-protector-strong|fstack-protector-explicit" \
-@@ -1155,7 +1160,7 @@ static const char *cc1_options =
+@@ -1280,7 +1285,7 @@ static const char *cc1_options =
   %{-version:--version}\
   %{-help=*:--help=%*}\
-  %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %b.s}}}\
+  %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %w%b.s}}}\
 - %{fsyntax-only:-o %j} %{-param*}\
 + %{fsyntax-only:-o %j} %{-param*} " NO_SSP_SPEC "\
   %{coverage:-fprofile-arcs -ftest-coverage}\
diff --git a/srcpkgs/gcc/patches/3b21c21f3f5726823e19728fdd1571a14aae0fb3.patch b/srcpkgs/gcc/patches/3b21c21f3f5726823e19728fdd1571a14aae0fb3.patch
new file mode 100644
index 000000000000..00929202a503
--- /dev/null
+++ b/srcpkgs/gcc/patches/3b21c21f3f5726823e19728fdd1571a14aae0fb3.patch
@@ -0,0 +1,105 @@
+From 3b21c21f3f5726823e19728fdd1571a14aae0fb3 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <siarheit@google.com>
+Date: Mon, 27 Jun 2022 13:27:24 +0100
+Subject: [PATCH] c++: avoid <memory> poisoning on musl [PR106102]
+
+On musl <pthread.h> uses calloc() (via <sched.h>). <memory> includes
+it indirectly and exposes use of poisoned calloc() when module code
+is built:
+
+    /build/build/./prev-gcc/xg++ ... ../../gcc-13-20220626/gcc/cp/mapper-resolver.cc
+        In file included from /<<NIX>>/musl-1.2.3-dev/include/pthread.h:30,
+                 from /build/build/prev-x86_64-unknown-linux-musl/libstdc++-v3/include/x86_64-unknown-linux-musl/bits/gthr-default.h:35,
+                 ....
+                 from /build/build/prev-x86_64-unknown-linux-musl/libstdc++-v3/include/memory:77,
+                 from ../../gcc-13-20220626/gcc/../libcody/cody.hh:24,
+                 from ../../gcc-13-20220626/gcc/cp/../../c++tools/resolver.h:25,
+                 from ../../gcc-13-20220626/gcc/cp/../../c++tools/resolver.cc:23,
+                 from ../../gcc-13-20220626/gcc/cp/mapper-resolver.cc:32:
+    /<<NIX>>/musl-1.2.3-dev/include/sched.h:84:7: error: attempt to use poisoned "calloc"
+       84 | void *calloc(size_t, size_t);
+          |       ^
+    /<<NIX>>/musl-1.2.3-dev/include/sched.h:124:36: error: attempt to use poisoned "calloc"
+      124 | #define CPU_ALLOC(n) ((cpu_set_t *)calloc(1,CPU_ALLOC_SIZE(n)))
+          |                                    ^
+
+gcc/cp/
+
+	PR c++/106102
+	* mapper-client.cc: Include <memory> via "system.h".
+	* mapper-resolver.cc: Ditto.
+	* module.cc: Ditto.
+
+libcc1/
+
+	PR c++/106102
+	* libcc1plugin.cc: Include <memory> via "system.h".
+	* libcp1plugin.cc: Ditto.
+---
+ gcc/cp/mapper-client.cc   | 1 +
+ gcc/cp/mapper-resolver.cc | 1 +
+ gcc/cp/module.cc          | 1 +
+ libcc1/libcc1plugin.cc    | 1 +
+ libcc1/libcp1plugin.cc    | 1 +
+ 5 files changed, 5 insertions(+)
+
+diff --git a/gcc/cp/mapper-client.cc b/gcc/cp/mapper-client.cc
+index 8603a886a099..fe9544b5ba43 100644
+--- a/gcc/cp/mapper-client.cc
++++ b/gcc/cp/mapper-client.cc
+@@ -27,6 +27,7 @@ along with GCC; see the file COPYING3.  If not see
+ #define INCLUDE_STRING
+ #define INCLUDE_VECTOR
+ #define INCLUDE_MAP
++#define INCLUDE_MEMORY
+ #include "system.h"
+ 
+ #include "line-map.h"
+diff --git a/gcc/cp/mapper-resolver.cc b/gcc/cp/mapper-resolver.cc
+index e3d29fb5ada1..e70d1b4ae2ca 100644
+--- a/gcc/cp/mapper-resolver.cc
++++ b/gcc/cp/mapper-resolver.cc
+@@ -25,6 +25,7 @@ along with GCC; see the file COPYING3.  If not see
+ #define INCLUDE_VECTOR
+ #define INCLUDE_ALGORITHM
+ #define INCLUDE_MAP
++#define INCLUDE_MEMORY
+ #include "system.h"
+ 
+ // We don't want or need to be aware of networking
+diff --git a/gcc/cp/module.cc b/gcc/cp/module.cc
+index 753963a4b246..8bb22c2b305a 100644
+--- a/gcc/cp/module.cc
++++ b/gcc/cp/module.cc
+@@ -206,6 +206,7 @@ Classes used:
+ 
+ #define _DEFAULT_SOURCE 1 /* To get TZ field of struct tm, if available.  */
+ #include "config.h"
++#define INCLUDE_MEMORY
+ #define INCLUDE_STRING
+ #define INCLUDE_VECTOR
+ #include "system.h"
+diff --git a/libcc1/libcc1plugin.cc b/libcc1/libcc1plugin.cc
+index 12ab5a57c8dd..bdd0bdabe77f 100644
+--- a/libcc1/libcc1plugin.cc
++++ b/libcc1/libcc1plugin.cc
+@@ -31,6 +31,7 @@
+ #undef PACKAGE_TARNAME
+ #undef PACKAGE_VERSION
+ 
++#define INCLUDE_MEMORY
+ #include "gcc-plugin.h"
+ #include "system.h"
+ #include "coretypes.h"
+diff --git a/libcc1/libcp1plugin.cc b/libcc1/libcp1plugin.cc
+index 83dab7f58b11..e2d5039a0a1f 100644
+--- a/libcc1/libcp1plugin.cc
++++ b/libcc1/libcp1plugin.cc
+@@ -32,6 +32,7 @@
+ #undef PACKAGE_TARNAME
+ #undef PACKAGE_VERSION
+ 
++#define INCLUDE_MEMORY
+ #include "gcc-plugin.h"
+ #include "system.h"
+ #include "coretypes.h"
diff --git a/srcpkgs/gcc/patches/49d508065bdd36fb1a9b6aad9666b1edb5e06474.patch b/srcpkgs/gcc/patches/49d508065bdd36fb1a9b6aad9666b1edb5e06474.patch
new file mode 100644
index 000000000000..89bd053d6d04
--- /dev/null
+++ b/srcpkgs/gcc/patches/49d508065bdd36fb1a9b6aad9666b1edb5e06474.patch
@@ -0,0 +1,115 @@
+From 49d508065bdd36fb1a9b6aad9666b1edb5e06474 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <siarheit@google.com>
+Date: Mon, 27 Jun 2022 23:42:44 +0100
+Subject: [PATCH] jit: avoid calloc() poisoning on musl [PR106102]
+
+On musl <pthread.h> uses calloc() (via <sched.h>). jit/ includes
+it directly and exposes use of poisoned calloc():
+
+    /build/build/./prev-gcc/xg++ ... ../../gcc-13-20220626/gcc/jit/jit-playback.cc
+    make[3]: *** [Makefile:1143: jit/libgccjit.o] Error 1
+    make[3]: *** Waiting for unfinished jobs....
+    In file included from /<<NIX>>/musl-1.2.3-dev/include/pthread.h:30,
+                     from ../../gcc-13-20220626/gcc/jit/jit-playback.cc:44:
+    /<<NIX>>/musl-1.2.3-dev/include/sched.h:84:7: error: attempt to use poisoned "calloc"
+       84 | void *calloc(size_t, size_t);
+          |       ^
+    /<<NIX>>/musl-1.2.3-dev/include/sched.h:124:36: error: attempt to use poisoned "calloc"
+      124 | #define CPU_ALLOC(n) ((cpu_set_t *)calloc(1,CPU_ALLOC_SIZE(n)))
+          |                                    ^
+
+The change moves <pthread.h> inclusion to "system.h" under new
+INCLUDE_PTHREAD_H guard and uses this mechanism in libgccjit.
+
+gcc/
+
+	PR c++/106102
+	* system.h: Introduce INCLUDE_PTHREAD_H macros to include <pthread.h>.
+
+gcc/jit/
+
+	PR c++/106102
+	* jit-playback.cc: Include <pthread.h> via "system.h" to avoid calloc()
+	poisoning.
+	* jit-recording.cc: Ditto.
+	* libgccjit.cc: Ditto.
+---
+ gcc/jit/jit-playback.cc  | 3 +--
+ gcc/jit/jit-recording.cc | 2 +-
+ gcc/jit/libgccjit.cc     | 2 +-
+ gcc/system.h             | 4 ++++
+ 4 files changed, 7 insertions(+), 4 deletions(-)
+
+diff --git a/gcc/jit/jit-playback.cc b/gcc/jit/jit-playback.cc
+index 6be6bdf8dea5..79714132b91a 100644
+--- a/gcc/jit/jit-playback.cc
++++ b/gcc/jit/jit-playback.cc
+@@ -19,6 +19,7 @@ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
++#define INCLUDE_PTHREAD_H
+ #include "system.h"
+ #include "coretypes.h"
+ #include "target.h"
+@@ -41,8 +42,6 @@ along with GCC; see the file COPYING3.  If not see
+ #include "diagnostic.h"
+ #include "stmt.h"
+ 
+-#include <pthread.h>
+-
+ #include "jit-playback.h"
+ #include "jit-result.h"
+ #include "jit-builtins.h"
+diff --git a/gcc/jit/jit-recording.cc b/gcc/jit/jit-recording.cc
+index 697dee66e733..f78daed2d71a 100644
+--- a/gcc/jit/jit-recording.cc
++++ b/gcc/jit/jit-recording.cc
+@@ -19,13 +19,13 @@ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
++#define INCLUDE_PTHREAD_H
+ #include "system.h"
+ #include "coretypes.h"
+ #include "tm.h"
+ #include "pretty-print.h"
+ #include "toplev.h"
+ 
+-#include <pthread.h>
+ 
+ #include "jit-builtins.h"
+ #include "jit-recording.h"
+diff --git a/gcc/jit/libgccjit.cc b/gcc/jit/libgccjit.cc
+index 0e76097b4bac..ca862662777e 100644
+--- a/gcc/jit/libgccjit.cc
++++ b/gcc/jit/libgccjit.cc
+@@ -19,12 +19,12 @@ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
++#define INCLUDE_PTHREAD_H
+ #include "system.h"
+ #include "coretypes.h"
+ #include "timevar.h"
+ #include "typed-splay-tree.h"
+ #include "cppbuiltin.h"
+-#include <pthread.h>
+ 
+ #include "libgccjit.h"
+ #include "jit-recording.h"
+diff --git a/gcc/system.h b/gcc/system.h
+index 67158b70c789..f8d42ff68150 100644
+--- a/gcc/system.h
++++ b/gcc/system.h
+@@ -753,6 +753,10 @@ extern int vsnprintf (char *, size_t, const char *, va_list);
+ #endif
+ #endif
+ 
++#ifdef INCLUDE_PTHREAD_H
++#include <pthread.h>
++#endif
++
+ #ifdef INCLUDE_ISL
+ #ifdef HAVE_isl
+ #include <isl/options.h>
diff --git a/srcpkgs/gcc/patches/libffi_gnulinux.patch b/srcpkgs/gcc/patches/libffi_gnulinux.patch
deleted file mode 100644
index 98245bd5be1a..000000000000
--- a/srcpkgs/gcc/patches/libffi_gnulinux.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/libffi/src/closures.c
-+++ b/libffi/src/closures.c
-@@ -34,7 +34,7 @@
- #include <ffi_common.h>
-
- #if !FFI_MMAP_EXEC_WRIT && !FFI_EXEC_TRAMPOLINE_TABLE
--# if __gnu_linux__ && !defined(__ANDROID__)
-+# if __linux__ && !defined(__ANDROID__)
- /* This macro indicates it may be forbidden to map anonymous memory
-    with both write and execute permission.  Code compiled when this
-    option is defined will attempt to map such pages once, but if it
diff --git a/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch b/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
index bdf5c75d917d..26d80356ad0d 100644
--- a/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
+++ b/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
@@ -29,10 +29,14 @@ diff --git a/libgcc/config/rs6000/t-linux b/libgcc/config/rs6000/t-linux
 index 4f6d4c4..fa93bb6 100644
 --- a/libgcc/config/rs6000/t-linux
 +++ b/libgcc/config/rs6000/t-linux
-@@ -1,3 +1,3 @@
+@@ -1,6 +1,6 @@
  SHLIB_MAPFILES += $(srcdir)/config/rs6000/libgcc-glibc.ver
  
--HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-minimal-toc
-+HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-gnu-attribute -mno-minimal-toc
+-HOST_LIBGCC2_CFLAGS += -mlong-double-128
++HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-gnu-attribute
+ 
+ # This is a way of selecting -mcmodel=small for ppc64, which gives
+ # smaller and faster libgcc code.  Directly specifying -mcmodel=small
+
 -- 
 2.24.0
diff --git a/srcpkgs/gcc/patches/mips-sgidefs_h.patch b/srcpkgs/gcc/patches/mips-sgidefs_h.patch
index dddfe10e8c06..78a2ce35875d 100644
--- a/srcpkgs/gcc/patches/mips-sgidefs_h.patch
+++ b/srcpkgs/gcc/patches/mips-sgidefs_h.patch
@@ -3,9 +3,10 @@
 @@ -42,7 +42,7 @@
  #define _MIPS_SIM_NABI32	2
  #define _MIPS_SIM_ABI64		3
- #elif !defined(__OpenBSD__)
+ #elif !defined(__OpenBSD__) && !defined(__FreeBSD__)
 -# include <sgidefs.h>
 +# include <asm/sgidefs.h>
  #endif
  
  #  ifndef _ABIN32
+
diff --git a/srcpkgs/gcc/template b/srcpkgs/gcc/template
index 09727ef34fb2..32ee79e32f0d 100644
--- a/srcpkgs/gcc/template
+++ b/srcpkgs/gcc/template
@@ -3,18 +3,15 @@
 # which use the version number.
 
 pkgname=gcc
-# we are using a 10-stable git snapshot alpine is using in order
-# to get regression fixes not yet incorporate into a stable release
-# it should be possible to switch back to stable with 10.3 or 11
-version=10.2.1pre1
-revision=3
+version=12.1.0
+revision=1
 _patchver="${version%pre*}"
 _minorver="${_patchver%.*}"
 _majorver="${_minorver%.*}"
-_gmp_version=6.2.0
+_gmp_version=6.2.1
 _mpfr_version=4.1.0
-_mpc_version=1.1.0
-_isl_version=0.21
+_mpc_version=1.2.1
+_isl_version=0.24
 wrksrc=gcc-${version/pre/_pre}
 short_desc="GNU Compiler Collection"
 maintainer="Enno Boland <gottox@voidlinux.org>"
@@ -22,16 +19,16 @@ homepage="http://gcc.gnu.org"
 license="GFDL-1.2-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
 # *-musl builders have issues fetching https://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz
 distfiles="
- https://dev.alpinelinux.org/~nenolod/gcc-${version/pre/_pre}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${version}/gcc-${version}.tar.xz
  https://gmplib.org/download/gmp/gmp-${_gmp_version}.tar.xz
  ${GNU_SITE}/mpfr/mpfr-${_mpfr_version}.tar.xz
  ${GNU_SITE}/mpc/mpc-${_mpc_version}.tar.gz
  ${SOURCEFORGE_SITE}/libisl/isl-${_isl_version}.tar.bz2"
-checksum="772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 258e6cd51b3fbdfc185c716d55f82c08aff57df0c6fbd143cf6ed561267a1526
+checksum="62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
+ fd4829912cddd12f84181c3451cc752be224643e87fac497b69edddadc49b4f2
  0c98a3f1732ff6ca4ea690552079da9c597872d30e96ec28414ee23c95558a7f
- 6985c538143c1208dcb1ac42cedad6ff52e267b47e5f970183a3e75125b43c2e
- d18ca11f8ad1a39ab6d03d3dcb3365ab416720fcb65b42d69f34f51bf0a0e859"
+ 17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459
+ fcf78dd9656c10eb8cf9fbd5f59a0b6b01386205fe1934b3b287a0a1898145c0"
 
 nopie=yes
 lib32disabled=yes
@@ -396,7 +393,7 @@ gcc-ada_package() {
 	depends="gcc>=${_minorver} libada-devel>=${_minorver}"
 	short_desc+=" - Ada compiler frontend"
 	pkg_install() {
-		for f in gnat{,bind,chop,clean,find,kr,link,ls,make,name,prep,xref}; do
+		for f in gnat{,bind,chop,clean,kr,link,ls,make,name,prep}; do
 			vmove usr/bin/${f}
 		done
 	}

From c23c6ba9a800f0ec3447d796c619e85c1db8981b Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 06:27:47 -0700
Subject: [PATCH 3/7] libtool: update to 2.4.7.

---
 .../patches/0002-rename-with-sysroot.patch    | 34 +++++++++----------
 srcpkgs/libtool/template                      |  6 ++--
 2 files changed, 20 insertions(+), 20 deletions(-)

diff --git a/srcpkgs/libtool/patches/0002-rename-with-sysroot.patch b/srcpkgs/libtool/patches/0002-rename-with-sysroot.patch
index 960873c04e24..152aace96c41 100644
--- a/srcpkgs/libtool/patches/0002-rename-with-sysroot.patch
+++ b/srcpkgs/libtool/patches/0002-rename-with-sysroot.patch
@@ -13,16 +13,16 @@ Jürgen Buchmüller <pullmoll@t-online.de>
 
 --- a/configure	2015-02-15 17:14:34.000000000 +0100
 +++ b/configure	2015-10-20 13:25:12.684906339 +0200
-@@ -824,7 +824,7 @@
+@@ -832,7 +832,7 @@
  enable_fast_install
  with_aix_soname
  with_gnu_ld
 -with_sysroot
 +with_libtool_sysroot
  enable_libtool_lock
+ enable_cross_guesses
  '
-       ac_precious_vars='build_alias
-@@ -1487,7 +1487,8 @@
+@@ -1509,7 +1509,8 @@
                            shared library versioning (aka "SONAME") variant to
                            provide on AIX, [default=aix].
    --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
@@ -32,7 +32,7 @@ Jürgen Buchmüller <pullmoll@t-online.de>
                            compiler's sysroot if not specified).
  
  Some influential environment variables:
-@@ -7389,29 +7390,29 @@
+@@ -7610,29 +7611,29 @@
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
  $as_echo_n "checking for sysroot... " >&6; }
  
@@ -57,8 +57,8 @@ Jürgen Buchmüller <pullmoll@t-online.de>
     fi
     ;; #(
   /*)
--   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
-+   lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"`
+-   lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"`
++   lt_sysroot=`echo "$with_libtool_sysroot" | $SED -e "$sed_quote_subst"`
     ;; #(
   no|'')
     ;; #(
@@ -72,7 +72,7 @@ Jürgen Buchmüller <pullmoll@t-online.de>
  esac
 --- a/libltdl/configure	2015-02-15 17:15:15.000000000 +0100
 +++ b/libltdl/configure	2015-10-20 13:26:45.747914683 +0200
-@@ -775,7 +775,7 @@
+@@ -777,7 +777,7 @@
  with_aix_soname
  enable_dependency_tracking
  with_gnu_ld
@@ -81,7 +81,7 @@ Jürgen Buchmüller <pullmoll@t-online.de>
  enable_libtool_lock
  enable_ltdl_install
  '
-@@ -1429,7 +1429,8 @@
+@@ -1442,7 +1442,8 @@
                            shared library versioning (aka "SONAME") variant to
                            provide on AIX, [default=aix].
    --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
@@ -91,7 +91,7 @@ Jürgen Buchmüller <pullmoll@t-online.de>
                            compiler's sysroot if not specified).
  
  Some influential environment variables:
-@@ -6275,29 +6276,29 @@
+@@ -6397,29 +6398,29 @@
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
  $as_echo_n "checking for sysroot... " >&6; }
  
@@ -116,8 +116,8 @@ Jürgen Buchmüller <pullmoll@t-online.de>
     fi
     ;; #(
   /*)
--   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
-+   lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"`
+-   lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"`
++   lt_sysroot=`echo "$with_libtool_sysroot" | $SED -e "$sed_quote_subst"`
     ;; #(
   no|'')
     ;; #(
@@ -243,14 +243,14 @@ Jürgen Buchmüller <pullmoll@t-online.de>
  ]])
 --- a/m4/libtool.m4	2015-01-20 17:15:19.000000000 +0100
 +++ b/m4/libtool.m4	2015-10-20 15:40:04.020631813 +0200
-@@ -1245,29 +1245,29 @@
- # _LT_WITH_SYSROOT
+@@ -1243,29 +1243,29 @@
  # ----------------
  AC_DEFUN([_LT_WITH_SYSROOT],
--[AC_MSG_CHECKING([for sysroot])
+ [m4_require([_LT_DECL_SED])dnl
+-AC_MSG_CHECKING([for sysroot])
 -AC_ARG_WITH([sysroot],
 -[AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@],
-+[AC_MSG_CHECKING([for libtool-sysroot])
++AC_MSG_CHECKING([for libtool-sysroot])
 +AC_ARG_WITH([libtool-sysroot],
 +[AS_HELP_STRING([--with-libtool-sysroot@<:@=DIR@:>@],
    [Search for dependent libraries within DIR (or the compiler's sysroot
@@ -269,8 +269,8 @@ Jürgen Buchmüller <pullmoll@t-online.de>
     fi
     ;; #(
   /*)
--   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
-+   lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"`
+-   lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"`
++   lt_sysroot=`echo "$with_libtool_sysroot" | $SED -e "$sed_quote_subst"`
     ;; #(
   no|'')
     ;; #(
diff --git a/srcpkgs/libtool/template b/srcpkgs/libtool/template
index b9972df70341..08e35d466a44 100644
--- a/srcpkgs/libtool/template
+++ b/srcpkgs/libtool/template
@@ -1,7 +1,7 @@
 # Template file for 'libtool'
 pkgname=libtool
-version=2.4.6
-revision=6
+version=2.4.7
+revision=1
 build_style=gnu-configure
 hostmakedepends="texinfo perl automake help2man xz"
 depends="tar sed"
@@ -10,7 +10,7 @@ maintainer="Enno Boland <gottox@voidlinux.org>"
 license="GPL-2.0-or-later"
 homepage="http://www.gnu.org/software/libtool"
 distfiles="${GNU_SITE}/libtool/$pkgname-$version.tar.xz"
-checksum=7c87a8c2c8c0fc9cd5019e402bed4292462d00a718a7cd5f11218153bf28b26f
+checksum=4f7f217f057ce655ff22559ad221a0fd8ef84ad1fc5fcb6990cecc333aa1635d
 
 pre_configure() {
 	touch aclocal.m4 libltdl/aclocal.m4 Makefile.am libltdl/Makefile.am Makefile.in libltdl/Makefile.in

From 55736ef1267cac9b070d71099fe7b2115ed56541 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 17:20:16 -0700
Subject: [PATCH 4/7] libiberty-devel: update to 20220713.

---
 srcpkgs/libiberty-devel/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/libiberty-devel/template b/srcpkgs/libiberty-devel/template
index 1a4e1ca3d594..b04268908c2e 100644
--- a/srcpkgs/libiberty-devel/template
+++ b/srcpkgs/libiberty-devel/template
@@ -1,6 +1,6 @@
 # Template file for 'libiberty-devel'
 pkgname=libiberty-devel
-version=20210106
+version=20220713
 revision=1
 wrksrc=libiberty-${version}
 build_wrksrc=libiberty
@@ -11,7 +11,7 @@ maintainer="q66 <daniel@octaforge.org>"
 license="GPL-3.0-or-later"
 homepage="http://gcc.gnu.org/"
 distfiles="http://deb.debian.org/debian/pool/main/libi/libiberty/libiberty_${version}.orig.tar.xz"
-checksum=9df153d69914c0f5a9145e0abbb248e72feebab6777c712a30f1c3b8c19047d4
+checksum=b59050f48c8a0f9c9e6fba5d17c7a4f11d1329de0c0dca7331b767a6d2bbe8d9
 conflicts="binutils-devel<=2.35.1_3"
 
 CFLAGS="-fPIC"

From 57a8836f17e7b6f2c333ad4a0cfe09ae9bb4c482 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 23:31:45 -0700
Subject: [PATCH 5/7] glibc: update to 2.36.

---
 common/shlibs                                 |  60 ++--
 .../glibc/patches/glibc-c-utf8-locale.patch   | 286 ------------------
 srcpkgs/glibc/template                        |  62 ++--
 3 files changed, 55 insertions(+), 353 deletions(-)
 delete mode 100644 srcpkgs/glibc/patches/glibc-c-utf8-locale.patch

diff --git a/common/shlibs b/common/shlibs
index c6400b566966..65f4d1b62b61 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -17,38 +17,38 @@
 # one (order top->bottom) is preferred over the next ones.
 #
 libc.so musl-1.1.24_7
-libc.so.6 glibc-2.32_1
-libm.so.6 glibc-2.32_1
-libpthread.so.0 glibc-2.32_1
-librt.so.1 glibc-2.32_1
-libdl.so.2 glibc-2.32_1
-ld-linux-x86-64.so.2 glibc-2.32_1 x86_64
-ld-linux.so.2 glibc-2.32_1 i686
-ld-linux.so.3 glibc-2.32_1 armv5tel
-ld-linux-aarch64.so.1 glibc-2.32_1 aarch64
-ld64.so.2 glibc-2.32_1 ppc64
-ld.so.1 glibc-2.32_1 mips
-ld.so.1 glibc-2.32_1 ppc
-ld-linux-armhf.so.3 glibc-2.32_1
-libresolv.so.2 glibc-2.32_1
-libanl.so.1 glibc-2.32_1
-libthread_db.so.1 glibc-2.32_1
-libutil.so.1 glibc-2.32_1
-libnsl.so.1 glibc-2.32_1
-libnss_db.so.2 glibc-2.32_1
-libnss_files.so.2 glibc-2.32_1
-libnss_compat.so.2 glibc-2.32_1
-libnss_dns.so.2 glibc-2.32_1
-libnss_hesiod.so.2 glibc-2.32_1
-libcrypt.so.1 glibc-2.32_1
-libBrokenLocale.so.1 glibc-2.32_1
+libc.so.6 glibc-2.36_1
+libm.so.6 glibc-2.36_1
+libpthread.so.0 glibc-2.36_1
+librt.so.1 glibc-2.36_1
+libdl.so.2 glibc-2.36_1
+ld-linux-x86-64.so.2 glibc-2.36_1 x86_64
+ld-linux.so.2 glibc-2.36_1 i686
+ld-linux.so.3 glibc-2.36_1 armv5tel
+ld-linux-aarch64.so.1 glibc-2.36_1 aarch64
+ld64.so.2 glibc-2.36_1 ppc64
+ld.so.1 glibc-2.36_1 mips
+ld.so.1 glibc-2.36_1 ppc
+ld-linux-armhf.so.3 glibc-2.36_1
+libresolv.so.2 glibc-2.36_1
+libanl.so.1 glibc-2.36_1
+libthread_db.so.1 glibc-2.36_1
+libutil.so.1 glibc-2.36_1
+libnsl.so.1 glibc-2.36_1
+libnss_db.so.2 glibc-2.36_1
+libnss_files.so.2 glibc-2.36_1
+libnss_compat.so.2 glibc-2.36_1
+libnss_dns.so.2 glibc-2.36_1
+libnss_hesiod.so.2 glibc-2.36_1
+libcrypt.so.1 glibc-2.36_1
+libBrokenLocale.so.1 glibc-2.36_1
 libSimGearCore.so.2020.3.13 simgear-2020.3.13_1
 libSimGearScene.so.2020.3.13 simgear-2020.3.13_1
-libmemusage.so glibc-2.32_1
-libSegFault.so glibc-2.32_1
-libpcprofile.so glibc-2.32_1
-libcidn.so.1 glibc-2.32_1
-libmvec.so.1 glibc-2.32_1
+libmemusage.so glibc-2.36_1
+libSegFault.so glibc-2.36_1
+libpcprofile.so glibc-2.36_1
+libcidn.so.1 glibc-2.36_1
+libmvec.so.1 glibc-2.36_1
 libcddgmp.so.0 cddlib-0.94m_1
 libcdd.so.0 cddlib-0.94m_1
 libz.so.1 zlib-1.2.3_1
diff --git a/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch b/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch
deleted file mode 100644
index 7215e1558b62..000000000000
--- a/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch
+++ /dev/null
@@ -1,286 +0,0 @@
-Short description: Add C.UTF-8 support.
-Author(s): Fedora glibc team <glibc@lists.fedoraproject.org>
-Origin: PATCH
-Upstream status: not-submitted
-
-This patch needs to upstream as part of Carlos O'Donell
-<carlos@redhat.com>'s work on enabling upstream C.UTF-8 support. This
-work is currently blocked on cleaning up the test results to prove that
-full code-point sorting is working as intended.
-
-Note that this patch does not provide full code-point sorting as
-expected.
-
-This patch needs to upstream as soon as possible since it would be nice
-to have this in F29 and fixed.
-
-From 2eda7b462b415105f5a05c1323372d4e39d46439 Mon Sep 17 00:00:00 2001
-From: Mike FABIAN <mfabian@redhat.com>
-Date: Mon, 10 Aug 2015 15:58:12 +0200
-Subject: [PATCH] Add a C.UTF-8 locale
-
----
- localedata/SUPPORTED |   1 +
- localedata/locales/C | 238 +++++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 239 insertions(+)
- create mode 100644 localedata/locales/C
-
-diff --git a/localedata/SUPPORTED b/localedata/SUPPORTED
-index 8ca023e..2a78391 100644
---- a/localedata/SUPPORTED
-+++ b/localedata/SUPPORTED
-@@ -1,6 +1,7 @@
- # This file names the currently supported and somewhat tested locales.
- # If you have any additions please file a glibc bug report.
- SUPPORTED-LOCALES=\
-+C.UTF-8/UTF-8 \
- aa_DJ.UTF-8/UTF-8 \
- aa_DJ/ISO-8859-1 \
- aa_ER/UTF-8 \
-diff --git a/localedata/locales/C b/localedata/locales/C
-new file mode 100644
-index 0000000..fdf460e
---- /dev/null
-+++ b/localedata/locales/C
-@@ -0,0 +1,238 @@
-+escape_char /
-+comment_char %
-+% Locale for C locale in UTF-8
-+
-+LC_IDENTIFICATION
-+title      "C locale"
-+source     ""
-+address    ""
-+contact    ""
-+email      "mfabian@redhat.com"
-+tel        ""
-+fax        ""
-+language   "C"
-+territory  ""
-+revision   "1.0"
-+date       "2015-08-10"
-+%
-+category  "i18n:2012";LC_IDENTIFICATION
-+category  "i18n:2012";LC_CTYPE
-+category  "i18n:2012";LC_COLLATE
-+category  "i18n:2012";LC_TIME
-+category  "i18n:2012";LC_NUMERIC
-+category  "i18n:2012";LC_MONETARY
-+category  "i18n:2012";LC_MESSAGES
-+category  "i18n:2012";LC_PAPER
-+category  "i18n:2012";LC_NAME
-+category  "i18n:2012";LC_ADDRESS
-+category  "i18n:2012";LC_TELEPHONE
-+category  "i18n:2012";LC_MEASUREMENT
-+END LC_IDENTIFICATION
-+
-+LC_CTYPE
-+copy "i18n"
-+
-+translit_start
-+include "translit_combining";""
-+translit_end
-+
-+END LC_CTYPE
-+
-+LC_COLLATE
-+order_start forward
-+<U0000>
-+..
-+<UFFFF>
-+<U10000>
-+..
-+<U1FFFF>
-+<U20000>
-+..
-+<U2FFFF>
-+<UE0000>
-+..
-+<UEFFFF>
-+<UF0000>
-+..
-+<UFFFFF>
-+<U100000>
-+..
-+<U10FFFF>
-+UNDEFINED
-+order_end
-+END LC_COLLATE
-+
-+LC_MONETARY
-+% This is the 14652 i18n fdcc-set definition for
-+% the LC_MONETARY category
-+% (except for the int_curr_symbol and currency_symbol, they are empty in
-+% the 14652 i18n fdcc-set definition and also empty in
-+% glibc/locale/C-monetary.c. But localedef complains in that case).
-+%
-+% Using "USD" for int_curr_symbol. But maybe "XXX" would be better?
-+% XXX is "No currency" (https://en.wikipedia.org/wiki/ISO_4217)
-+int_curr_symbol     "<U0055><U0053><U0044><U0020>"
-+% Using "$" for currency_symbol. But maybe <U00A4> would be better?
-+% U+00A4 is the "generic currency symbol"
-+% (https://en.wikipedia.org/wiki/Currency_sign_%28typography%29)
-+currency_symbol     "<U0024>"
-+mon_decimal_point   "<U002E>"
-+mon_thousands_sep   ""
-+mon_grouping        -1
-+positive_sign       ""
-+negative_sign       "<U002D>"
-+int_frac_digits     -1
-+frac_digits         -1
-+p_cs_precedes       -1
-+int_p_sep_by_space  -1
-+p_sep_by_space      -1
-+n_cs_precedes       -1
-+int_n_sep_by_space  -1
-+n_sep_by_space      -1
-+p_sign_posn         -1
-+n_sign_posn         -1
-+%
-+END LC_MONETARY
-+
-+LC_NUMERIC
-+% This is the POSIX Locale definition for
-+% the LC_NUMERIC category.
-+%
-+decimal_point   "<U002E>"
-+thousands_sep   ""
-+grouping        -1
-+END LC_NUMERIC
-+
-+LC_TIME
-+% This is the POSIX Locale definition for
-+% the LC_TIME category.
-+%
-+% Abbreviated weekday names (%a)
-+abday       "<U0053><U0075><U006E>";"<U004D><U006F><U006E>";/
-+            "<U0054><U0075><U0065>";"<U0057><U0065><U0064>";/
-+            "<U0054><U0068><U0075>";"<U0046><U0072><U0069>";/
-+            "<U0053><U0061><U0074>"
-+
-+% Full weekday names (%A)
-+day         "<U0053><U0075><U006E><U0064><U0061><U0079>";/
-+            "<U004D><U006F><U006E><U0064><U0061><U0079>";/
-+            "<U0054><U0075><U0065><U0073><U0064><U0061><U0079>";/
-+            "<U0057><U0065><U0064><U006E><U0065><U0073><U0064><U0061><U0079>";/
-+            "<U0054><U0068><U0075><U0072><U0073><U0064><U0061><U0079>";/
-+            "<U0046><U0072><U0069><U0064><U0061><U0079>";/
-+            "<U0053><U0061><U0074><U0075><U0072><U0064><U0061><U0079>"
-+
-+% Abbreviated month names (%b)
-+abmon       "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
-+            "<U004D><U0061><U0072>";"<U0041><U0070><U0072>";/
-+            "<U004D><U0061><U0079>";"<U004A><U0075><U006E>";/
-+            "<U004A><U0075><U006C>";"<U0041><U0075><U0067>";/
-+            "<U0053><U0065><U0070>";"<U004F><U0063><U0074>";/
-+            "<U004E><U006F><U0076>";"<U0044><U0065><U0063>"
-+
-+% Full month names (%B)
-+mon         "<U004A><U0061><U006E><U0075><U0061><U0072><U0079>";/
-+            "<U0046><U0065><U0062><U0072><U0075><U0061><U0072><U0079>";/
-+            "<U004D><U0061><U0072><U0063><U0068>";/
-+            "<U0041><U0070><U0072><U0069><U006C>";/
-+            "<U004D><U0061><U0079>";/
-+            "<U004A><U0075><U006E><U0065>";/
-+            "<U004A><U0075><U006C><U0079>";/
-+            "<U0041><U0075><U0067><U0075><U0073><U0074>";/
-+            "<U0053><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";/
-+            "<U004F><U0063><U0074><U006F><U0062><U0065><U0072>";/
-+            "<U004E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/
-+            "<U0044><U0065><U0063><U0065><U006D><U0062><U0065><U0072>"
-+
-+% Week description, consists of three fields:
-+% 1. Number of days in a week.
-+% 2. Gregorian date that is a first weekday (19971130 for Sunday, 19971201 for Monday).
-+% 3. The weekday number to be contained in the first week of the year.
-+%
-+% ISO 8601 conforming applications should use the values 7, 19971201 (a
-+% Monday), and 4 (Thursday), respectively.
-+week    7;19971201;4
-+first_weekday	1
-+first_workday	1
-+
-+% Appropriate date and time representation (%c)
-+%	"%a %b %e %H:%M:%S %Y"
-+d_t_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0059>"
-+
-+% Appropriate date representation (%x)
-+%	"%m/%d/%y"
-+d_fmt   "<U0025><U006D><U002F><U0025><U0064><U002F><U0025><U0079>"
-+
-+% Appropriate time representation (%X)
-+%	"%H:%M:%S"
-+t_fmt   "<U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053>"
-+
-+% Appropriate AM/PM time representation (%r)
-+%	"%I:%M:%S %p"
-+t_fmt_ampm "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0070>"
-+
-+% Equivalent of AM/PM (%p)      "AM"/"PM"
-+%
-+am_pm	"<U0041><U004D>";"<U0050><U004D>"
-+
-+% Appropriate date representation (date(1))   "%a %b %e %H:%M:%S %Z %Y"
-+date_fmt	"<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U005A><U0020><U0025><U0059>"
-+END LC_TIME
-+
-+LC_MESSAGES
-+% This is the POSIX Locale definition for
-+% the LC_NUMERIC category.
-+%
-+yesexpr "<U005E><U005B><U0079><U0059><U005D>"
-+noexpr  "<U005E><U005B><U006E><U004E><U005D>"
-+yesstr  "<U0059><U0065><U0073>"
-+nostr   "<U004E><U006F>"
-+END LC_MESSAGES
-+
-+LC_PAPER
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_PAPER category.
-+% (A4 paper, this is also used in the built in C/POSIX
-+% locale in glibc/locale/C-paper.c)
-+height   297
-+width    210
-+END LC_PAPER
-+
-+LC_NAME
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_NAME category.
-+% "%p%t%g%t%m%t%f"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-name.c)
-+name_fmt    "<U0025><U0070><U0025><U0074><U0025><U0067><U0025><U0074>/
-+<U0025><U006D><U0025><U0074><U0025><U0066>"
-+END LC_NAME
-+
-+LC_ADDRESS
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_ADDRESS category.
-+% "%a%N%f%N%d%N%b%N%s %h %e %r%N%C-%z %T%N%c%N"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-address.c)
-+postal_fmt    "<U0025><U0061><U0025><U004E><U0025><U0066><U0025><U004E>/
-+<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
-+<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
-+<U004E><U0025><U0043><U002D><U0025><U007A><U0020><U0025><U0054><U0025>/
-+<U004E><U0025><U0063><U0025><U004E>"
-+END LC_ADDRESS
-+
-+LC_TELEPHONE
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_TELEPHONE category.
-+% "+%c %a %l"
-+tel_int_fmt    "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025>/
-+<U006C>"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-telephone.c)
-+END LC_TELEPHONE
-+
-+LC_MEASUREMENT
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_MEASUREMENT category.
-+% (same as in the built in C/POSIX locale in glibc/locale/C-measurement.c)
-+%metric
-+measurement    1
-+END LC_MEASUREMENT
-+
--- 
-2.4.3
-
diff --git a/srcpkgs/glibc/template b/srcpkgs/glibc/template
index c62a4d2aedf1..139aab865864 100644
--- a/srcpkgs/glibc/template
+++ b/srcpkgs/glibc/template
@@ -1,14 +1,14 @@
 # Template file for 'glibc'
 pkgname=glibc
-version=2.32
-revision=2
+version=2.36
+revision=1
 bootstrap=yes
 short_desc="GNU C library"
 maintainer="Enno Boland <gottox@voidlinux.org>"
 license="GPL-2.0-or-later, LGPL-2.1-or-later, BSD-3-Clause"
 homepage="http://www.gnu.org/software/libc"
 distfiles="${GNU_SITE}/glibc/glibc-${version}.tar.xz"
-checksum=1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum=1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
 # Do not strip these files, objcopy errors out.
 nostrip_files="
 	XBS5_ILP32_OFFBIG
@@ -20,27 +20,28 @@ nostrip_files="
 	POSIX_V6_LP64_OFF64
 	POSIX_V7_LP64_OFF64
 	XBS5_LP64_OFF64
-	ld-${version}.so
-	libdl-${version}.so
-	libanl-${version}.so
-	libcidn-${version}.so
-	libresolv-${version}.so
-	libcrypt-${version}.so
-	libpthread-${version}.so
-	libm-${version}.so
-	libutil-${version}.so
-	libthread_db-1.0.so
-	librt-${version}.so
-	libnsl-${version}.so
-	libc-${version}.so
-	libBrokenLocale-${version}.so
-	libnss_compat-${version}.so
-	libnss_db-${version}.so
-	libnss_dns-${version}.so
-	libnss_files-${version}.so
-	libnss_hesiod-${version}.so
-	libnss_nisplus-${version}.so
-	libnss_nis-${version}.so"
+	ld-linux-x86-64.so.2
+	ld-linux.so.2
+	ld-linux.so.3
+	ld-linux-aarch64.so.1
+	ld64.so.2
+	ld.so.1
+	ld-linux-armhf.so.3
+	libresolv.so.2
+	libcrypt.so.1
+	libm.so.6
+	libthread_db.so.1
+	libnsl.so.1
+	libc.so.6
+	libc_malloc_debug.so.0
+	libmemusage.so
+	libmvec.so.1
+	libBrokenLocale.so.1
+	libnss_compat.so.2
+	libnss_db.so.2
+	libnss_dns.so.2
+	libnss_files.so.2
+	libnss_hesiod.so.2"
 
 conf_files="
 	/etc/rpc
@@ -54,7 +55,6 @@ lib32files="/usr/lib/gconv/gconv-modules"
 lib32symlinks="ld-linux.so.2"
 # There's no point in building this for musl.
 archs="~*-musl"
-nopie=yes
 
 do_configure() {
 	mkdir build
@@ -163,18 +163,6 @@ do_install() {
 	rm -f ${DESTDIR}/usr/bin/z{dump,ic}
 
 	mv ${DESTDIR}/usr/sbin/* ${DESTDIR}/usr/bin
-
-	# Create xbps.d(5) arch override file for 32-bit architectures
-	# 32-bit userlands may be used with 64-bit kernels and then
-	# xbps will report an incorrect architecture by default
-	case "$XBPS_TARGET_MACHINE" in
-		i686|ppc|ppcle|armv*)
-			vmkdir usr/share/xbps.d
-			echo "architecture=${XBPS_TARGET_MACHINE}" > \
-				${DESTDIR}/usr/share/xbps.d/arch-32bit.conf
-			;;
-		*) ;;
-	esac
 }
 
 glibc-devel_package() {

From 57ea64b1f2aae6338f9487aa58f2b87ccb5291d5 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 20:08:52 -0700
Subject: [PATCH 6/7] openssh: suppress werror on gcc12

---
 srcpkgs/openssh/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/openssh/template b/srcpkgs/openssh/template
index 02a2dec35f42..6e8e343a9dca 100644
--- a/srcpkgs/openssh/template
+++ b/srcpkgs/openssh/template
@@ -40,7 +40,7 @@ if [ "$build_option_ldns" -a -z "$build_option_ssl" ]; then
 	broken="option 'ldns' requires option 'ssl'"
 fi
 
-CFLAGS="-Wno-format-truncation -Wno-stringop-truncation"
+CFLAGS="-Wno-format-truncation -Wno-stringop-truncation -Wno-error=maybe-uninitialized"
 
 case $XBPS_TARGET_MACHINE in
 	i686-musl)

From 15315949d8817c1ca7eec99d4d42908cb192c4b3 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 20:09:31 -0700
Subject: [PATCH 7/7] linux5.18: update dotconfigs for gcc12

---
 srcpkgs/linux5.18/files/x86_64-dotconfig | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/srcpkgs/linux5.18/files/x86_64-dotconfig b/srcpkgs/linux5.18/files/x86_64-dotconfig
index 4e73a3195d40..ea6204868e23 100644
--- a/srcpkgs/linux5.18/files/x86_64-dotconfig
+++ b/srcpkgs/linux5.18/files/x86_64-dotconfig
@@ -512,6 +512,7 @@ CONFIG_RETHUNK=y
 CONFIG_CPU_UNRET_ENTRY=y
 CONFIG_CPU_IBPB_ENTRY=y
 CONFIG_CPU_IBRS_ENTRY=y
+CONFIG_SLS=y
 CONFIG_ARCH_HAS_ADD_PAGES=y
 CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y
 
@@ -10060,8 +10061,11 @@ CONFIG_LSM="yama,loadpin,safesetid,integrity"
 # Memory initialization
 #
 CONFIG_INIT_STACK_NONE=y
+# CONFIG_INIT_STACK_ALL_PATTERN is not set
+# CONFIG_INIT_STACK_ALL_ZERO is not set
 CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
 # CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
+# CONFIG_ZERO_CALL_USED_REGS is not set
 # end of Memory initialization
 # end of Kernel hardening options
 # end of Security options
@@ -10538,6 +10542,7 @@ CONFIG_HAVE_ARCH_KGDB=y
 CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
 # CONFIG_UBSAN is not set
 CONFIG_HAVE_ARCH_KCSAN=y
+# CONFIG_KCSAN is not set
 # end of Generic Kernel Debugging Instruments
 
 #

^ permalink raw reply	[flat|nested] 144+ messages in thread

* Re: [PR PATCH] [Updated] gcc: update to 12.1.0
  2022-01-06  6:15 [PR PATCH] gcc: update to 11.2.1git20211128 Oreo639
                   ` (15 preceding siblings ...)
  2022-08-13  6:49 ` oreo639
@ 2022-08-15  2:24 ` oreo639
  2022-08-15  2:31 ` oreo639
                   ` (125 subsequent siblings)
  142 siblings, 0 replies; 144+ messages in thread
From: oreo639 @ 2022-08-15  2:24 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1717 bytes --]

There is an updated pull request by oreo639 against master on the void-packages repository

https://github.com/oreo639/void-packages gcc11
https://github.com/void-linux/void-packages/pull/34902

gcc: update to 12.1.0
<!-- Uncomment relevant sections and delete options which are not applicable -->
[ci skip]

Edit: this PR had been updated for gcc 12.1.0

This PR depends on: https://github.com/void-linux/void-packages/pull/32330

I tested this PR with glibc and after updating glibc, it seems to work fine.
I also tested this PR with x86_64-musl, and it appears to run fine in a musl chroot, and recompiling and installing musl with gcc 12 doesn't appear to result in any issues. (more testing is needed)

Please let me know if there are any issues.

I compiled base-system to ensure that compiles and it appears to work fine.

#### Testing the changes
- I tested the changes in this PR: **briefly**

<!--
#### New package
- This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please [skip CI](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration)
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->

#### Local build testing
- I built this PR locally for my native architecture, (x86_64-glibc)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - x86_64-musl

A patch file from https://github.com/void-linux/void-packages/pull/34902.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-gcc11-34902.patch --]
[-- Type: text/x-diff, Size: 57999 bytes --]

From bb6c79ed935b0a7513c85b5987c41aefcfaa0b00 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 01:14:21 -0700
Subject: [PATCH 1/7] binutils: update to 2.38.

---
 ...e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch | 60 -----------------
 .../patches/ppc64-revert-gnu-attributes.patch | 66 +++++--------------
 srcpkgs/binutils/template                     |  9 +--
 3 files changed, 22 insertions(+), 113 deletions(-)
 delete mode 100644 srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch

diff --git a/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch b/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch
deleted file mode 100644
index a55432d83cff..000000000000
--- a/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff Mon Sep 17 00:00:00 2001
-From: "H.J. Lu" <hjl.tools@gmail.com>
-Date: Mon, 16 Nov 2020 06:37:53 -0800
-Subject: [PATCH] elf: Set rel_from_abs to 1 for __ehdr_start
-
-bfdlink.h has
-
-  /* Symbol will be converted from absolute to section-relative.  Set for
-     symbols defined by a script from "dot" (also SEGMENT_START or ORIGIN)
-     outside of an output section statement.  */
-  unsigned int rel_from_abs : 1;
-
-linker.c has
-
-.{* Return TRUE if the symbol described by a linker hash entry H
-.   is going to be absolute.  Linker-script defined symbols can be
-.   converted from absolute to section-relative ones late in the
-.   link.  Use this macro to correctly determine whether the symbol
-.   will actually end up absolute in output.  *}
-.#define bfd_is_abs_symbol(H) \
-.  (((H)->type == bfd_link_hash_defined \
-.    || (H)->type == bfd_link_hash_defweak) \
-.   && bfd_is_abs_section ((H)->u.def.section) \
-.   && !(H)->rel_from_abs)
-.
-
-Set rel_from_abs to 1 for __ehdr_start which will be converted from
-absolute to section-relative in assign_file_positions_for_load_sections.
-
-	PR ld/26869
-	* ldelf.c (ldelf_before_allocation): Set rel_from_abs to 1 for
-	__ehdr_start.
-	* testsuite/ld-i386/i386.exp: Run pr26869.
-	* testsuite/ld-i386/pr26869.d: New file.
-	* testsuite/ld-i386/pr26869.s: Likewise.
-
-(cherry picked from commit cbd5b99cce073273f668b154d4514e8e7e7ccc51)
----
- ld/ChangeLog                   |  9 +++++++++
- ld/ldelf.c                     |  2 ++
- ld/testsuite/ld-i386/i386.exp  |  1 +
- ld/testsuite/ld-i386/pr26869.d | 14 ++++++++++++++
- ld/testsuite/ld-i386/pr26869.s |  3 +++
- 5 files changed, 29 insertions(+)
- create mode 100644 ld/testsuite/ld-i386/pr26869.d
- create mode 100644 ld/testsuite/ld-i386/pr26869.s
-
-diff --git a/ld/ldelf.c b/ld/ldelf.c
-index bada3ade2d7..831d032fe56 100644
---- a/ld/ldelf.c
-+++ b/ld/ldelf.c
-@@ -1589,6 +1589,8 @@ ldelf_before_allocation (char *audit, char *depaudit,
- 		      (char *) &ehdr_start->u + sizeof ehdr_start->u.def.next,
- 		      sizeof ehdr_start_save_u);
- 	      ehdr_start->type = bfd_link_hash_defined;
-+	      /* It will be converted to section-relative later.  */
-+	      ehdr_start->rel_from_abs = 1;
- 	      ehdr_start->u.def.section = bfd_abs_section_ptr;
- 	      ehdr_start->u.def.value = 0;
- 	    }
diff --git a/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch b/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
index 5de937f4fcce..1c208dd8955c 100644
--- a/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
+++ b/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
@@ -1,39 +1,24 @@
-From b1faf99f3e546df2cd302bb1ad36a2078224fe8b Mon Sep 17 00:00:00 2001
+From bbf05b742fde518fb97c789b043fe0d3aaf549f0 Mon Sep 17 00:00:00 2001
 From: Ariadne Conill <ariadne@dereferenced.org>
-Date: Fri, 30 Oct 2020 16:59:48 -0600
+Date: Tue, 21 Sep 2021 14:53:13 +0000
 Subject: [PATCH] Revert "PR25882, .gnu.attributes are not checked for shared
  libraries"
 
+This revert is needed to avoid wrongly tagging objects with the incompatible
+IBM long double ABI, which is not supported by musl and will result in
+linking errors if used.
+
 This reverts commit a8acd6eeb6dc2cc5460ece90f90ebe36b56b20ba.
 ---
- bfd/ChangeLog     | 6 ------
- bfd/elf32-tic6x.c | 3 ---
- ld/ChangeLog      | 6 ------
- ld/ldlang.c       | 9 ++++-----
- 4 files changed, 4 insertions(+), 20 deletions(-)
+ bfd/elf32-tic6x.c |  3 ---
+ ld/ldlang.c       | 10 ++++------
+ 2 files changed, 4 insertions(+), 9 deletions(-)
 
-diff --git a/bfd/ChangeLog b/bfd/ChangeLog
-index 9fac12538a..b5461494e8 100644
---- a/bfd/ChangeLog
-+++ b/bfd/ChangeLog
-@@ -1422,12 +1422,6 @@
- 	accessing root.u.def of symbols.  Also check root.u.def.section
- 	is non-NULL.  Reverse tests so as to make the logic positive.
- 
--2020-05-01  Alan Modra  <amodra@gmail.com>
--
--	PR 25882
--	* elf32-tic6x.c (elf32_tic6x_merge_attributes): Don't transfer
--	Tag_ABI_PIC or Tag_ABI_PID from dynamic objects to the output.
--
- 2020-05-01  Alan Modra  <amodra@gmail.com>
- 
- 	PR 25882
 diff --git a/bfd/elf32-tic6x.c b/bfd/elf32-tic6x.c
-index b8b916bfd3..91bb6a10b1 100644
+index 5754f3cb860..3ad1d612749 100644
 --- a/bfd/elf32-tic6x.c
 +++ b/bfd/elf32-tic6x.c
-@@ -3748,9 +3748,6 @@ elf32_tic6x_merge_attributes (bfd *ibfd, struct bfd_link_info *info)
+@@ -3735,9 +3735,6 @@ elf32_tic6x_merge_attributes (bfd *ibfd, struct bfd_link_info *info)
  
  	case Tag_ABI_PIC:
  	case Tag_ABI_PID:
@@ -43,36 +28,20 @@ index b8b916bfd3..91bb6a10b1 100644
  	  if (out_attr[i].i > in_attr[i].i)
  	    out_attr[i].i = in_attr[i].i;
  	  break;
-diff --git a/ld/ChangeLog b/ld/ChangeLog
-index 4eec7d2977..b93452f70c 100644
---- a/ld/ChangeLog
-+++ b/ld/ChangeLog
-@@ -1319,12 +1319,6 @@
- 	* testsuite/ld-aarch64/farcall-group.d: New test driver.
- 	* testsuite/ld-aarch64/aarch64-elf.exp: Run the new test.
- 
--2020-05-01  Alan Modra  <amodra@gmail.com>
--
--	PR 25882
--	* ldlang.c (lang_check): Call bfd_merge_private_bfd_data for
--	shared libraries.
--
- 2020-05-01  Alan Modra  <amodra@gmail.com>
- 
- 	* po/BLD-POTFILES.in: Regenerate.
 diff --git a/ld/ldlang.c b/ld/ldlang.c
-index 9977195074..173d8ec349 100644
+index 37b64c89ee1..f13beaef9d9 100644
 --- a/ld/ldlang.c
 +++ b/ld/ldlang.c
-@@ -6972,12 +6972,11 @@ lang_check (void)
+@@ -7071,13 +7071,11 @@ lang_check (void)
  		   bfd_printable_name (input_bfd), input_bfd,
  		   bfd_printable_name (link_info.output_bfd));
  	}
 -
 -      /* If the input bfd has no contents, it shouldn't set the
 -	 private data of the output bfd.  */
--      else if ((input_bfd->flags & DYNAMIC) != 0
--	       || bfd_count_sections (input_bfd) != 0)
+-      else if (!file->flags.just_syms
+-	       && ((input_bfd->flags & DYNAMIC) != 0
+-		   || bfd_count_sections (input_bfd) != 0))
 +      else if (bfd_count_sections (input_bfd))
  	{
 +	  /* If the input bfd has no contents, it shouldn't set the
@@ -82,5 +51,4 @@ index 9977195074..173d8ec349 100644
  
  	  /* If we aren't supposed to warn about mismatched input
 -- 
-2.29.2
-
+2.33.0
diff --git a/srcpkgs/binutils/template b/srcpkgs/binutils/template
index 6270f8618c87..b2b1c47d22fc 100644
--- a/srcpkgs/binutils/template
+++ b/srcpkgs/binutils/template
@@ -1,19 +1,20 @@
 # Template file for 'binutils'
 pkgname=binutils
-version=2.35.1
-revision=4
+version=2.38
+revision=1
 bootstrap=yes
+hostmakedepends="pkg-config"
 makedepends="zlib-devel"
 short_desc="GNU binary utilities"
 maintainer="Enno Boland <gottox@voidlinux.org>"
 license="GPL-3.0-or-later"
 homepage="http://www.gnu.org/software/binutils/"
 distfiles="${GNU_SITE}/$pkgname/$pkgname-$version.tar.xz"
-checksum=3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
+checksum=e316477a914f567eccc34d5d29785b8b0f5a10208d36bbacedcc39048ecfe024
 
 subpackages="binutils-doc"
 if [ "$CHROOT_READY" ]; then
-	hostmakedepends="flex perl texinfo"
+	hostmakedepends+=" flex perl texinfo"
 	makedepends+=" elfutils-devel"
 	checkdepends="bc"
 	depends="binutils-doc"

From 81dea5b96efffd0287e26041a2141acc32a3ff21 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 06:26:59 -0700
Subject: [PATCH 2/7] gcc: update to 12.1.0.

---
 common/shlibs                                 |  10 +-
 srcpkgs/gcc/files/gccgo-musl.patch            |  74 +++--------
 srcpkgs/gcc/files/libgnarl-musl.patch         |  18 +--
 srcpkgs/gcc/files/libssp-musl.patch           |  10 +-
 ...c21f3f5726823e19728fdd1571a14aae0fb3.patch | 105 ++++++++++++++++
 ...08065bdd36fb1a9b6aad9666b1edb5e06474.patch | 115 ++++++++++++++++++
 ...65517a59565758107c5b1a51a5fa382f8d1a.patch |  32 +++++
 srcpkgs/gcc/patches/libffi_gnulinux.patch     |  11 --
 .../gcc/patches/libgcc-ibm128-no-tag.patch    |  10 +-
 srcpkgs/gcc/patches/mips-sgidefs_h.patch      |   3 +-
 srcpkgs/gcc/template                          |  25 ++--
 11 files changed, 305 insertions(+), 108 deletions(-)
 create mode 100644 srcpkgs/gcc/patches/3b21c21f3f5726823e19728fdd1571a14aae0fb3.patch
 create mode 100644 srcpkgs/gcc/patches/49d508065bdd36fb1a9b6aad9666b1edb5e06474.patch
 create mode 100644 srcpkgs/gcc/patches/f35d65517a59565758107c5b1a51a5fa382f8d1a.patch
 delete mode 100644 srcpkgs/gcc/patches/libffi_gnulinux.patch

diff --git a/common/shlibs b/common/shlibs
index 61924610cc52..c6400b566966 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -60,7 +60,7 @@ libcc1plugin.so.0 gcc-6.2.1_1
 libitm.so.1 libitm-4.7.3_1
 liblto_plugin.so.0 gcc-4.7.3_1
 libgcc_s.so.1 libgcc-4.4.0_1
-libgo.so.16 libgo-10.2.0_1
+libgo.so.21 libgo-12.1.0_1
 libgccjit.so.0 libgccjit-10.2.1pre1_1
 libperl.so.5.34 perl-5.34.0_1
 libgmp.so.10 gmp-5.0.1_1
@@ -849,8 +849,8 @@ libgdkmm-2.4.so.1 gtkmm2-2.24.0_1
 libgtkmm-2.4.so.1 gtkmm2-2.24.0_1
 libquadmath.so.0 libquadmath-4.4.0_1
 libgfortran.so.5 libgfortran-8.2.0_1
-libgnarl-10.so libada-10.2.0_1
-libgnat-10.so libada-10.2.0_1
+libgnarl-12.so libada-12.1.0_1
+libgnat-12.so libada-12.1.0_1
 libwebp.so.7 libwebp-0.6.0_1
 libwebpmux.so.3 libwebp-0.6.0_1
 libwebpdemux.so.2 libwebp-0.5.0_1
@@ -1701,8 +1701,8 @@ libextractor.so.3 libextractor-1.1_1
 libextractor_common.so.1 libextractor-1.1_1
 libpano13.so.3 libpano13-2.9.19_1
 libubsan.so.1 libsanitizer-8.2.0_1
-libtsan.so.0 libsanitizer-6.3.0_1
-libasan.so.6 libsanitizer-10.2.0_1
+libtsan.so.2 libsanitizer-12.1.0_1
+libasan.so.8 libsanitizer-12.1.0_1
 liblsan.so.0 libsanitizer-6.3.0_1
 libvtv.so.0 libvtv-6.3.0_1
 libatomic.so.1 libatomic-4.9.0_1
diff --git a/srcpkgs/gcc/files/gccgo-musl.patch b/srcpkgs/gcc/files/gccgo-musl.patch
index 9762739615af..632ef951097b 100644
--- a/srcpkgs/gcc/files/gccgo-musl.patch
+++ b/srcpkgs/gcc/files/gccgo-musl.patch
@@ -53,17 +53,6 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
  	p := sysMmap(addr, n, prot, flags, fd, off)
  	if uintptr(p) == _MAP_FAILED {
  		return nil, errno()
---- a/libgo/go/runtime/signal_gccgo.go
-+++ b/libgo/go/runtime/signal_gccgo.go
-@@ -111,7 +111,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")
 --- a/libgo/go/syscall/errstr.go
 +++ b/libgo/go/syscall/errstr.go
 @@ -5,7 +5,6 @@
@@ -140,55 +129,6 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
  		plwoff = &lwoff
  	}
  	n, err = splice(rfd, plroff, wfd, plwoff, len, flags)
---- 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
---- a/libgo/runtime/go-signal.c	2020-07-23 08:35:19.004402840 +0200
-+++ b/libgo/runtime/go-signal.c	2020-08-09 21:35:54.352886232 +0200
-@@ -224,7 +224,11 @@
- #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;
-+	#ifdef __PPC64__
-+		ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.gp_regs[32];
-+	#else
-+		ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.gregs[32];
-+	#endif
- #elif defined(__PPC__) && defined(_AIX)
- 	ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.jmp_context.iar;
- #elif defined(__aarch64__) && defined(__linux__)
-@@ -333,7 +337,7 @@
- 		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(__linux__) && defined(__GLIBC__)
- 	  {
- 		mcontext_t *m = &((ucontext_t*)(context))->uc_mcontext;
- 		int i;
 --- a/libgo/runtime/runtime.h
 +++ b/libgo/runtime/runtime.h
 @@ -500,10 +500,13 @@ int __go_setcontext(__go_context_t*);
@@ -220,3 +160,17 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
  #if defined(HAVE_SYS_UTSNAME_H)
  #include <sys/utsname.h>
  #endif
+--- a/libgo/go/runtime/os_linux.go
++++ a/libgo/go/runtime/os_linux.go
+@@ -363,9 +363,9 @@
+ 
+ 	var timerid int32
+ 	var sevp _sigevent
+-	sevp.sigev_notify = _SIGEV_THREAD_ID
++	sevp.sigev_notify = 4
+ 	sevp.sigev_signo = _SIGPROF
+-	*((*int32)(unsafe.Pointer(&sevp._sigev_un))) = int32(mp.procid)
++	*((*int32)(unsafe.Pointer(&sevp.sigev_notify_function))) = int32(mp.procid)
+ 	ret := timer_create(_CLOCK_THREAD_CPUTIME_ID, &sevp, &timerid)
+ 	if ret != 0 {
+ 		// If we cannot create a timer for this M, leave profileTimerValid false
diff --git a/srcpkgs/gcc/files/libgnarl-musl.patch b/srcpkgs/gcc/files/libgnarl-musl.patch
index 99a734c42c90..91c95949e0e9 100644
--- a/srcpkgs/gcc/files/libgnarl-musl.patch
+++ b/srcpkgs/gcc/files/libgnarl-musl.patch
@@ -5,7 +5,7 @@ Reason: Patch libgnarl to not use function missing from musl.
 diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/libgnarl/s-osinte__linux.ads
 --- a/gcc/ada/libgnarl/s-osinte__linux.ads	2018-01-11 00:55:25.000000000 -0800
 +++ b/gcc/ada/libgnarl/s-osinte__linux.ads	2018-11-01 16:16:23.372452951 -0700
-@@ -394,12 +394,6 @@ package System.OS_Interface is
+@@ -403,12 +403,6 @@ package System.OS_Interface is
     PTHREAD_RWLOCK_PREFER_WRITER_NP              : constant := 1;
     PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP : constant := 2;
  
@@ -18,7 +18,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/l
     function pthread_rwlock_init
       (mutex : access pthread_rwlock_t;
        attr  : access pthread_rwlockattr_t) return int;
-@@ -464,11 +458,6 @@ package System.OS_Interface is
+@@ -470,11 +464,6 @@ package System.OS_Interface is
        protocol : int) return int;
     pragma Import (C, pthread_mutexattr_setprotocol);
  
@@ -33,7 +33,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/l
 diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/libgnarl/s-taprop__linux.adb
 --- a/gcc/ada/libgnarl/s-taprop__linux.adb	2018-01-11 00:55:25.000000000 -0800
 +++ b/gcc/ada/libgnarl/s-taprop__linux.adb	2018-11-13 11:28:36.433964449 -0800
-@@ -202,9 +202,6 @@ package body System.Task_Primitives.Oper
+@@ -198,9 +198,6 @@ package body System.Task_Primitives.Oper
     pragma Import
       (C, GNAT_pthread_condattr_setup, "__gnat_pthread_condattr_setup");
  
@@ -43,7 +43,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
     --  We do not have pragma Linker_Options ("-lcap"); here, because this
     --  library is not present on many Linux systems. 'libcap' is the Linux
     --  "capabilities" library, called by __gnat_has_cap_sys_nice.
-@@ -214,38 +211,6 @@ package body System.Task_Primitives.Oper
+@@ -210,38 +207,6 @@ package body System.Task_Primitives.Oper
     --  Convert Ada priority to Linux priority. Priorities are 1 .. 99 on
     --  GNU/Linux, so we map 0 .. 98 to 1 .. 99.
  
@@ -76,13 +76,13 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
 -      return Ceiling_Support;
 -   end Get_Ceiling_Support;
 -
--   pragma Warnings (Off, "non-static call not allowed in preelaborated unit");
+-   pragma Warnings (Off, "non-preelaborable call not allowed*");
 -   Ceiling_Support : constant Boolean := Get_Ceiling_Support;
--   pragma Warnings (On, "non-static call not allowed in preelaborated unit");
+-   pragma Warnings (On, "non-preelaborable call not allowed*");
     --  True if the locking policy is Ceiling_Locking, and the current process
     --  has permission to use this policy. The process has permission if it is
     --  running as 'root', or if the capability was set by the setcap command,
-@@ -348,7 +313,9 @@ package body System.Task_Primitives.Oper
+@@ -344,7 +309,9 @@ package body System.Task_Primitives.Oper
     -- Init_Mutex --
     ----------------
  
@@ -92,7 +92,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
        Mutex_Attr : aliased pthread_mutexattr_t;
        Result, Result_2 : C.int;
  
-@@ -360,16 +327,7 @@ package body System.Task_Primitives.Oper
+@@ -356,16 +323,7 @@ package body System.Task_Primitives.Oper
           return Result;
        end if;
  
@@ -110,7 +110,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
           Result := pthread_mutexattr_setprotocol
             (Mutex_Attr'Access, PTHREAD_PRIO_INHERIT);
           pragma Assert (Result = 0);
-@@ -409,11 +367,6 @@ package body System.Task_Primitives.Oper
+@@ -405,11 +363,6 @@ package body System.Task_Primitives.Oper
              Result := pthread_rwlockattr_init (RWlock_Attr'Access);
              pragma Assert (Result = 0);
  
diff --git a/srcpkgs/gcc/files/libssp-musl.patch b/srcpkgs/gcc/files/libssp-musl.patch
index b21a2c29e57c..99f248401a1c 100644
--- a/srcpkgs/gcc/files/libssp-musl.patch
+++ b/srcpkgs/gcc/files/libssp-musl.patch
@@ -2,9 +2,9 @@ First part taken from Alpine.
 
 Second part added to prevent gccgo from thinking it can -fsplit-stack on musl.
 
---- a/gcc/gcc.c
-+++ b/gcc/gcc.c
-@@ -874,10 +874,15 @@ proper position among the other output files.  */
+--- a/gcc/gcc.cc
++++ b/gcc/gcc.cc
+@@ -984,10 +984,15 @@ proper position among the other output f
  #define LINK_GCC_C_SEQUENCE_SPEC "%G %{!nolibc:%L %G}"
  #endif
  
@@ -22,10 +22,10 @@ Second part added to prevent gccgo from thinking it can -fsplit-stack on musl.
  #else
  #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
  		       "|fstack-protector-strong|fstack-protector-explicit" \
-@@ -1155,7 +1160,7 @@ static const char *cc1_options =
+@@ -1280,7 +1285,7 @@ static const char *cc1_options =
   %{-version:--version}\
   %{-help=*:--help=%*}\
-  %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %b.s}}}\
+  %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %w%b.s}}}\
 - %{fsyntax-only:-o %j} %{-param*}\
 + %{fsyntax-only:-o %j} %{-param*} " NO_SSP_SPEC "\
   %{coverage:-fprofile-arcs -ftest-coverage}\
diff --git a/srcpkgs/gcc/patches/3b21c21f3f5726823e19728fdd1571a14aae0fb3.patch b/srcpkgs/gcc/patches/3b21c21f3f5726823e19728fdd1571a14aae0fb3.patch
new file mode 100644
index 000000000000..00929202a503
--- /dev/null
+++ b/srcpkgs/gcc/patches/3b21c21f3f5726823e19728fdd1571a14aae0fb3.patch
@@ -0,0 +1,105 @@
+From 3b21c21f3f5726823e19728fdd1571a14aae0fb3 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <siarheit@google.com>
+Date: Mon, 27 Jun 2022 13:27:24 +0100
+Subject: [PATCH] c++: avoid <memory> poisoning on musl [PR106102]
+
+On musl <pthread.h> uses calloc() (via <sched.h>). <memory> includes
+it indirectly and exposes use of poisoned calloc() when module code
+is built:
+
+    /build/build/./prev-gcc/xg++ ... ../../gcc-13-20220626/gcc/cp/mapper-resolver.cc
+        In file included from /<<NIX>>/musl-1.2.3-dev/include/pthread.h:30,
+                 from /build/build/prev-x86_64-unknown-linux-musl/libstdc++-v3/include/x86_64-unknown-linux-musl/bits/gthr-default.h:35,
+                 ....
+                 from /build/build/prev-x86_64-unknown-linux-musl/libstdc++-v3/include/memory:77,
+                 from ../../gcc-13-20220626/gcc/../libcody/cody.hh:24,
+                 from ../../gcc-13-20220626/gcc/cp/../../c++tools/resolver.h:25,
+                 from ../../gcc-13-20220626/gcc/cp/../../c++tools/resolver.cc:23,
+                 from ../../gcc-13-20220626/gcc/cp/mapper-resolver.cc:32:
+    /<<NIX>>/musl-1.2.3-dev/include/sched.h:84:7: error: attempt to use poisoned "calloc"
+       84 | void *calloc(size_t, size_t);
+          |       ^
+    /<<NIX>>/musl-1.2.3-dev/include/sched.h:124:36: error: attempt to use poisoned "calloc"
+      124 | #define CPU_ALLOC(n) ((cpu_set_t *)calloc(1,CPU_ALLOC_SIZE(n)))
+          |                                    ^
+
+gcc/cp/
+
+	PR c++/106102
+	* mapper-client.cc: Include <memory> via "system.h".
+	* mapper-resolver.cc: Ditto.
+	* module.cc: Ditto.
+
+libcc1/
+
+	PR c++/106102
+	* libcc1plugin.cc: Include <memory> via "system.h".
+	* libcp1plugin.cc: Ditto.
+---
+ gcc/cp/mapper-client.cc   | 1 +
+ gcc/cp/mapper-resolver.cc | 1 +
+ gcc/cp/module.cc          | 1 +
+ libcc1/libcc1plugin.cc    | 1 +
+ libcc1/libcp1plugin.cc    | 1 +
+ 5 files changed, 5 insertions(+)
+
+diff --git a/gcc/cp/mapper-client.cc b/gcc/cp/mapper-client.cc
+index 8603a886a099..fe9544b5ba43 100644
+--- a/gcc/cp/mapper-client.cc
++++ b/gcc/cp/mapper-client.cc
+@@ -27,6 +27,7 @@ along with GCC; see the file COPYING3.  If not see
+ #define INCLUDE_STRING
+ #define INCLUDE_VECTOR
+ #define INCLUDE_MAP
++#define INCLUDE_MEMORY
+ #include "system.h"
+ 
+ #include "line-map.h"
+diff --git a/gcc/cp/mapper-resolver.cc b/gcc/cp/mapper-resolver.cc
+index e3d29fb5ada1..e70d1b4ae2ca 100644
+--- a/gcc/cp/mapper-resolver.cc
++++ b/gcc/cp/mapper-resolver.cc
+@@ -25,6 +25,7 @@ along with GCC; see the file COPYING3.  If not see
+ #define INCLUDE_VECTOR
+ #define INCLUDE_ALGORITHM
+ #define INCLUDE_MAP
++#define INCLUDE_MEMORY
+ #include "system.h"
+ 
+ // We don't want or need to be aware of networking
+diff --git a/gcc/cp/module.cc b/gcc/cp/module.cc
+index 753963a4b246..8bb22c2b305a 100644
+--- a/gcc/cp/module.cc
++++ b/gcc/cp/module.cc
+@@ -206,6 +206,7 @@ Classes used:
+ 
+ #define _DEFAULT_SOURCE 1 /* To get TZ field of struct tm, if available.  */
+ #include "config.h"
++#define INCLUDE_MEMORY
+ #define INCLUDE_STRING
+ #define INCLUDE_VECTOR
+ #include "system.h"
+diff --git a/libcc1/libcc1plugin.cc b/libcc1/libcc1plugin.cc
+index 12ab5a57c8dd..bdd0bdabe77f 100644
+--- a/libcc1/libcc1plugin.cc
++++ b/libcc1/libcc1plugin.cc
+@@ -31,6 +31,7 @@
+ #undef PACKAGE_TARNAME
+ #undef PACKAGE_VERSION
+ 
++#define INCLUDE_MEMORY
+ #include "gcc-plugin.h"
+ #include "system.h"
+ #include "coretypes.h"
+diff --git a/libcc1/libcp1plugin.cc b/libcc1/libcp1plugin.cc
+index 83dab7f58b11..e2d5039a0a1f 100644
+--- a/libcc1/libcp1plugin.cc
++++ b/libcc1/libcp1plugin.cc
+@@ -32,6 +32,7 @@
+ #undef PACKAGE_TARNAME
+ #undef PACKAGE_VERSION
+ 
++#define INCLUDE_MEMORY
+ #include "gcc-plugin.h"
+ #include "system.h"
+ #include "coretypes.h"
diff --git a/srcpkgs/gcc/patches/49d508065bdd36fb1a9b6aad9666b1edb5e06474.patch b/srcpkgs/gcc/patches/49d508065bdd36fb1a9b6aad9666b1edb5e06474.patch
new file mode 100644
index 000000000000..89bd053d6d04
--- /dev/null
+++ b/srcpkgs/gcc/patches/49d508065bdd36fb1a9b6aad9666b1edb5e06474.patch
@@ -0,0 +1,115 @@
+From 49d508065bdd36fb1a9b6aad9666b1edb5e06474 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <siarheit@google.com>
+Date: Mon, 27 Jun 2022 23:42:44 +0100
+Subject: [PATCH] jit: avoid calloc() poisoning on musl [PR106102]
+
+On musl <pthread.h> uses calloc() (via <sched.h>). jit/ includes
+it directly and exposes use of poisoned calloc():
+
+    /build/build/./prev-gcc/xg++ ... ../../gcc-13-20220626/gcc/jit/jit-playback.cc
+    make[3]: *** [Makefile:1143: jit/libgccjit.o] Error 1
+    make[3]: *** Waiting for unfinished jobs....
+    In file included from /<<NIX>>/musl-1.2.3-dev/include/pthread.h:30,
+                     from ../../gcc-13-20220626/gcc/jit/jit-playback.cc:44:
+    /<<NIX>>/musl-1.2.3-dev/include/sched.h:84:7: error: attempt to use poisoned "calloc"
+       84 | void *calloc(size_t, size_t);
+          |       ^
+    /<<NIX>>/musl-1.2.3-dev/include/sched.h:124:36: error: attempt to use poisoned "calloc"
+      124 | #define CPU_ALLOC(n) ((cpu_set_t *)calloc(1,CPU_ALLOC_SIZE(n)))
+          |                                    ^
+
+The change moves <pthread.h> inclusion to "system.h" under new
+INCLUDE_PTHREAD_H guard and uses this mechanism in libgccjit.
+
+gcc/
+
+	PR c++/106102
+	* system.h: Introduce INCLUDE_PTHREAD_H macros to include <pthread.h>.
+
+gcc/jit/
+
+	PR c++/106102
+	* jit-playback.cc: Include <pthread.h> via "system.h" to avoid calloc()
+	poisoning.
+	* jit-recording.cc: Ditto.
+	* libgccjit.cc: Ditto.
+---
+ gcc/jit/jit-playback.cc  | 3 +--
+ gcc/jit/jit-recording.cc | 2 +-
+ gcc/jit/libgccjit.cc     | 2 +-
+ gcc/system.h             | 4 ++++
+ 4 files changed, 7 insertions(+), 4 deletions(-)
+
+diff --git a/gcc/jit/jit-playback.cc b/gcc/jit/jit-playback.cc
+index 6be6bdf8dea5..79714132b91a 100644
+--- a/gcc/jit/jit-playback.cc
++++ b/gcc/jit/jit-playback.cc
+@@ -19,6 +19,7 @@ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
++#define INCLUDE_PTHREAD_H
+ #include "system.h"
+ #include "coretypes.h"
+ #include "target.h"
+@@ -41,8 +42,6 @@ along with GCC; see the file COPYING3.  If not see
+ #include "diagnostic.h"
+ #include "stmt.h"
+ 
+-#include <pthread.h>
+-
+ #include "jit-playback.h"
+ #include "jit-result.h"
+ #include "jit-builtins.h"
+diff --git a/gcc/jit/jit-recording.cc b/gcc/jit/jit-recording.cc
+index 697dee66e733..f78daed2d71a 100644
+--- a/gcc/jit/jit-recording.cc
++++ b/gcc/jit/jit-recording.cc
+@@ -19,13 +19,13 @@ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
++#define INCLUDE_PTHREAD_H
+ #include "system.h"
+ #include "coretypes.h"
+ #include "tm.h"
+ #include "pretty-print.h"
+ #include "toplev.h"
+ 
+-#include <pthread.h>
+ 
+ #include "jit-builtins.h"
+ #include "jit-recording.h"
+diff --git a/gcc/jit/libgccjit.cc b/gcc/jit/libgccjit.cc
+index 0e76097b4bac..ca862662777e 100644
+--- a/gcc/jit/libgccjit.cc
++++ b/gcc/jit/libgccjit.cc
+@@ -19,12 +19,12 @@ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
++#define INCLUDE_PTHREAD_H
+ #include "system.h"
+ #include "coretypes.h"
+ #include "timevar.h"
+ #include "typed-splay-tree.h"
+ #include "cppbuiltin.h"
+-#include <pthread.h>
+ 
+ #include "libgccjit.h"
+ #include "jit-recording.h"
+diff --git a/gcc/system.h b/gcc/system.h
+index 67158b70c789..f8d42ff68150 100644
+--- a/gcc/system.h
++++ b/gcc/system.h
+@@ -753,6 +753,10 @@ extern int vsnprintf (char *, size_t, const char *, va_list);
+ #endif
+ #endif
+ 
++#ifdef INCLUDE_PTHREAD_H
++#include <pthread.h>
++#endif
++
+ #ifdef INCLUDE_ISL
+ #ifdef HAVE_isl
+ #include <isl/options.h>
diff --git a/srcpkgs/gcc/patches/f35d65517a59565758107c5b1a51a5fa382f8d1a.patch b/srcpkgs/gcc/patches/f35d65517a59565758107c5b1a51a5fa382f8d1a.patch
new file mode 100644
index 000000000000..044a4fc29514
--- /dev/null
+++ b/srcpkgs/gcc/patches/f35d65517a59565758107c5b1a51a5fa382f8d1a.patch
@@ -0,0 +1,32 @@
+From f35d65517a59565758107c5b1a51a5fa382f8d1a Mon Sep 17 00:00:00 2001
+From: Ian Lance Taylor <iant@golang.org>
+Date: Tue, 12 Jul 2022 19:42:43 -0700
+Subject: [PATCH] libgo: don't include <linux/fs.h> when building
+ gen-sysinfo.go
+
+Removing this doesn't change anything at least with glibc 2.33.
+The include was added in https://go.dev/cl/6100049 but it's not
+clear why.
+
+Fixes PR go/106266
+
+Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/417294
+---
+ gcc/go/gofrontend/MERGE | 2 +-
+ libgo/sysinfo.c         | 3 ---
+ 2 files changed, 1 insertion(+), 4 deletions(-)
+
+diff --git a/libgo/sysinfo.c b/libgo/sysinfo.c
+index a4259c02ded4..fc0210992faa 100644
+--- a/libgo/sysinfo.c
++++ b/libgo/sysinfo.c
+@@ -158,9 +158,6 @@
+ #if defined(HAVE_LINUX_ETHER_H)
+ #include <linux/ether.h>
+ #endif
+-#if defined(HAVE_LINUX_FS_H)
+-#include <linux/fs.h>
+-#endif
+ #if defined(HAVE_LINUX_REBOOT_H)
+ #include <linux/reboot.h>
+ #endif
diff --git a/srcpkgs/gcc/patches/libffi_gnulinux.patch b/srcpkgs/gcc/patches/libffi_gnulinux.patch
deleted file mode 100644
index 98245bd5be1a..000000000000
--- a/srcpkgs/gcc/patches/libffi_gnulinux.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/libffi/src/closures.c
-+++ b/libffi/src/closures.c
-@@ -34,7 +34,7 @@
- #include <ffi_common.h>
-
- #if !FFI_MMAP_EXEC_WRIT && !FFI_EXEC_TRAMPOLINE_TABLE
--# if __gnu_linux__ && !defined(__ANDROID__)
-+# if __linux__ && !defined(__ANDROID__)
- /* This macro indicates it may be forbidden to map anonymous memory
-    with both write and execute permission.  Code compiled when this
-    option is defined will attempt to map such pages once, but if it
diff --git a/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch b/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
index bdf5c75d917d..26d80356ad0d 100644
--- a/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
+++ b/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
@@ -29,10 +29,14 @@ diff --git a/libgcc/config/rs6000/t-linux b/libgcc/config/rs6000/t-linux
 index 4f6d4c4..fa93bb6 100644
 --- a/libgcc/config/rs6000/t-linux
 +++ b/libgcc/config/rs6000/t-linux
-@@ -1,3 +1,3 @@
+@@ -1,6 +1,6 @@
  SHLIB_MAPFILES += $(srcdir)/config/rs6000/libgcc-glibc.ver
  
--HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-minimal-toc
-+HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-gnu-attribute -mno-minimal-toc
+-HOST_LIBGCC2_CFLAGS += -mlong-double-128
++HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-gnu-attribute
+ 
+ # This is a way of selecting -mcmodel=small for ppc64, which gives
+ # smaller and faster libgcc code.  Directly specifying -mcmodel=small
+
 -- 
 2.24.0
diff --git a/srcpkgs/gcc/patches/mips-sgidefs_h.patch b/srcpkgs/gcc/patches/mips-sgidefs_h.patch
index dddfe10e8c06..78a2ce35875d 100644
--- a/srcpkgs/gcc/patches/mips-sgidefs_h.patch
+++ b/srcpkgs/gcc/patches/mips-sgidefs_h.patch
@@ -3,9 +3,10 @@
 @@ -42,7 +42,7 @@
  #define _MIPS_SIM_NABI32	2
  #define _MIPS_SIM_ABI64		3
- #elif !defined(__OpenBSD__)
+ #elif !defined(__OpenBSD__) && !defined(__FreeBSD__)
 -# include <sgidefs.h>
 +# include <asm/sgidefs.h>
  #endif
  
  #  ifndef _ABIN32
+
diff --git a/srcpkgs/gcc/template b/srcpkgs/gcc/template
index 09727ef34fb2..32ee79e32f0d 100644
--- a/srcpkgs/gcc/template
+++ b/srcpkgs/gcc/template
@@ -3,18 +3,15 @@
 # which use the version number.
 
 pkgname=gcc
-# we are using a 10-stable git snapshot alpine is using in order
-# to get regression fixes not yet incorporate into a stable release
-# it should be possible to switch back to stable with 10.3 or 11
-version=10.2.1pre1
-revision=3
+version=12.1.0
+revision=1
 _patchver="${version%pre*}"
 _minorver="${_patchver%.*}"
 _majorver="${_minorver%.*}"
-_gmp_version=6.2.0
+_gmp_version=6.2.1
 _mpfr_version=4.1.0
-_mpc_version=1.1.0
-_isl_version=0.21
+_mpc_version=1.2.1
+_isl_version=0.24
 wrksrc=gcc-${version/pre/_pre}
 short_desc="GNU Compiler Collection"
 maintainer="Enno Boland <gottox@voidlinux.org>"
@@ -22,16 +19,16 @@ homepage="http://gcc.gnu.org"
 license="GFDL-1.2-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
 # *-musl builders have issues fetching https://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz
 distfiles="
- https://dev.alpinelinux.org/~nenolod/gcc-${version/pre/_pre}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${version}/gcc-${version}.tar.xz
  https://gmplib.org/download/gmp/gmp-${_gmp_version}.tar.xz
  ${GNU_SITE}/mpfr/mpfr-${_mpfr_version}.tar.xz
  ${GNU_SITE}/mpc/mpc-${_mpc_version}.tar.gz
  ${SOURCEFORGE_SITE}/libisl/isl-${_isl_version}.tar.bz2"
-checksum="772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 258e6cd51b3fbdfc185c716d55f82c08aff57df0c6fbd143cf6ed561267a1526
+checksum="62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
+ fd4829912cddd12f84181c3451cc752be224643e87fac497b69edddadc49b4f2
  0c98a3f1732ff6ca4ea690552079da9c597872d30e96ec28414ee23c95558a7f
- 6985c538143c1208dcb1ac42cedad6ff52e267b47e5f970183a3e75125b43c2e
- d18ca11f8ad1a39ab6d03d3dcb3365ab416720fcb65b42d69f34f51bf0a0e859"
+ 17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459
+ fcf78dd9656c10eb8cf9fbd5f59a0b6b01386205fe1934b3b287a0a1898145c0"
 
 nopie=yes
 lib32disabled=yes
@@ -396,7 +393,7 @@ gcc-ada_package() {
 	depends="gcc>=${_minorver} libada-devel>=${_minorver}"
 	short_desc+=" - Ada compiler frontend"
 	pkg_install() {
-		for f in gnat{,bind,chop,clean,find,kr,link,ls,make,name,prep,xref}; do
+		for f in gnat{,bind,chop,clean,kr,link,ls,make,name,prep}; do
 			vmove usr/bin/${f}
 		done
 	}

From 2291feed5bcca91851d6b6ee3f55811a8748e1ce Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 06:27:47 -0700
Subject: [PATCH 3/7] libtool: update to 2.4.7.

---
 .../patches/0002-rename-with-sysroot.patch    | 34 +++++++++----------
 srcpkgs/libtool/template                      |  6 ++--
 2 files changed, 20 insertions(+), 20 deletions(-)

diff --git a/srcpkgs/libtool/patches/0002-rename-with-sysroot.patch b/srcpkgs/libtool/patches/0002-rename-with-sysroot.patch
index 960873c04e24..152aace96c41 100644
--- a/srcpkgs/libtool/patches/0002-rename-with-sysroot.patch
+++ b/srcpkgs/libtool/patches/0002-rename-with-sysroot.patch
@@ -13,16 +13,16 @@ Jürgen Buchmüller <pullmoll@t-online.de>
 
 --- a/configure	2015-02-15 17:14:34.000000000 +0100
 +++ b/configure	2015-10-20 13:25:12.684906339 +0200
-@@ -824,7 +824,7 @@
+@@ -832,7 +832,7 @@
  enable_fast_install
  with_aix_soname
  with_gnu_ld
 -with_sysroot
 +with_libtool_sysroot
  enable_libtool_lock
+ enable_cross_guesses
  '
-       ac_precious_vars='build_alias
-@@ -1487,7 +1487,8 @@
+@@ -1509,7 +1509,8 @@
                            shared library versioning (aka "SONAME") variant to
                            provide on AIX, [default=aix].
    --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
@@ -32,7 +32,7 @@ Jürgen Buchmüller <pullmoll@t-online.de>
                            compiler's sysroot if not specified).
  
  Some influential environment variables:
-@@ -7389,29 +7390,29 @@
+@@ -7610,29 +7611,29 @@
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
  $as_echo_n "checking for sysroot... " >&6; }
  
@@ -57,8 +57,8 @@ Jürgen Buchmüller <pullmoll@t-online.de>
     fi
     ;; #(
   /*)
--   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
-+   lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"`
+-   lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"`
++   lt_sysroot=`echo "$with_libtool_sysroot" | $SED -e "$sed_quote_subst"`
     ;; #(
   no|'')
     ;; #(
@@ -72,7 +72,7 @@ Jürgen Buchmüller <pullmoll@t-online.de>
  esac
 --- a/libltdl/configure	2015-02-15 17:15:15.000000000 +0100
 +++ b/libltdl/configure	2015-10-20 13:26:45.747914683 +0200
-@@ -775,7 +775,7 @@
+@@ -777,7 +777,7 @@
  with_aix_soname
  enable_dependency_tracking
  with_gnu_ld
@@ -81,7 +81,7 @@ Jürgen Buchmüller <pullmoll@t-online.de>
  enable_libtool_lock
  enable_ltdl_install
  '
-@@ -1429,7 +1429,8 @@
+@@ -1442,7 +1442,8 @@
                            shared library versioning (aka "SONAME") variant to
                            provide on AIX, [default=aix].
    --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
@@ -91,7 +91,7 @@ Jürgen Buchmüller <pullmoll@t-online.de>
                            compiler's sysroot if not specified).
  
  Some influential environment variables:
-@@ -6275,29 +6276,29 @@
+@@ -6397,29 +6398,29 @@
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
  $as_echo_n "checking for sysroot... " >&6; }
  
@@ -116,8 +116,8 @@ Jürgen Buchmüller <pullmoll@t-online.de>
     fi
     ;; #(
   /*)
--   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
-+   lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"`
+-   lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"`
++   lt_sysroot=`echo "$with_libtool_sysroot" | $SED -e "$sed_quote_subst"`
     ;; #(
   no|'')
     ;; #(
@@ -243,14 +243,14 @@ Jürgen Buchmüller <pullmoll@t-online.de>
  ]])
 --- a/m4/libtool.m4	2015-01-20 17:15:19.000000000 +0100
 +++ b/m4/libtool.m4	2015-10-20 15:40:04.020631813 +0200
-@@ -1245,29 +1245,29 @@
- # _LT_WITH_SYSROOT
+@@ -1243,29 +1243,29 @@
  # ----------------
  AC_DEFUN([_LT_WITH_SYSROOT],
--[AC_MSG_CHECKING([for sysroot])
+ [m4_require([_LT_DECL_SED])dnl
+-AC_MSG_CHECKING([for sysroot])
 -AC_ARG_WITH([sysroot],
 -[AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@],
-+[AC_MSG_CHECKING([for libtool-sysroot])
++AC_MSG_CHECKING([for libtool-sysroot])
 +AC_ARG_WITH([libtool-sysroot],
 +[AS_HELP_STRING([--with-libtool-sysroot@<:@=DIR@:>@],
    [Search for dependent libraries within DIR (or the compiler's sysroot
@@ -269,8 +269,8 @@ Jürgen Buchmüller <pullmoll@t-online.de>
     fi
     ;; #(
   /*)
--   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
-+   lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"`
+-   lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"`
++   lt_sysroot=`echo "$with_libtool_sysroot" | $SED -e "$sed_quote_subst"`
     ;; #(
   no|'')
     ;; #(
diff --git a/srcpkgs/libtool/template b/srcpkgs/libtool/template
index b9972df70341..08e35d466a44 100644
--- a/srcpkgs/libtool/template
+++ b/srcpkgs/libtool/template
@@ -1,7 +1,7 @@
 # Template file for 'libtool'
 pkgname=libtool
-version=2.4.6
-revision=6
+version=2.4.7
+revision=1
 build_style=gnu-configure
 hostmakedepends="texinfo perl automake help2man xz"
 depends="tar sed"
@@ -10,7 +10,7 @@ maintainer="Enno Boland <gottox@voidlinux.org>"
 license="GPL-2.0-or-later"
 homepage="http://www.gnu.org/software/libtool"
 distfiles="${GNU_SITE}/libtool/$pkgname-$version.tar.xz"
-checksum=7c87a8c2c8c0fc9cd5019e402bed4292462d00a718a7cd5f11218153bf28b26f
+checksum=4f7f217f057ce655ff22559ad221a0fd8ef84ad1fc5fcb6990cecc333aa1635d
 
 pre_configure() {
 	touch aclocal.m4 libltdl/aclocal.m4 Makefile.am libltdl/Makefile.am Makefile.in libltdl/Makefile.in

From f3bd650f31809e9deaa9bfd420e832f4af07e317 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 17:20:16 -0700
Subject: [PATCH 4/7] libiberty-devel: update to 20220713.

---
 srcpkgs/libiberty-devel/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/libiberty-devel/template b/srcpkgs/libiberty-devel/template
index 1a4e1ca3d594..b04268908c2e 100644
--- a/srcpkgs/libiberty-devel/template
+++ b/srcpkgs/libiberty-devel/template
@@ -1,6 +1,6 @@
 # Template file for 'libiberty-devel'
 pkgname=libiberty-devel
-version=20210106
+version=20220713
 revision=1
 wrksrc=libiberty-${version}
 build_wrksrc=libiberty
@@ -11,7 +11,7 @@ maintainer="q66 <daniel@octaforge.org>"
 license="GPL-3.0-or-later"
 homepage="http://gcc.gnu.org/"
 distfiles="http://deb.debian.org/debian/pool/main/libi/libiberty/libiberty_${version}.orig.tar.xz"
-checksum=9df153d69914c0f5a9145e0abbb248e72feebab6777c712a30f1c3b8c19047d4
+checksum=b59050f48c8a0f9c9e6fba5d17c7a4f11d1329de0c0dca7331b767a6d2bbe8d9
 conflicts="binutils-devel<=2.35.1_3"
 
 CFLAGS="-fPIC"

From 936c4b5891dd215aa99776642b6d97707e77c955 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 23:31:45 -0700
Subject: [PATCH 5/7] glibc: update to 2.36.

---
 common/shlibs                                 |  60 ++--
 .../glibc/patches/glibc-c-utf8-locale.patch   | 286 ------------------
 srcpkgs/glibc/template                        |  62 ++--
 3 files changed, 55 insertions(+), 353 deletions(-)
 delete mode 100644 srcpkgs/glibc/patches/glibc-c-utf8-locale.patch

diff --git a/common/shlibs b/common/shlibs
index c6400b566966..65f4d1b62b61 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -17,38 +17,38 @@
 # one (order top->bottom) is preferred over the next ones.
 #
 libc.so musl-1.1.24_7
-libc.so.6 glibc-2.32_1
-libm.so.6 glibc-2.32_1
-libpthread.so.0 glibc-2.32_1
-librt.so.1 glibc-2.32_1
-libdl.so.2 glibc-2.32_1
-ld-linux-x86-64.so.2 glibc-2.32_1 x86_64
-ld-linux.so.2 glibc-2.32_1 i686
-ld-linux.so.3 glibc-2.32_1 armv5tel
-ld-linux-aarch64.so.1 glibc-2.32_1 aarch64
-ld64.so.2 glibc-2.32_1 ppc64
-ld.so.1 glibc-2.32_1 mips
-ld.so.1 glibc-2.32_1 ppc
-ld-linux-armhf.so.3 glibc-2.32_1
-libresolv.so.2 glibc-2.32_1
-libanl.so.1 glibc-2.32_1
-libthread_db.so.1 glibc-2.32_1
-libutil.so.1 glibc-2.32_1
-libnsl.so.1 glibc-2.32_1
-libnss_db.so.2 glibc-2.32_1
-libnss_files.so.2 glibc-2.32_1
-libnss_compat.so.2 glibc-2.32_1
-libnss_dns.so.2 glibc-2.32_1
-libnss_hesiod.so.2 glibc-2.32_1
-libcrypt.so.1 glibc-2.32_1
-libBrokenLocale.so.1 glibc-2.32_1
+libc.so.6 glibc-2.36_1
+libm.so.6 glibc-2.36_1
+libpthread.so.0 glibc-2.36_1
+librt.so.1 glibc-2.36_1
+libdl.so.2 glibc-2.36_1
+ld-linux-x86-64.so.2 glibc-2.36_1 x86_64
+ld-linux.so.2 glibc-2.36_1 i686
+ld-linux.so.3 glibc-2.36_1 armv5tel
+ld-linux-aarch64.so.1 glibc-2.36_1 aarch64
+ld64.so.2 glibc-2.36_1 ppc64
+ld.so.1 glibc-2.36_1 mips
+ld.so.1 glibc-2.36_1 ppc
+ld-linux-armhf.so.3 glibc-2.36_1
+libresolv.so.2 glibc-2.36_1
+libanl.so.1 glibc-2.36_1
+libthread_db.so.1 glibc-2.36_1
+libutil.so.1 glibc-2.36_1
+libnsl.so.1 glibc-2.36_1
+libnss_db.so.2 glibc-2.36_1
+libnss_files.so.2 glibc-2.36_1
+libnss_compat.so.2 glibc-2.36_1
+libnss_dns.so.2 glibc-2.36_1
+libnss_hesiod.so.2 glibc-2.36_1
+libcrypt.so.1 glibc-2.36_1
+libBrokenLocale.so.1 glibc-2.36_1
 libSimGearCore.so.2020.3.13 simgear-2020.3.13_1
 libSimGearScene.so.2020.3.13 simgear-2020.3.13_1
-libmemusage.so glibc-2.32_1
-libSegFault.so glibc-2.32_1
-libpcprofile.so glibc-2.32_1
-libcidn.so.1 glibc-2.32_1
-libmvec.so.1 glibc-2.32_1
+libmemusage.so glibc-2.36_1
+libSegFault.so glibc-2.36_1
+libpcprofile.so glibc-2.36_1
+libcidn.so.1 glibc-2.36_1
+libmvec.so.1 glibc-2.36_1
 libcddgmp.so.0 cddlib-0.94m_1
 libcdd.so.0 cddlib-0.94m_1
 libz.so.1 zlib-1.2.3_1
diff --git a/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch b/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch
deleted file mode 100644
index 7215e1558b62..000000000000
--- a/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch
+++ /dev/null
@@ -1,286 +0,0 @@
-Short description: Add C.UTF-8 support.
-Author(s): Fedora glibc team <glibc@lists.fedoraproject.org>
-Origin: PATCH
-Upstream status: not-submitted
-
-This patch needs to upstream as part of Carlos O'Donell
-<carlos@redhat.com>'s work on enabling upstream C.UTF-8 support. This
-work is currently blocked on cleaning up the test results to prove that
-full code-point sorting is working as intended.
-
-Note that this patch does not provide full code-point sorting as
-expected.
-
-This patch needs to upstream as soon as possible since it would be nice
-to have this in F29 and fixed.
-
-From 2eda7b462b415105f5a05c1323372d4e39d46439 Mon Sep 17 00:00:00 2001
-From: Mike FABIAN <mfabian@redhat.com>
-Date: Mon, 10 Aug 2015 15:58:12 +0200
-Subject: [PATCH] Add a C.UTF-8 locale
-
----
- localedata/SUPPORTED |   1 +
- localedata/locales/C | 238 +++++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 239 insertions(+)
- create mode 100644 localedata/locales/C
-
-diff --git a/localedata/SUPPORTED b/localedata/SUPPORTED
-index 8ca023e..2a78391 100644
---- a/localedata/SUPPORTED
-+++ b/localedata/SUPPORTED
-@@ -1,6 +1,7 @@
- # This file names the currently supported and somewhat tested locales.
- # If you have any additions please file a glibc bug report.
- SUPPORTED-LOCALES=\
-+C.UTF-8/UTF-8 \
- aa_DJ.UTF-8/UTF-8 \
- aa_DJ/ISO-8859-1 \
- aa_ER/UTF-8 \
-diff --git a/localedata/locales/C b/localedata/locales/C
-new file mode 100644
-index 0000000..fdf460e
---- /dev/null
-+++ b/localedata/locales/C
-@@ -0,0 +1,238 @@
-+escape_char /
-+comment_char %
-+% Locale for C locale in UTF-8
-+
-+LC_IDENTIFICATION
-+title      "C locale"
-+source     ""
-+address    ""
-+contact    ""
-+email      "mfabian@redhat.com"
-+tel        ""
-+fax        ""
-+language   "C"
-+territory  ""
-+revision   "1.0"
-+date       "2015-08-10"
-+%
-+category  "i18n:2012";LC_IDENTIFICATION
-+category  "i18n:2012";LC_CTYPE
-+category  "i18n:2012";LC_COLLATE
-+category  "i18n:2012";LC_TIME
-+category  "i18n:2012";LC_NUMERIC
-+category  "i18n:2012";LC_MONETARY
-+category  "i18n:2012";LC_MESSAGES
-+category  "i18n:2012";LC_PAPER
-+category  "i18n:2012";LC_NAME
-+category  "i18n:2012";LC_ADDRESS
-+category  "i18n:2012";LC_TELEPHONE
-+category  "i18n:2012";LC_MEASUREMENT
-+END LC_IDENTIFICATION
-+
-+LC_CTYPE
-+copy "i18n"
-+
-+translit_start
-+include "translit_combining";""
-+translit_end
-+
-+END LC_CTYPE
-+
-+LC_COLLATE
-+order_start forward
-+<U0000>
-+..
-+<UFFFF>
-+<U10000>
-+..
-+<U1FFFF>
-+<U20000>
-+..
-+<U2FFFF>
-+<UE0000>
-+..
-+<UEFFFF>
-+<UF0000>
-+..
-+<UFFFFF>
-+<U100000>
-+..
-+<U10FFFF>
-+UNDEFINED
-+order_end
-+END LC_COLLATE
-+
-+LC_MONETARY
-+% This is the 14652 i18n fdcc-set definition for
-+% the LC_MONETARY category
-+% (except for the int_curr_symbol and currency_symbol, they are empty in
-+% the 14652 i18n fdcc-set definition and also empty in
-+% glibc/locale/C-monetary.c. But localedef complains in that case).
-+%
-+% Using "USD" for int_curr_symbol. But maybe "XXX" would be better?
-+% XXX is "No currency" (https://en.wikipedia.org/wiki/ISO_4217)
-+int_curr_symbol     "<U0055><U0053><U0044><U0020>"
-+% Using "$" for currency_symbol. But maybe <U00A4> would be better?
-+% U+00A4 is the "generic currency symbol"
-+% (https://en.wikipedia.org/wiki/Currency_sign_%28typography%29)
-+currency_symbol     "<U0024>"
-+mon_decimal_point   "<U002E>"
-+mon_thousands_sep   ""
-+mon_grouping        -1
-+positive_sign       ""
-+negative_sign       "<U002D>"
-+int_frac_digits     -1
-+frac_digits         -1
-+p_cs_precedes       -1
-+int_p_sep_by_space  -1
-+p_sep_by_space      -1
-+n_cs_precedes       -1
-+int_n_sep_by_space  -1
-+n_sep_by_space      -1
-+p_sign_posn         -1
-+n_sign_posn         -1
-+%
-+END LC_MONETARY
-+
-+LC_NUMERIC
-+% This is the POSIX Locale definition for
-+% the LC_NUMERIC category.
-+%
-+decimal_point   "<U002E>"
-+thousands_sep   ""
-+grouping        -1
-+END LC_NUMERIC
-+
-+LC_TIME
-+% This is the POSIX Locale definition for
-+% the LC_TIME category.
-+%
-+% Abbreviated weekday names (%a)
-+abday       "<U0053><U0075><U006E>";"<U004D><U006F><U006E>";/
-+            "<U0054><U0075><U0065>";"<U0057><U0065><U0064>";/
-+            "<U0054><U0068><U0075>";"<U0046><U0072><U0069>";/
-+            "<U0053><U0061><U0074>"
-+
-+% Full weekday names (%A)
-+day         "<U0053><U0075><U006E><U0064><U0061><U0079>";/
-+            "<U004D><U006F><U006E><U0064><U0061><U0079>";/
-+            "<U0054><U0075><U0065><U0073><U0064><U0061><U0079>";/
-+            "<U0057><U0065><U0064><U006E><U0065><U0073><U0064><U0061><U0079>";/
-+            "<U0054><U0068><U0075><U0072><U0073><U0064><U0061><U0079>";/
-+            "<U0046><U0072><U0069><U0064><U0061><U0079>";/
-+            "<U0053><U0061><U0074><U0075><U0072><U0064><U0061><U0079>"
-+
-+% Abbreviated month names (%b)
-+abmon       "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
-+            "<U004D><U0061><U0072>";"<U0041><U0070><U0072>";/
-+            "<U004D><U0061><U0079>";"<U004A><U0075><U006E>";/
-+            "<U004A><U0075><U006C>";"<U0041><U0075><U0067>";/
-+            "<U0053><U0065><U0070>";"<U004F><U0063><U0074>";/
-+            "<U004E><U006F><U0076>";"<U0044><U0065><U0063>"
-+
-+% Full month names (%B)
-+mon         "<U004A><U0061><U006E><U0075><U0061><U0072><U0079>";/
-+            "<U0046><U0065><U0062><U0072><U0075><U0061><U0072><U0079>";/
-+            "<U004D><U0061><U0072><U0063><U0068>";/
-+            "<U0041><U0070><U0072><U0069><U006C>";/
-+            "<U004D><U0061><U0079>";/
-+            "<U004A><U0075><U006E><U0065>";/
-+            "<U004A><U0075><U006C><U0079>";/
-+            "<U0041><U0075><U0067><U0075><U0073><U0074>";/
-+            "<U0053><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";/
-+            "<U004F><U0063><U0074><U006F><U0062><U0065><U0072>";/
-+            "<U004E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/
-+            "<U0044><U0065><U0063><U0065><U006D><U0062><U0065><U0072>"
-+
-+% Week description, consists of three fields:
-+% 1. Number of days in a week.
-+% 2. Gregorian date that is a first weekday (19971130 for Sunday, 19971201 for Monday).
-+% 3. The weekday number to be contained in the first week of the year.
-+%
-+% ISO 8601 conforming applications should use the values 7, 19971201 (a
-+% Monday), and 4 (Thursday), respectively.
-+week    7;19971201;4
-+first_weekday	1
-+first_workday	1
-+
-+% Appropriate date and time representation (%c)
-+%	"%a %b %e %H:%M:%S %Y"
-+d_t_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0059>"
-+
-+% Appropriate date representation (%x)
-+%	"%m/%d/%y"
-+d_fmt   "<U0025><U006D><U002F><U0025><U0064><U002F><U0025><U0079>"
-+
-+% Appropriate time representation (%X)
-+%	"%H:%M:%S"
-+t_fmt   "<U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053>"
-+
-+% Appropriate AM/PM time representation (%r)
-+%	"%I:%M:%S %p"
-+t_fmt_ampm "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0070>"
-+
-+% Equivalent of AM/PM (%p)      "AM"/"PM"
-+%
-+am_pm	"<U0041><U004D>";"<U0050><U004D>"
-+
-+% Appropriate date representation (date(1))   "%a %b %e %H:%M:%S %Z %Y"
-+date_fmt	"<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U005A><U0020><U0025><U0059>"
-+END LC_TIME
-+
-+LC_MESSAGES
-+% This is the POSIX Locale definition for
-+% the LC_NUMERIC category.
-+%
-+yesexpr "<U005E><U005B><U0079><U0059><U005D>"
-+noexpr  "<U005E><U005B><U006E><U004E><U005D>"
-+yesstr  "<U0059><U0065><U0073>"
-+nostr   "<U004E><U006F>"
-+END LC_MESSAGES
-+
-+LC_PAPER
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_PAPER category.
-+% (A4 paper, this is also used in the built in C/POSIX
-+% locale in glibc/locale/C-paper.c)
-+height   297
-+width    210
-+END LC_PAPER
-+
-+LC_NAME
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_NAME category.
-+% "%p%t%g%t%m%t%f"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-name.c)
-+name_fmt    "<U0025><U0070><U0025><U0074><U0025><U0067><U0025><U0074>/
-+<U0025><U006D><U0025><U0074><U0025><U0066>"
-+END LC_NAME
-+
-+LC_ADDRESS
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_ADDRESS category.
-+% "%a%N%f%N%d%N%b%N%s %h %e %r%N%C-%z %T%N%c%N"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-address.c)
-+postal_fmt    "<U0025><U0061><U0025><U004E><U0025><U0066><U0025><U004E>/
-+<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
-+<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
-+<U004E><U0025><U0043><U002D><U0025><U007A><U0020><U0025><U0054><U0025>/
-+<U004E><U0025><U0063><U0025><U004E>"
-+END LC_ADDRESS
-+
-+LC_TELEPHONE
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_TELEPHONE category.
-+% "+%c %a %l"
-+tel_int_fmt    "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025>/
-+<U006C>"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-telephone.c)
-+END LC_TELEPHONE
-+
-+LC_MEASUREMENT
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_MEASUREMENT category.
-+% (same as in the built in C/POSIX locale in glibc/locale/C-measurement.c)
-+%metric
-+measurement    1
-+END LC_MEASUREMENT
-+
--- 
-2.4.3
-
diff --git a/srcpkgs/glibc/template b/srcpkgs/glibc/template
index c62a4d2aedf1..139aab865864 100644
--- a/srcpkgs/glibc/template
+++ b/srcpkgs/glibc/template
@@ -1,14 +1,14 @@
 # Template file for 'glibc'
 pkgname=glibc
-version=2.32
-revision=2
+version=2.36
+revision=1
 bootstrap=yes
 short_desc="GNU C library"
 maintainer="Enno Boland <gottox@voidlinux.org>"
 license="GPL-2.0-or-later, LGPL-2.1-or-later, BSD-3-Clause"
 homepage="http://www.gnu.org/software/libc"
 distfiles="${GNU_SITE}/glibc/glibc-${version}.tar.xz"
-checksum=1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum=1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
 # Do not strip these files, objcopy errors out.
 nostrip_files="
 	XBS5_ILP32_OFFBIG
@@ -20,27 +20,28 @@ nostrip_files="
 	POSIX_V6_LP64_OFF64
 	POSIX_V7_LP64_OFF64
 	XBS5_LP64_OFF64
-	ld-${version}.so
-	libdl-${version}.so
-	libanl-${version}.so
-	libcidn-${version}.so
-	libresolv-${version}.so
-	libcrypt-${version}.so
-	libpthread-${version}.so
-	libm-${version}.so
-	libutil-${version}.so
-	libthread_db-1.0.so
-	librt-${version}.so
-	libnsl-${version}.so
-	libc-${version}.so
-	libBrokenLocale-${version}.so
-	libnss_compat-${version}.so
-	libnss_db-${version}.so
-	libnss_dns-${version}.so
-	libnss_files-${version}.so
-	libnss_hesiod-${version}.so
-	libnss_nisplus-${version}.so
-	libnss_nis-${version}.so"
+	ld-linux-x86-64.so.2
+	ld-linux.so.2
+	ld-linux.so.3
+	ld-linux-aarch64.so.1
+	ld64.so.2
+	ld.so.1
+	ld-linux-armhf.so.3
+	libresolv.so.2
+	libcrypt.so.1
+	libm.so.6
+	libthread_db.so.1
+	libnsl.so.1
+	libc.so.6
+	libc_malloc_debug.so.0
+	libmemusage.so
+	libmvec.so.1
+	libBrokenLocale.so.1
+	libnss_compat.so.2
+	libnss_db.so.2
+	libnss_dns.so.2
+	libnss_files.so.2
+	libnss_hesiod.so.2"
 
 conf_files="
 	/etc/rpc
@@ -54,7 +55,6 @@ lib32files="/usr/lib/gconv/gconv-modules"
 lib32symlinks="ld-linux.so.2"
 # There's no point in building this for musl.
 archs="~*-musl"
-nopie=yes
 
 do_configure() {
 	mkdir build
@@ -163,18 +163,6 @@ do_install() {
 	rm -f ${DESTDIR}/usr/bin/z{dump,ic}
 
 	mv ${DESTDIR}/usr/sbin/* ${DESTDIR}/usr/bin
-
-	# Create xbps.d(5) arch override file for 32-bit architectures
-	# 32-bit userlands may be used with 64-bit kernels and then
-	# xbps will report an incorrect architecture by default
-	case "$XBPS_TARGET_MACHINE" in
-		i686|ppc|ppcle|armv*)
-			vmkdir usr/share/xbps.d
-			echo "architecture=${XBPS_TARGET_MACHINE}" > \
-				${DESTDIR}/usr/share/xbps.d/arch-32bit.conf
-			;;
-		*) ;;
-	esac
 }
 
 glibc-devel_package() {

From f3b70709592a3466325f32ca1b495ec6d270b3d2 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 20:08:52 -0700
Subject: [PATCH 6/7] openssh: suppress werror on gcc12

---
 srcpkgs/openssh/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/openssh/template b/srcpkgs/openssh/template
index 02a2dec35f42..6e8e343a9dca 100644
--- a/srcpkgs/openssh/template
+++ b/srcpkgs/openssh/template
@@ -40,7 +40,7 @@ if [ "$build_option_ldns" -a -z "$build_option_ssl" ]; then
 	broken="option 'ldns' requires option 'ssl'"
 fi
 
-CFLAGS="-Wno-format-truncation -Wno-stringop-truncation"
+CFLAGS="-Wno-format-truncation -Wno-stringop-truncation -Wno-error=maybe-uninitialized"
 
 case $XBPS_TARGET_MACHINE in
 	i686-musl)

From 8d683f32ed93b2d36208f915cbd2b8275f5afd6d Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 20:09:31 -0700
Subject: [PATCH 7/7] linux5.18: update dotconfigs for gcc12

---
 srcpkgs/linux5.18/files/x86_64-dotconfig | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/srcpkgs/linux5.18/files/x86_64-dotconfig b/srcpkgs/linux5.18/files/x86_64-dotconfig
index 4e73a3195d40..ea6204868e23 100644
--- a/srcpkgs/linux5.18/files/x86_64-dotconfig
+++ b/srcpkgs/linux5.18/files/x86_64-dotconfig
@@ -512,6 +512,7 @@ CONFIG_RETHUNK=y
 CONFIG_CPU_UNRET_ENTRY=y
 CONFIG_CPU_IBPB_ENTRY=y
 CONFIG_CPU_IBRS_ENTRY=y
+CONFIG_SLS=y
 CONFIG_ARCH_HAS_ADD_PAGES=y
 CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y
 
@@ -10060,8 +10061,11 @@ CONFIG_LSM="yama,loadpin,safesetid,integrity"
 # Memory initialization
 #
 CONFIG_INIT_STACK_NONE=y
+# CONFIG_INIT_STACK_ALL_PATTERN is not set
+# CONFIG_INIT_STACK_ALL_ZERO is not set
 CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
 # CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
+# CONFIG_ZERO_CALL_USED_REGS is not set
 # end of Memory initialization
 # end of Kernel hardening options
 # end of Security options
@@ -10538,6 +10542,7 @@ CONFIG_HAVE_ARCH_KGDB=y
 CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
 # CONFIG_UBSAN is not set
 CONFIG_HAVE_ARCH_KCSAN=y
+# CONFIG_KCSAN is not set
 # end of Generic Kernel Debugging Instruments
 
 #

^ permalink raw reply	[flat|nested] 144+ messages in thread

* Re: [PR PATCH] [Updated] gcc: update to 12.1.0
  2022-01-06  6:15 [PR PATCH] gcc: update to 11.2.1git20211128 Oreo639
                   ` (16 preceding siblings ...)
  2022-08-15  2:24 ` oreo639
@ 2022-08-15  2:31 ` oreo639
  2022-08-15  3:20 ` oreo639
                   ` (124 subsequent siblings)
  142 siblings, 0 replies; 144+ messages in thread
From: oreo639 @ 2022-08-15  2:31 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1717 bytes --]

There is an updated pull request by oreo639 against master on the void-packages repository

https://github.com/oreo639/void-packages gcc11
https://github.com/void-linux/void-packages/pull/34902

gcc: update to 12.1.0
<!-- Uncomment relevant sections and delete options which are not applicable -->
[ci skip]

Edit: this PR had been updated for gcc 12.1.0

This PR depends on: https://github.com/void-linux/void-packages/pull/32330

I tested this PR with glibc and after updating glibc, it seems to work fine.
I also tested this PR with x86_64-musl, and it appears to run fine in a musl chroot, and recompiling and installing musl with gcc 12 doesn't appear to result in any issues. (more testing is needed)

Please let me know if there are any issues.

I compiled base-system to ensure that compiles and it appears to work fine.

#### Testing the changes
- I tested the changes in this PR: **briefly**

<!--
#### New package
- This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please [skip CI](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration)
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->

#### Local build testing
- I built this PR locally for my native architecture, (x86_64-glibc)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - x86_64-musl

A patch file from https://github.com/void-linux/void-packages/pull/34902.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-gcc11-34902.patch --]
[-- Type: text/x-diff, Size: 58823 bytes --]

From bb6c79ed935b0a7513c85b5987c41aefcfaa0b00 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 01:14:21 -0700
Subject: [PATCH 1/8] binutils: update to 2.38.

---
 ...e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch | 60 -----------------
 .../patches/ppc64-revert-gnu-attributes.patch | 66 +++++--------------
 srcpkgs/binutils/template                     |  9 +--
 3 files changed, 22 insertions(+), 113 deletions(-)
 delete mode 100644 srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch

diff --git a/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch b/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch
deleted file mode 100644
index a55432d83cff..000000000000
--- a/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff Mon Sep 17 00:00:00 2001
-From: "H.J. Lu" <hjl.tools@gmail.com>
-Date: Mon, 16 Nov 2020 06:37:53 -0800
-Subject: [PATCH] elf: Set rel_from_abs to 1 for __ehdr_start
-
-bfdlink.h has
-
-  /* Symbol will be converted from absolute to section-relative.  Set for
-     symbols defined by a script from "dot" (also SEGMENT_START or ORIGIN)
-     outside of an output section statement.  */
-  unsigned int rel_from_abs : 1;
-
-linker.c has
-
-.{* Return TRUE if the symbol described by a linker hash entry H
-.   is going to be absolute.  Linker-script defined symbols can be
-.   converted from absolute to section-relative ones late in the
-.   link.  Use this macro to correctly determine whether the symbol
-.   will actually end up absolute in output.  *}
-.#define bfd_is_abs_symbol(H) \
-.  (((H)->type == bfd_link_hash_defined \
-.    || (H)->type == bfd_link_hash_defweak) \
-.   && bfd_is_abs_section ((H)->u.def.section) \
-.   && !(H)->rel_from_abs)
-.
-
-Set rel_from_abs to 1 for __ehdr_start which will be converted from
-absolute to section-relative in assign_file_positions_for_load_sections.
-
-	PR ld/26869
-	* ldelf.c (ldelf_before_allocation): Set rel_from_abs to 1 for
-	__ehdr_start.
-	* testsuite/ld-i386/i386.exp: Run pr26869.
-	* testsuite/ld-i386/pr26869.d: New file.
-	* testsuite/ld-i386/pr26869.s: Likewise.
-
-(cherry picked from commit cbd5b99cce073273f668b154d4514e8e7e7ccc51)
----
- ld/ChangeLog                   |  9 +++++++++
- ld/ldelf.c                     |  2 ++
- ld/testsuite/ld-i386/i386.exp  |  1 +
- ld/testsuite/ld-i386/pr26869.d | 14 ++++++++++++++
- ld/testsuite/ld-i386/pr26869.s |  3 +++
- 5 files changed, 29 insertions(+)
- create mode 100644 ld/testsuite/ld-i386/pr26869.d
- create mode 100644 ld/testsuite/ld-i386/pr26869.s
-
-diff --git a/ld/ldelf.c b/ld/ldelf.c
-index bada3ade2d7..831d032fe56 100644
---- a/ld/ldelf.c
-+++ b/ld/ldelf.c
-@@ -1589,6 +1589,8 @@ ldelf_before_allocation (char *audit, char *depaudit,
- 		      (char *) &ehdr_start->u + sizeof ehdr_start->u.def.next,
- 		      sizeof ehdr_start_save_u);
- 	      ehdr_start->type = bfd_link_hash_defined;
-+	      /* It will be converted to section-relative later.  */
-+	      ehdr_start->rel_from_abs = 1;
- 	      ehdr_start->u.def.section = bfd_abs_section_ptr;
- 	      ehdr_start->u.def.value = 0;
- 	    }
diff --git a/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch b/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
index 5de937f4fcce..1c208dd8955c 100644
--- a/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
+++ b/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
@@ -1,39 +1,24 @@
-From b1faf99f3e546df2cd302bb1ad36a2078224fe8b Mon Sep 17 00:00:00 2001
+From bbf05b742fde518fb97c789b043fe0d3aaf549f0 Mon Sep 17 00:00:00 2001
 From: Ariadne Conill <ariadne@dereferenced.org>
-Date: Fri, 30 Oct 2020 16:59:48 -0600
+Date: Tue, 21 Sep 2021 14:53:13 +0000
 Subject: [PATCH] Revert "PR25882, .gnu.attributes are not checked for shared
  libraries"
 
+This revert is needed to avoid wrongly tagging objects with the incompatible
+IBM long double ABI, which is not supported by musl and will result in
+linking errors if used.
+
 This reverts commit a8acd6eeb6dc2cc5460ece90f90ebe36b56b20ba.
 ---
- bfd/ChangeLog     | 6 ------
- bfd/elf32-tic6x.c | 3 ---
- ld/ChangeLog      | 6 ------
- ld/ldlang.c       | 9 ++++-----
- 4 files changed, 4 insertions(+), 20 deletions(-)
+ bfd/elf32-tic6x.c |  3 ---
+ ld/ldlang.c       | 10 ++++------
+ 2 files changed, 4 insertions(+), 9 deletions(-)
 
-diff --git a/bfd/ChangeLog b/bfd/ChangeLog
-index 9fac12538a..b5461494e8 100644
---- a/bfd/ChangeLog
-+++ b/bfd/ChangeLog
-@@ -1422,12 +1422,6 @@
- 	accessing root.u.def of symbols.  Also check root.u.def.section
- 	is non-NULL.  Reverse tests so as to make the logic positive.
- 
--2020-05-01  Alan Modra  <amodra@gmail.com>
--
--	PR 25882
--	* elf32-tic6x.c (elf32_tic6x_merge_attributes): Don't transfer
--	Tag_ABI_PIC or Tag_ABI_PID from dynamic objects to the output.
--
- 2020-05-01  Alan Modra  <amodra@gmail.com>
- 
- 	PR 25882
 diff --git a/bfd/elf32-tic6x.c b/bfd/elf32-tic6x.c
-index b8b916bfd3..91bb6a10b1 100644
+index 5754f3cb860..3ad1d612749 100644
 --- a/bfd/elf32-tic6x.c
 +++ b/bfd/elf32-tic6x.c
-@@ -3748,9 +3748,6 @@ elf32_tic6x_merge_attributes (bfd *ibfd, struct bfd_link_info *info)
+@@ -3735,9 +3735,6 @@ elf32_tic6x_merge_attributes (bfd *ibfd, struct bfd_link_info *info)
  
  	case Tag_ABI_PIC:
  	case Tag_ABI_PID:
@@ -43,36 +28,20 @@ index b8b916bfd3..91bb6a10b1 100644
  	  if (out_attr[i].i > in_attr[i].i)
  	    out_attr[i].i = in_attr[i].i;
  	  break;
-diff --git a/ld/ChangeLog b/ld/ChangeLog
-index 4eec7d2977..b93452f70c 100644
---- a/ld/ChangeLog
-+++ b/ld/ChangeLog
-@@ -1319,12 +1319,6 @@
- 	* testsuite/ld-aarch64/farcall-group.d: New test driver.
- 	* testsuite/ld-aarch64/aarch64-elf.exp: Run the new test.
- 
--2020-05-01  Alan Modra  <amodra@gmail.com>
--
--	PR 25882
--	* ldlang.c (lang_check): Call bfd_merge_private_bfd_data for
--	shared libraries.
--
- 2020-05-01  Alan Modra  <amodra@gmail.com>
- 
- 	* po/BLD-POTFILES.in: Regenerate.
 diff --git a/ld/ldlang.c b/ld/ldlang.c
-index 9977195074..173d8ec349 100644
+index 37b64c89ee1..f13beaef9d9 100644
 --- a/ld/ldlang.c
 +++ b/ld/ldlang.c
-@@ -6972,12 +6972,11 @@ lang_check (void)
+@@ -7071,13 +7071,11 @@ lang_check (void)
  		   bfd_printable_name (input_bfd), input_bfd,
  		   bfd_printable_name (link_info.output_bfd));
  	}
 -
 -      /* If the input bfd has no contents, it shouldn't set the
 -	 private data of the output bfd.  */
--      else if ((input_bfd->flags & DYNAMIC) != 0
--	       || bfd_count_sections (input_bfd) != 0)
+-      else if (!file->flags.just_syms
+-	       && ((input_bfd->flags & DYNAMIC) != 0
+-		   || bfd_count_sections (input_bfd) != 0))
 +      else if (bfd_count_sections (input_bfd))
  	{
 +	  /* If the input bfd has no contents, it shouldn't set the
@@ -82,5 +51,4 @@ index 9977195074..173d8ec349 100644
  
  	  /* If we aren't supposed to warn about mismatched input
 -- 
-2.29.2
-
+2.33.0
diff --git a/srcpkgs/binutils/template b/srcpkgs/binutils/template
index 6270f8618c87..b2b1c47d22fc 100644
--- a/srcpkgs/binutils/template
+++ b/srcpkgs/binutils/template
@@ -1,19 +1,20 @@
 # Template file for 'binutils'
 pkgname=binutils
-version=2.35.1
-revision=4
+version=2.38
+revision=1
 bootstrap=yes
+hostmakedepends="pkg-config"
 makedepends="zlib-devel"
 short_desc="GNU binary utilities"
 maintainer="Enno Boland <gottox@voidlinux.org>"
 license="GPL-3.0-or-later"
 homepage="http://www.gnu.org/software/binutils/"
 distfiles="${GNU_SITE}/$pkgname/$pkgname-$version.tar.xz"
-checksum=3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
+checksum=e316477a914f567eccc34d5d29785b8b0f5a10208d36bbacedcc39048ecfe024
 
 subpackages="binutils-doc"
 if [ "$CHROOT_READY" ]; then
-	hostmakedepends="flex perl texinfo"
+	hostmakedepends+=" flex perl texinfo"
 	makedepends+=" elfutils-devel"
 	checkdepends="bc"
 	depends="binutils-doc"

From 81dea5b96efffd0287e26041a2141acc32a3ff21 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 06:26:59 -0700
Subject: [PATCH 2/8] gcc: update to 12.1.0.

---
 common/shlibs                                 |  10 +-
 srcpkgs/gcc/files/gccgo-musl.patch            |  74 +++--------
 srcpkgs/gcc/files/libgnarl-musl.patch         |  18 +--
 srcpkgs/gcc/files/libssp-musl.patch           |  10 +-
 ...c21f3f5726823e19728fdd1571a14aae0fb3.patch | 105 ++++++++++++++++
 ...08065bdd36fb1a9b6aad9666b1edb5e06474.patch | 115 ++++++++++++++++++
 ...65517a59565758107c5b1a51a5fa382f8d1a.patch |  32 +++++
 srcpkgs/gcc/patches/libffi_gnulinux.patch     |  11 --
 .../gcc/patches/libgcc-ibm128-no-tag.patch    |  10 +-
 srcpkgs/gcc/patches/mips-sgidefs_h.patch      |   3 +-
 srcpkgs/gcc/template                          |  25 ++--
 11 files changed, 305 insertions(+), 108 deletions(-)
 create mode 100644 srcpkgs/gcc/patches/3b21c21f3f5726823e19728fdd1571a14aae0fb3.patch
 create mode 100644 srcpkgs/gcc/patches/49d508065bdd36fb1a9b6aad9666b1edb5e06474.patch
 create mode 100644 srcpkgs/gcc/patches/f35d65517a59565758107c5b1a51a5fa382f8d1a.patch
 delete mode 100644 srcpkgs/gcc/patches/libffi_gnulinux.patch

diff --git a/common/shlibs b/common/shlibs
index 61924610cc52..c6400b566966 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -60,7 +60,7 @@ libcc1plugin.so.0 gcc-6.2.1_1
 libitm.so.1 libitm-4.7.3_1
 liblto_plugin.so.0 gcc-4.7.3_1
 libgcc_s.so.1 libgcc-4.4.0_1
-libgo.so.16 libgo-10.2.0_1
+libgo.so.21 libgo-12.1.0_1
 libgccjit.so.0 libgccjit-10.2.1pre1_1
 libperl.so.5.34 perl-5.34.0_1
 libgmp.so.10 gmp-5.0.1_1
@@ -849,8 +849,8 @@ libgdkmm-2.4.so.1 gtkmm2-2.24.0_1
 libgtkmm-2.4.so.1 gtkmm2-2.24.0_1
 libquadmath.so.0 libquadmath-4.4.0_1
 libgfortran.so.5 libgfortran-8.2.0_1
-libgnarl-10.so libada-10.2.0_1
-libgnat-10.so libada-10.2.0_1
+libgnarl-12.so libada-12.1.0_1
+libgnat-12.so libada-12.1.0_1
 libwebp.so.7 libwebp-0.6.0_1
 libwebpmux.so.3 libwebp-0.6.0_1
 libwebpdemux.so.2 libwebp-0.5.0_1
@@ -1701,8 +1701,8 @@ libextractor.so.3 libextractor-1.1_1
 libextractor_common.so.1 libextractor-1.1_1
 libpano13.so.3 libpano13-2.9.19_1
 libubsan.so.1 libsanitizer-8.2.0_1
-libtsan.so.0 libsanitizer-6.3.0_1
-libasan.so.6 libsanitizer-10.2.0_1
+libtsan.so.2 libsanitizer-12.1.0_1
+libasan.so.8 libsanitizer-12.1.0_1
 liblsan.so.0 libsanitizer-6.3.0_1
 libvtv.so.0 libvtv-6.3.0_1
 libatomic.so.1 libatomic-4.9.0_1
diff --git a/srcpkgs/gcc/files/gccgo-musl.patch b/srcpkgs/gcc/files/gccgo-musl.patch
index 9762739615af..632ef951097b 100644
--- a/srcpkgs/gcc/files/gccgo-musl.patch
+++ b/srcpkgs/gcc/files/gccgo-musl.patch
@@ -53,17 +53,6 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
  	p := sysMmap(addr, n, prot, flags, fd, off)
  	if uintptr(p) == _MAP_FAILED {
  		return nil, errno()
---- a/libgo/go/runtime/signal_gccgo.go
-+++ b/libgo/go/runtime/signal_gccgo.go
-@@ -111,7 +111,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")
 --- a/libgo/go/syscall/errstr.go
 +++ b/libgo/go/syscall/errstr.go
 @@ -5,7 +5,6 @@
@@ -140,55 +129,6 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
  		plwoff = &lwoff
  	}
  	n, err = splice(rfd, plroff, wfd, plwoff, len, flags)
---- 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
---- a/libgo/runtime/go-signal.c	2020-07-23 08:35:19.004402840 +0200
-+++ b/libgo/runtime/go-signal.c	2020-08-09 21:35:54.352886232 +0200
-@@ -224,7 +224,11 @@
- #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;
-+	#ifdef __PPC64__
-+		ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.gp_regs[32];
-+	#else
-+		ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.gregs[32];
-+	#endif
- #elif defined(__PPC__) && defined(_AIX)
- 	ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.jmp_context.iar;
- #elif defined(__aarch64__) && defined(__linux__)
-@@ -333,7 +337,7 @@
- 		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(__linux__) && defined(__GLIBC__)
- 	  {
- 		mcontext_t *m = &((ucontext_t*)(context))->uc_mcontext;
- 		int i;
 --- a/libgo/runtime/runtime.h
 +++ b/libgo/runtime/runtime.h
 @@ -500,10 +500,13 @@ int __go_setcontext(__go_context_t*);
@@ -220,3 +160,17 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
  #if defined(HAVE_SYS_UTSNAME_H)
  #include <sys/utsname.h>
  #endif
+--- a/libgo/go/runtime/os_linux.go
++++ a/libgo/go/runtime/os_linux.go
+@@ -363,9 +363,9 @@
+ 
+ 	var timerid int32
+ 	var sevp _sigevent
+-	sevp.sigev_notify = _SIGEV_THREAD_ID
++	sevp.sigev_notify = 4
+ 	sevp.sigev_signo = _SIGPROF
+-	*((*int32)(unsafe.Pointer(&sevp._sigev_un))) = int32(mp.procid)
++	*((*int32)(unsafe.Pointer(&sevp.sigev_notify_function))) = int32(mp.procid)
+ 	ret := timer_create(_CLOCK_THREAD_CPUTIME_ID, &sevp, &timerid)
+ 	if ret != 0 {
+ 		// If we cannot create a timer for this M, leave profileTimerValid false
diff --git a/srcpkgs/gcc/files/libgnarl-musl.patch b/srcpkgs/gcc/files/libgnarl-musl.patch
index 99a734c42c90..91c95949e0e9 100644
--- a/srcpkgs/gcc/files/libgnarl-musl.patch
+++ b/srcpkgs/gcc/files/libgnarl-musl.patch
@@ -5,7 +5,7 @@ Reason: Patch libgnarl to not use function missing from musl.
 diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/libgnarl/s-osinte__linux.ads
 --- a/gcc/ada/libgnarl/s-osinte__linux.ads	2018-01-11 00:55:25.000000000 -0800
 +++ b/gcc/ada/libgnarl/s-osinte__linux.ads	2018-11-01 16:16:23.372452951 -0700
-@@ -394,12 +394,6 @@ package System.OS_Interface is
+@@ -403,12 +403,6 @@ package System.OS_Interface is
     PTHREAD_RWLOCK_PREFER_WRITER_NP              : constant := 1;
     PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP : constant := 2;
  
@@ -18,7 +18,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/l
     function pthread_rwlock_init
       (mutex : access pthread_rwlock_t;
        attr  : access pthread_rwlockattr_t) return int;
-@@ -464,11 +458,6 @@ package System.OS_Interface is
+@@ -470,11 +464,6 @@ package System.OS_Interface is
        protocol : int) return int;
     pragma Import (C, pthread_mutexattr_setprotocol);
  
@@ -33,7 +33,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/l
 diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/libgnarl/s-taprop__linux.adb
 --- a/gcc/ada/libgnarl/s-taprop__linux.adb	2018-01-11 00:55:25.000000000 -0800
 +++ b/gcc/ada/libgnarl/s-taprop__linux.adb	2018-11-13 11:28:36.433964449 -0800
-@@ -202,9 +202,6 @@ package body System.Task_Primitives.Oper
+@@ -198,9 +198,6 @@ package body System.Task_Primitives.Oper
     pragma Import
       (C, GNAT_pthread_condattr_setup, "__gnat_pthread_condattr_setup");
  
@@ -43,7 +43,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
     --  We do not have pragma Linker_Options ("-lcap"); here, because this
     --  library is not present on many Linux systems. 'libcap' is the Linux
     --  "capabilities" library, called by __gnat_has_cap_sys_nice.
-@@ -214,38 +211,6 @@ package body System.Task_Primitives.Oper
+@@ -210,38 +207,6 @@ package body System.Task_Primitives.Oper
     --  Convert Ada priority to Linux priority. Priorities are 1 .. 99 on
     --  GNU/Linux, so we map 0 .. 98 to 1 .. 99.
  
@@ -76,13 +76,13 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
 -      return Ceiling_Support;
 -   end Get_Ceiling_Support;
 -
--   pragma Warnings (Off, "non-static call not allowed in preelaborated unit");
+-   pragma Warnings (Off, "non-preelaborable call not allowed*");
 -   Ceiling_Support : constant Boolean := Get_Ceiling_Support;
--   pragma Warnings (On, "non-static call not allowed in preelaborated unit");
+-   pragma Warnings (On, "non-preelaborable call not allowed*");
     --  True if the locking policy is Ceiling_Locking, and the current process
     --  has permission to use this policy. The process has permission if it is
     --  running as 'root', or if the capability was set by the setcap command,
-@@ -348,7 +313,9 @@ package body System.Task_Primitives.Oper
+@@ -344,7 +309,9 @@ package body System.Task_Primitives.Oper
     -- Init_Mutex --
     ----------------
  
@@ -92,7 +92,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
        Mutex_Attr : aliased pthread_mutexattr_t;
        Result, Result_2 : C.int;
  
-@@ -360,16 +327,7 @@ package body System.Task_Primitives.Oper
+@@ -356,16 +323,7 @@ package body System.Task_Primitives.Oper
           return Result;
        end if;
  
@@ -110,7 +110,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
           Result := pthread_mutexattr_setprotocol
             (Mutex_Attr'Access, PTHREAD_PRIO_INHERIT);
           pragma Assert (Result = 0);
-@@ -409,11 +367,6 @@ package body System.Task_Primitives.Oper
+@@ -405,11 +363,6 @@ package body System.Task_Primitives.Oper
              Result := pthread_rwlockattr_init (RWlock_Attr'Access);
              pragma Assert (Result = 0);
  
diff --git a/srcpkgs/gcc/files/libssp-musl.patch b/srcpkgs/gcc/files/libssp-musl.patch
index b21a2c29e57c..99f248401a1c 100644
--- a/srcpkgs/gcc/files/libssp-musl.patch
+++ b/srcpkgs/gcc/files/libssp-musl.patch
@@ -2,9 +2,9 @@ First part taken from Alpine.
 
 Second part added to prevent gccgo from thinking it can -fsplit-stack on musl.
 
---- a/gcc/gcc.c
-+++ b/gcc/gcc.c
-@@ -874,10 +874,15 @@ proper position among the other output files.  */
+--- a/gcc/gcc.cc
++++ b/gcc/gcc.cc
+@@ -984,10 +984,15 @@ proper position among the other output f
  #define LINK_GCC_C_SEQUENCE_SPEC "%G %{!nolibc:%L %G}"
  #endif
  
@@ -22,10 +22,10 @@ Second part added to prevent gccgo from thinking it can -fsplit-stack on musl.
  #else
  #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
  		       "|fstack-protector-strong|fstack-protector-explicit" \
-@@ -1155,7 +1160,7 @@ static const char *cc1_options =
+@@ -1280,7 +1285,7 @@ static const char *cc1_options =
   %{-version:--version}\
   %{-help=*:--help=%*}\
-  %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %b.s}}}\
+  %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %w%b.s}}}\
 - %{fsyntax-only:-o %j} %{-param*}\
 + %{fsyntax-only:-o %j} %{-param*} " NO_SSP_SPEC "\
   %{coverage:-fprofile-arcs -ftest-coverage}\
diff --git a/srcpkgs/gcc/patches/3b21c21f3f5726823e19728fdd1571a14aae0fb3.patch b/srcpkgs/gcc/patches/3b21c21f3f5726823e19728fdd1571a14aae0fb3.patch
new file mode 100644
index 000000000000..00929202a503
--- /dev/null
+++ b/srcpkgs/gcc/patches/3b21c21f3f5726823e19728fdd1571a14aae0fb3.patch
@@ -0,0 +1,105 @@
+From 3b21c21f3f5726823e19728fdd1571a14aae0fb3 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <siarheit@google.com>
+Date: Mon, 27 Jun 2022 13:27:24 +0100
+Subject: [PATCH] c++: avoid <memory> poisoning on musl [PR106102]
+
+On musl <pthread.h> uses calloc() (via <sched.h>). <memory> includes
+it indirectly and exposes use of poisoned calloc() when module code
+is built:
+
+    /build/build/./prev-gcc/xg++ ... ../../gcc-13-20220626/gcc/cp/mapper-resolver.cc
+        In file included from /<<NIX>>/musl-1.2.3-dev/include/pthread.h:30,
+                 from /build/build/prev-x86_64-unknown-linux-musl/libstdc++-v3/include/x86_64-unknown-linux-musl/bits/gthr-default.h:35,
+                 ....
+                 from /build/build/prev-x86_64-unknown-linux-musl/libstdc++-v3/include/memory:77,
+                 from ../../gcc-13-20220626/gcc/../libcody/cody.hh:24,
+                 from ../../gcc-13-20220626/gcc/cp/../../c++tools/resolver.h:25,
+                 from ../../gcc-13-20220626/gcc/cp/../../c++tools/resolver.cc:23,
+                 from ../../gcc-13-20220626/gcc/cp/mapper-resolver.cc:32:
+    /<<NIX>>/musl-1.2.3-dev/include/sched.h:84:7: error: attempt to use poisoned "calloc"
+       84 | void *calloc(size_t, size_t);
+          |       ^
+    /<<NIX>>/musl-1.2.3-dev/include/sched.h:124:36: error: attempt to use poisoned "calloc"
+      124 | #define CPU_ALLOC(n) ((cpu_set_t *)calloc(1,CPU_ALLOC_SIZE(n)))
+          |                                    ^
+
+gcc/cp/
+
+	PR c++/106102
+	* mapper-client.cc: Include <memory> via "system.h".
+	* mapper-resolver.cc: Ditto.
+	* module.cc: Ditto.
+
+libcc1/
+
+	PR c++/106102
+	* libcc1plugin.cc: Include <memory> via "system.h".
+	* libcp1plugin.cc: Ditto.
+---
+ gcc/cp/mapper-client.cc   | 1 +
+ gcc/cp/mapper-resolver.cc | 1 +
+ gcc/cp/module.cc          | 1 +
+ libcc1/libcc1plugin.cc    | 1 +
+ libcc1/libcp1plugin.cc    | 1 +
+ 5 files changed, 5 insertions(+)
+
+diff --git a/gcc/cp/mapper-client.cc b/gcc/cp/mapper-client.cc
+index 8603a886a099..fe9544b5ba43 100644
+--- a/gcc/cp/mapper-client.cc
++++ b/gcc/cp/mapper-client.cc
+@@ -27,6 +27,7 @@ along with GCC; see the file COPYING3.  If not see
+ #define INCLUDE_STRING
+ #define INCLUDE_VECTOR
+ #define INCLUDE_MAP
++#define INCLUDE_MEMORY
+ #include "system.h"
+ 
+ #include "line-map.h"
+diff --git a/gcc/cp/mapper-resolver.cc b/gcc/cp/mapper-resolver.cc
+index e3d29fb5ada1..e70d1b4ae2ca 100644
+--- a/gcc/cp/mapper-resolver.cc
++++ b/gcc/cp/mapper-resolver.cc
+@@ -25,6 +25,7 @@ along with GCC; see the file COPYING3.  If not see
+ #define INCLUDE_VECTOR
+ #define INCLUDE_ALGORITHM
+ #define INCLUDE_MAP
++#define INCLUDE_MEMORY
+ #include "system.h"
+ 
+ // We don't want or need to be aware of networking
+diff --git a/gcc/cp/module.cc b/gcc/cp/module.cc
+index 753963a4b246..8bb22c2b305a 100644
+--- a/gcc/cp/module.cc
++++ b/gcc/cp/module.cc
+@@ -206,6 +206,7 @@ Classes used:
+ 
+ #define _DEFAULT_SOURCE 1 /* To get TZ field of struct tm, if available.  */
+ #include "config.h"
++#define INCLUDE_MEMORY
+ #define INCLUDE_STRING
+ #define INCLUDE_VECTOR
+ #include "system.h"
+diff --git a/libcc1/libcc1plugin.cc b/libcc1/libcc1plugin.cc
+index 12ab5a57c8dd..bdd0bdabe77f 100644
+--- a/libcc1/libcc1plugin.cc
++++ b/libcc1/libcc1plugin.cc
+@@ -31,6 +31,7 @@
+ #undef PACKAGE_TARNAME
+ #undef PACKAGE_VERSION
+ 
++#define INCLUDE_MEMORY
+ #include "gcc-plugin.h"
+ #include "system.h"
+ #include "coretypes.h"
+diff --git a/libcc1/libcp1plugin.cc b/libcc1/libcp1plugin.cc
+index 83dab7f58b11..e2d5039a0a1f 100644
+--- a/libcc1/libcp1plugin.cc
++++ b/libcc1/libcp1plugin.cc
+@@ -32,6 +32,7 @@
+ #undef PACKAGE_TARNAME
+ #undef PACKAGE_VERSION
+ 
++#define INCLUDE_MEMORY
+ #include "gcc-plugin.h"
+ #include "system.h"
+ #include "coretypes.h"
diff --git a/srcpkgs/gcc/patches/49d508065bdd36fb1a9b6aad9666b1edb5e06474.patch b/srcpkgs/gcc/patches/49d508065bdd36fb1a9b6aad9666b1edb5e06474.patch
new file mode 100644
index 000000000000..89bd053d6d04
--- /dev/null
+++ b/srcpkgs/gcc/patches/49d508065bdd36fb1a9b6aad9666b1edb5e06474.patch
@@ -0,0 +1,115 @@
+From 49d508065bdd36fb1a9b6aad9666b1edb5e06474 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <siarheit@google.com>
+Date: Mon, 27 Jun 2022 23:42:44 +0100
+Subject: [PATCH] jit: avoid calloc() poisoning on musl [PR106102]
+
+On musl <pthread.h> uses calloc() (via <sched.h>). jit/ includes
+it directly and exposes use of poisoned calloc():
+
+    /build/build/./prev-gcc/xg++ ... ../../gcc-13-20220626/gcc/jit/jit-playback.cc
+    make[3]: *** [Makefile:1143: jit/libgccjit.o] Error 1
+    make[3]: *** Waiting for unfinished jobs....
+    In file included from /<<NIX>>/musl-1.2.3-dev/include/pthread.h:30,
+                     from ../../gcc-13-20220626/gcc/jit/jit-playback.cc:44:
+    /<<NIX>>/musl-1.2.3-dev/include/sched.h:84:7: error: attempt to use poisoned "calloc"
+       84 | void *calloc(size_t, size_t);
+          |       ^
+    /<<NIX>>/musl-1.2.3-dev/include/sched.h:124:36: error: attempt to use poisoned "calloc"
+      124 | #define CPU_ALLOC(n) ((cpu_set_t *)calloc(1,CPU_ALLOC_SIZE(n)))
+          |                                    ^
+
+The change moves <pthread.h> inclusion to "system.h" under new
+INCLUDE_PTHREAD_H guard and uses this mechanism in libgccjit.
+
+gcc/
+
+	PR c++/106102
+	* system.h: Introduce INCLUDE_PTHREAD_H macros to include <pthread.h>.
+
+gcc/jit/
+
+	PR c++/106102
+	* jit-playback.cc: Include <pthread.h> via "system.h" to avoid calloc()
+	poisoning.
+	* jit-recording.cc: Ditto.
+	* libgccjit.cc: Ditto.
+---
+ gcc/jit/jit-playback.cc  | 3 +--
+ gcc/jit/jit-recording.cc | 2 +-
+ gcc/jit/libgccjit.cc     | 2 +-
+ gcc/system.h             | 4 ++++
+ 4 files changed, 7 insertions(+), 4 deletions(-)
+
+diff --git a/gcc/jit/jit-playback.cc b/gcc/jit/jit-playback.cc
+index 6be6bdf8dea5..79714132b91a 100644
+--- a/gcc/jit/jit-playback.cc
++++ b/gcc/jit/jit-playback.cc
+@@ -19,6 +19,7 @@ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
++#define INCLUDE_PTHREAD_H
+ #include "system.h"
+ #include "coretypes.h"
+ #include "target.h"
+@@ -41,8 +42,6 @@ along with GCC; see the file COPYING3.  If not see
+ #include "diagnostic.h"
+ #include "stmt.h"
+ 
+-#include <pthread.h>
+-
+ #include "jit-playback.h"
+ #include "jit-result.h"
+ #include "jit-builtins.h"
+diff --git a/gcc/jit/jit-recording.cc b/gcc/jit/jit-recording.cc
+index 697dee66e733..f78daed2d71a 100644
+--- a/gcc/jit/jit-recording.cc
++++ b/gcc/jit/jit-recording.cc
+@@ -19,13 +19,13 @@ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
++#define INCLUDE_PTHREAD_H
+ #include "system.h"
+ #include "coretypes.h"
+ #include "tm.h"
+ #include "pretty-print.h"
+ #include "toplev.h"
+ 
+-#include <pthread.h>
+ 
+ #include "jit-builtins.h"
+ #include "jit-recording.h"
+diff --git a/gcc/jit/libgccjit.cc b/gcc/jit/libgccjit.cc
+index 0e76097b4bac..ca862662777e 100644
+--- a/gcc/jit/libgccjit.cc
++++ b/gcc/jit/libgccjit.cc
+@@ -19,12 +19,12 @@ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
++#define INCLUDE_PTHREAD_H
+ #include "system.h"
+ #include "coretypes.h"
+ #include "timevar.h"
+ #include "typed-splay-tree.h"
+ #include "cppbuiltin.h"
+-#include <pthread.h>
+ 
+ #include "libgccjit.h"
+ #include "jit-recording.h"
+diff --git a/gcc/system.h b/gcc/system.h
+index 67158b70c789..f8d42ff68150 100644
+--- a/gcc/system.h
++++ b/gcc/system.h
+@@ -753,6 +753,10 @@ extern int vsnprintf (char *, size_t, const char *, va_list);
+ #endif
+ #endif
+ 
++#ifdef INCLUDE_PTHREAD_H
++#include <pthread.h>
++#endif
++
+ #ifdef INCLUDE_ISL
+ #ifdef HAVE_isl
+ #include <isl/options.h>
diff --git a/srcpkgs/gcc/patches/f35d65517a59565758107c5b1a51a5fa382f8d1a.patch b/srcpkgs/gcc/patches/f35d65517a59565758107c5b1a51a5fa382f8d1a.patch
new file mode 100644
index 000000000000..044a4fc29514
--- /dev/null
+++ b/srcpkgs/gcc/patches/f35d65517a59565758107c5b1a51a5fa382f8d1a.patch
@@ -0,0 +1,32 @@
+From f35d65517a59565758107c5b1a51a5fa382f8d1a Mon Sep 17 00:00:00 2001
+From: Ian Lance Taylor <iant@golang.org>
+Date: Tue, 12 Jul 2022 19:42:43 -0700
+Subject: [PATCH] libgo: don't include <linux/fs.h> when building
+ gen-sysinfo.go
+
+Removing this doesn't change anything at least with glibc 2.33.
+The include was added in https://go.dev/cl/6100049 but it's not
+clear why.
+
+Fixes PR go/106266
+
+Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/417294
+---
+ gcc/go/gofrontend/MERGE | 2 +-
+ libgo/sysinfo.c         | 3 ---
+ 2 files changed, 1 insertion(+), 4 deletions(-)
+
+diff --git a/libgo/sysinfo.c b/libgo/sysinfo.c
+index a4259c02ded4..fc0210992faa 100644
+--- a/libgo/sysinfo.c
++++ b/libgo/sysinfo.c
+@@ -158,9 +158,6 @@
+ #if defined(HAVE_LINUX_ETHER_H)
+ #include <linux/ether.h>
+ #endif
+-#if defined(HAVE_LINUX_FS_H)
+-#include <linux/fs.h>
+-#endif
+ #if defined(HAVE_LINUX_REBOOT_H)
+ #include <linux/reboot.h>
+ #endif
diff --git a/srcpkgs/gcc/patches/libffi_gnulinux.patch b/srcpkgs/gcc/patches/libffi_gnulinux.patch
deleted file mode 100644
index 98245bd5be1a..000000000000
--- a/srcpkgs/gcc/patches/libffi_gnulinux.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/libffi/src/closures.c
-+++ b/libffi/src/closures.c
-@@ -34,7 +34,7 @@
- #include <ffi_common.h>
-
- #if !FFI_MMAP_EXEC_WRIT && !FFI_EXEC_TRAMPOLINE_TABLE
--# if __gnu_linux__ && !defined(__ANDROID__)
-+# if __linux__ && !defined(__ANDROID__)
- /* This macro indicates it may be forbidden to map anonymous memory
-    with both write and execute permission.  Code compiled when this
-    option is defined will attempt to map such pages once, but if it
diff --git a/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch b/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
index bdf5c75d917d..26d80356ad0d 100644
--- a/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
+++ b/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
@@ -29,10 +29,14 @@ diff --git a/libgcc/config/rs6000/t-linux b/libgcc/config/rs6000/t-linux
 index 4f6d4c4..fa93bb6 100644
 --- a/libgcc/config/rs6000/t-linux
 +++ b/libgcc/config/rs6000/t-linux
-@@ -1,3 +1,3 @@
+@@ -1,6 +1,6 @@
  SHLIB_MAPFILES += $(srcdir)/config/rs6000/libgcc-glibc.ver
  
--HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-minimal-toc
-+HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-gnu-attribute -mno-minimal-toc
+-HOST_LIBGCC2_CFLAGS += -mlong-double-128
++HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-gnu-attribute
+ 
+ # This is a way of selecting -mcmodel=small for ppc64, which gives
+ # smaller and faster libgcc code.  Directly specifying -mcmodel=small
+
 -- 
 2.24.0
diff --git a/srcpkgs/gcc/patches/mips-sgidefs_h.patch b/srcpkgs/gcc/patches/mips-sgidefs_h.patch
index dddfe10e8c06..78a2ce35875d 100644
--- a/srcpkgs/gcc/patches/mips-sgidefs_h.patch
+++ b/srcpkgs/gcc/patches/mips-sgidefs_h.patch
@@ -3,9 +3,10 @@
 @@ -42,7 +42,7 @@
  #define _MIPS_SIM_NABI32	2
  #define _MIPS_SIM_ABI64		3
- #elif !defined(__OpenBSD__)
+ #elif !defined(__OpenBSD__) && !defined(__FreeBSD__)
 -# include <sgidefs.h>
 +# include <asm/sgidefs.h>
  #endif
  
  #  ifndef _ABIN32
+
diff --git a/srcpkgs/gcc/template b/srcpkgs/gcc/template
index 09727ef34fb2..32ee79e32f0d 100644
--- a/srcpkgs/gcc/template
+++ b/srcpkgs/gcc/template
@@ -3,18 +3,15 @@
 # which use the version number.
 
 pkgname=gcc
-# we are using a 10-stable git snapshot alpine is using in order
-# to get regression fixes not yet incorporate into a stable release
-# it should be possible to switch back to stable with 10.3 or 11
-version=10.2.1pre1
-revision=3
+version=12.1.0
+revision=1
 _patchver="${version%pre*}"
 _minorver="${_patchver%.*}"
 _majorver="${_minorver%.*}"
-_gmp_version=6.2.0
+_gmp_version=6.2.1
 _mpfr_version=4.1.0
-_mpc_version=1.1.0
-_isl_version=0.21
+_mpc_version=1.2.1
+_isl_version=0.24
 wrksrc=gcc-${version/pre/_pre}
 short_desc="GNU Compiler Collection"
 maintainer="Enno Boland <gottox@voidlinux.org>"
@@ -22,16 +19,16 @@ homepage="http://gcc.gnu.org"
 license="GFDL-1.2-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
 # *-musl builders have issues fetching https://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz
 distfiles="
- https://dev.alpinelinux.org/~nenolod/gcc-${version/pre/_pre}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${version}/gcc-${version}.tar.xz
  https://gmplib.org/download/gmp/gmp-${_gmp_version}.tar.xz
  ${GNU_SITE}/mpfr/mpfr-${_mpfr_version}.tar.xz
  ${GNU_SITE}/mpc/mpc-${_mpc_version}.tar.gz
  ${SOURCEFORGE_SITE}/libisl/isl-${_isl_version}.tar.bz2"
-checksum="772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 258e6cd51b3fbdfc185c716d55f82c08aff57df0c6fbd143cf6ed561267a1526
+checksum="62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
+ fd4829912cddd12f84181c3451cc752be224643e87fac497b69edddadc49b4f2
  0c98a3f1732ff6ca4ea690552079da9c597872d30e96ec28414ee23c95558a7f
- 6985c538143c1208dcb1ac42cedad6ff52e267b47e5f970183a3e75125b43c2e
- d18ca11f8ad1a39ab6d03d3dcb3365ab416720fcb65b42d69f34f51bf0a0e859"
+ 17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459
+ fcf78dd9656c10eb8cf9fbd5f59a0b6b01386205fe1934b3b287a0a1898145c0"
 
 nopie=yes
 lib32disabled=yes
@@ -396,7 +393,7 @@ gcc-ada_package() {
 	depends="gcc>=${_minorver} libada-devel>=${_minorver}"
 	short_desc+=" - Ada compiler frontend"
 	pkg_install() {
-		for f in gnat{,bind,chop,clean,find,kr,link,ls,make,name,prep,xref}; do
+		for f in gnat{,bind,chop,clean,kr,link,ls,make,name,prep}; do
 			vmove usr/bin/${f}
 		done
 	}

From 2291feed5bcca91851d6b6ee3f55811a8748e1ce Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 06:27:47 -0700
Subject: [PATCH 3/8] libtool: update to 2.4.7.

---
 .../patches/0002-rename-with-sysroot.patch    | 34 +++++++++----------
 srcpkgs/libtool/template                      |  6 ++--
 2 files changed, 20 insertions(+), 20 deletions(-)

diff --git a/srcpkgs/libtool/patches/0002-rename-with-sysroot.patch b/srcpkgs/libtool/patches/0002-rename-with-sysroot.patch
index 960873c04e24..152aace96c41 100644
--- a/srcpkgs/libtool/patches/0002-rename-with-sysroot.patch
+++ b/srcpkgs/libtool/patches/0002-rename-with-sysroot.patch
@@ -13,16 +13,16 @@ Jürgen Buchmüller <pullmoll@t-online.de>
 
 --- a/configure	2015-02-15 17:14:34.000000000 +0100
 +++ b/configure	2015-10-20 13:25:12.684906339 +0200
-@@ -824,7 +824,7 @@
+@@ -832,7 +832,7 @@
  enable_fast_install
  with_aix_soname
  with_gnu_ld
 -with_sysroot
 +with_libtool_sysroot
  enable_libtool_lock
+ enable_cross_guesses
  '
-       ac_precious_vars='build_alias
-@@ -1487,7 +1487,8 @@
+@@ -1509,7 +1509,8 @@
                            shared library versioning (aka "SONAME") variant to
                            provide on AIX, [default=aix].
    --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
@@ -32,7 +32,7 @@ Jürgen Buchmüller <pullmoll@t-online.de>
                            compiler's sysroot if not specified).
  
  Some influential environment variables:
-@@ -7389,29 +7390,29 @@
+@@ -7610,29 +7611,29 @@
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
  $as_echo_n "checking for sysroot... " >&6; }
  
@@ -57,8 +57,8 @@ Jürgen Buchmüller <pullmoll@t-online.de>
     fi
     ;; #(
   /*)
--   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
-+   lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"`
+-   lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"`
++   lt_sysroot=`echo "$with_libtool_sysroot" | $SED -e "$sed_quote_subst"`
     ;; #(
   no|'')
     ;; #(
@@ -72,7 +72,7 @@ Jürgen Buchmüller <pullmoll@t-online.de>
  esac
 --- a/libltdl/configure	2015-02-15 17:15:15.000000000 +0100
 +++ b/libltdl/configure	2015-10-20 13:26:45.747914683 +0200
-@@ -775,7 +775,7 @@
+@@ -777,7 +777,7 @@
  with_aix_soname
  enable_dependency_tracking
  with_gnu_ld
@@ -81,7 +81,7 @@ Jürgen Buchmüller <pullmoll@t-online.de>
  enable_libtool_lock
  enable_ltdl_install
  '
-@@ -1429,7 +1429,8 @@
+@@ -1442,7 +1442,8 @@
                            shared library versioning (aka "SONAME") variant to
                            provide on AIX, [default=aix].
    --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
@@ -91,7 +91,7 @@ Jürgen Buchmüller <pullmoll@t-online.de>
                            compiler's sysroot if not specified).
  
  Some influential environment variables:
-@@ -6275,29 +6276,29 @@
+@@ -6397,29 +6398,29 @@
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
  $as_echo_n "checking for sysroot... " >&6; }
  
@@ -116,8 +116,8 @@ Jürgen Buchmüller <pullmoll@t-online.de>
     fi
     ;; #(
   /*)
--   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
-+   lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"`
+-   lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"`
++   lt_sysroot=`echo "$with_libtool_sysroot" | $SED -e "$sed_quote_subst"`
     ;; #(
   no|'')
     ;; #(
@@ -243,14 +243,14 @@ Jürgen Buchmüller <pullmoll@t-online.de>
  ]])
 --- a/m4/libtool.m4	2015-01-20 17:15:19.000000000 +0100
 +++ b/m4/libtool.m4	2015-10-20 15:40:04.020631813 +0200
-@@ -1245,29 +1245,29 @@
- # _LT_WITH_SYSROOT
+@@ -1243,29 +1243,29 @@
  # ----------------
  AC_DEFUN([_LT_WITH_SYSROOT],
--[AC_MSG_CHECKING([for sysroot])
+ [m4_require([_LT_DECL_SED])dnl
+-AC_MSG_CHECKING([for sysroot])
 -AC_ARG_WITH([sysroot],
 -[AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@],
-+[AC_MSG_CHECKING([for libtool-sysroot])
++AC_MSG_CHECKING([for libtool-sysroot])
 +AC_ARG_WITH([libtool-sysroot],
 +[AS_HELP_STRING([--with-libtool-sysroot@<:@=DIR@:>@],
    [Search for dependent libraries within DIR (or the compiler's sysroot
@@ -269,8 +269,8 @@ Jürgen Buchmüller <pullmoll@t-online.de>
     fi
     ;; #(
   /*)
--   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
-+   lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"`
+-   lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"`
++   lt_sysroot=`echo "$with_libtool_sysroot" | $SED -e "$sed_quote_subst"`
     ;; #(
   no|'')
     ;; #(
diff --git a/srcpkgs/libtool/template b/srcpkgs/libtool/template
index b9972df70341..08e35d466a44 100644
--- a/srcpkgs/libtool/template
+++ b/srcpkgs/libtool/template
@@ -1,7 +1,7 @@
 # Template file for 'libtool'
 pkgname=libtool
-version=2.4.6
-revision=6
+version=2.4.7
+revision=1
 build_style=gnu-configure
 hostmakedepends="texinfo perl automake help2man xz"
 depends="tar sed"
@@ -10,7 +10,7 @@ maintainer="Enno Boland <gottox@voidlinux.org>"
 license="GPL-2.0-or-later"
 homepage="http://www.gnu.org/software/libtool"
 distfiles="${GNU_SITE}/libtool/$pkgname-$version.tar.xz"
-checksum=7c87a8c2c8c0fc9cd5019e402bed4292462d00a718a7cd5f11218153bf28b26f
+checksum=4f7f217f057ce655ff22559ad221a0fd8ef84ad1fc5fcb6990cecc333aa1635d
 
 pre_configure() {
 	touch aclocal.m4 libltdl/aclocal.m4 Makefile.am libltdl/Makefile.am Makefile.in libltdl/Makefile.in

From f3bd650f31809e9deaa9bfd420e832f4af07e317 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 17:20:16 -0700
Subject: [PATCH 4/8] libiberty-devel: update to 20220713.

---
 srcpkgs/libiberty-devel/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/libiberty-devel/template b/srcpkgs/libiberty-devel/template
index 1a4e1ca3d594..b04268908c2e 100644
--- a/srcpkgs/libiberty-devel/template
+++ b/srcpkgs/libiberty-devel/template
@@ -1,6 +1,6 @@
 # Template file for 'libiberty-devel'
 pkgname=libiberty-devel
-version=20210106
+version=20220713
 revision=1
 wrksrc=libiberty-${version}
 build_wrksrc=libiberty
@@ -11,7 +11,7 @@ maintainer="q66 <daniel@octaforge.org>"
 license="GPL-3.0-or-later"
 homepage="http://gcc.gnu.org/"
 distfiles="http://deb.debian.org/debian/pool/main/libi/libiberty/libiberty_${version}.orig.tar.xz"
-checksum=9df153d69914c0f5a9145e0abbb248e72feebab6777c712a30f1c3b8c19047d4
+checksum=b59050f48c8a0f9c9e6fba5d17c7a4f11d1329de0c0dca7331b767a6d2bbe8d9
 conflicts="binutils-devel<=2.35.1_3"
 
 CFLAGS="-fPIC"

From 936c4b5891dd215aa99776642b6d97707e77c955 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 23:31:45 -0700
Subject: [PATCH 5/8] glibc: update to 2.36.

---
 common/shlibs                                 |  60 ++--
 .../glibc/patches/glibc-c-utf8-locale.patch   | 286 ------------------
 srcpkgs/glibc/template                        |  62 ++--
 3 files changed, 55 insertions(+), 353 deletions(-)
 delete mode 100644 srcpkgs/glibc/patches/glibc-c-utf8-locale.patch

diff --git a/common/shlibs b/common/shlibs
index c6400b566966..65f4d1b62b61 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -17,38 +17,38 @@
 # one (order top->bottom) is preferred over the next ones.
 #
 libc.so musl-1.1.24_7
-libc.so.6 glibc-2.32_1
-libm.so.6 glibc-2.32_1
-libpthread.so.0 glibc-2.32_1
-librt.so.1 glibc-2.32_1
-libdl.so.2 glibc-2.32_1
-ld-linux-x86-64.so.2 glibc-2.32_1 x86_64
-ld-linux.so.2 glibc-2.32_1 i686
-ld-linux.so.3 glibc-2.32_1 armv5tel
-ld-linux-aarch64.so.1 glibc-2.32_1 aarch64
-ld64.so.2 glibc-2.32_1 ppc64
-ld.so.1 glibc-2.32_1 mips
-ld.so.1 glibc-2.32_1 ppc
-ld-linux-armhf.so.3 glibc-2.32_1
-libresolv.so.2 glibc-2.32_1
-libanl.so.1 glibc-2.32_1
-libthread_db.so.1 glibc-2.32_1
-libutil.so.1 glibc-2.32_1
-libnsl.so.1 glibc-2.32_1
-libnss_db.so.2 glibc-2.32_1
-libnss_files.so.2 glibc-2.32_1
-libnss_compat.so.2 glibc-2.32_1
-libnss_dns.so.2 glibc-2.32_1
-libnss_hesiod.so.2 glibc-2.32_1
-libcrypt.so.1 glibc-2.32_1
-libBrokenLocale.so.1 glibc-2.32_1
+libc.so.6 glibc-2.36_1
+libm.so.6 glibc-2.36_1
+libpthread.so.0 glibc-2.36_1
+librt.so.1 glibc-2.36_1
+libdl.so.2 glibc-2.36_1
+ld-linux-x86-64.so.2 glibc-2.36_1 x86_64
+ld-linux.so.2 glibc-2.36_1 i686
+ld-linux.so.3 glibc-2.36_1 armv5tel
+ld-linux-aarch64.so.1 glibc-2.36_1 aarch64
+ld64.so.2 glibc-2.36_1 ppc64
+ld.so.1 glibc-2.36_1 mips
+ld.so.1 glibc-2.36_1 ppc
+ld-linux-armhf.so.3 glibc-2.36_1
+libresolv.so.2 glibc-2.36_1
+libanl.so.1 glibc-2.36_1
+libthread_db.so.1 glibc-2.36_1
+libutil.so.1 glibc-2.36_1
+libnsl.so.1 glibc-2.36_1
+libnss_db.so.2 glibc-2.36_1
+libnss_files.so.2 glibc-2.36_1
+libnss_compat.so.2 glibc-2.36_1
+libnss_dns.so.2 glibc-2.36_1
+libnss_hesiod.so.2 glibc-2.36_1
+libcrypt.so.1 glibc-2.36_1
+libBrokenLocale.so.1 glibc-2.36_1
 libSimGearCore.so.2020.3.13 simgear-2020.3.13_1
 libSimGearScene.so.2020.3.13 simgear-2020.3.13_1
-libmemusage.so glibc-2.32_1
-libSegFault.so glibc-2.32_1
-libpcprofile.so glibc-2.32_1
-libcidn.so.1 glibc-2.32_1
-libmvec.so.1 glibc-2.32_1
+libmemusage.so glibc-2.36_1
+libSegFault.so glibc-2.36_1
+libpcprofile.so glibc-2.36_1
+libcidn.so.1 glibc-2.36_1
+libmvec.so.1 glibc-2.36_1
 libcddgmp.so.0 cddlib-0.94m_1
 libcdd.so.0 cddlib-0.94m_1
 libz.so.1 zlib-1.2.3_1
diff --git a/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch b/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch
deleted file mode 100644
index 7215e1558b62..000000000000
--- a/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch
+++ /dev/null
@@ -1,286 +0,0 @@
-Short description: Add C.UTF-8 support.
-Author(s): Fedora glibc team <glibc@lists.fedoraproject.org>
-Origin: PATCH
-Upstream status: not-submitted
-
-This patch needs to upstream as part of Carlos O'Donell
-<carlos@redhat.com>'s work on enabling upstream C.UTF-8 support. This
-work is currently blocked on cleaning up the test results to prove that
-full code-point sorting is working as intended.
-
-Note that this patch does not provide full code-point sorting as
-expected.
-
-This patch needs to upstream as soon as possible since it would be nice
-to have this in F29 and fixed.
-
-From 2eda7b462b415105f5a05c1323372d4e39d46439 Mon Sep 17 00:00:00 2001
-From: Mike FABIAN <mfabian@redhat.com>
-Date: Mon, 10 Aug 2015 15:58:12 +0200
-Subject: [PATCH] Add a C.UTF-8 locale
-
----
- localedata/SUPPORTED |   1 +
- localedata/locales/C | 238 +++++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 239 insertions(+)
- create mode 100644 localedata/locales/C
-
-diff --git a/localedata/SUPPORTED b/localedata/SUPPORTED
-index 8ca023e..2a78391 100644
---- a/localedata/SUPPORTED
-+++ b/localedata/SUPPORTED
-@@ -1,6 +1,7 @@
- # This file names the currently supported and somewhat tested locales.
- # If you have any additions please file a glibc bug report.
- SUPPORTED-LOCALES=\
-+C.UTF-8/UTF-8 \
- aa_DJ.UTF-8/UTF-8 \
- aa_DJ/ISO-8859-1 \
- aa_ER/UTF-8 \
-diff --git a/localedata/locales/C b/localedata/locales/C
-new file mode 100644
-index 0000000..fdf460e
---- /dev/null
-+++ b/localedata/locales/C
-@@ -0,0 +1,238 @@
-+escape_char /
-+comment_char %
-+% Locale for C locale in UTF-8
-+
-+LC_IDENTIFICATION
-+title      "C locale"
-+source     ""
-+address    ""
-+contact    ""
-+email      "mfabian@redhat.com"
-+tel        ""
-+fax        ""
-+language   "C"
-+territory  ""
-+revision   "1.0"
-+date       "2015-08-10"
-+%
-+category  "i18n:2012";LC_IDENTIFICATION
-+category  "i18n:2012";LC_CTYPE
-+category  "i18n:2012";LC_COLLATE
-+category  "i18n:2012";LC_TIME
-+category  "i18n:2012";LC_NUMERIC
-+category  "i18n:2012";LC_MONETARY
-+category  "i18n:2012";LC_MESSAGES
-+category  "i18n:2012";LC_PAPER
-+category  "i18n:2012";LC_NAME
-+category  "i18n:2012";LC_ADDRESS
-+category  "i18n:2012";LC_TELEPHONE
-+category  "i18n:2012";LC_MEASUREMENT
-+END LC_IDENTIFICATION
-+
-+LC_CTYPE
-+copy "i18n"
-+
-+translit_start
-+include "translit_combining";""
-+translit_end
-+
-+END LC_CTYPE
-+
-+LC_COLLATE
-+order_start forward
-+<U0000>
-+..
-+<UFFFF>
-+<U10000>
-+..
-+<U1FFFF>
-+<U20000>
-+..
-+<U2FFFF>
-+<UE0000>
-+..
-+<UEFFFF>
-+<UF0000>
-+..
-+<UFFFFF>
-+<U100000>
-+..
-+<U10FFFF>
-+UNDEFINED
-+order_end
-+END LC_COLLATE
-+
-+LC_MONETARY
-+% This is the 14652 i18n fdcc-set definition for
-+% the LC_MONETARY category
-+% (except for the int_curr_symbol and currency_symbol, they are empty in
-+% the 14652 i18n fdcc-set definition and also empty in
-+% glibc/locale/C-monetary.c. But localedef complains in that case).
-+%
-+% Using "USD" for int_curr_symbol. But maybe "XXX" would be better?
-+% XXX is "No currency" (https://en.wikipedia.org/wiki/ISO_4217)
-+int_curr_symbol     "<U0055><U0053><U0044><U0020>"
-+% Using "$" for currency_symbol. But maybe <U00A4> would be better?
-+% U+00A4 is the "generic currency symbol"
-+% (https://en.wikipedia.org/wiki/Currency_sign_%28typography%29)
-+currency_symbol     "<U0024>"
-+mon_decimal_point   "<U002E>"
-+mon_thousands_sep   ""
-+mon_grouping        -1
-+positive_sign       ""
-+negative_sign       "<U002D>"
-+int_frac_digits     -1
-+frac_digits         -1
-+p_cs_precedes       -1
-+int_p_sep_by_space  -1
-+p_sep_by_space      -1
-+n_cs_precedes       -1
-+int_n_sep_by_space  -1
-+n_sep_by_space      -1
-+p_sign_posn         -1
-+n_sign_posn         -1
-+%
-+END LC_MONETARY
-+
-+LC_NUMERIC
-+% This is the POSIX Locale definition for
-+% the LC_NUMERIC category.
-+%
-+decimal_point   "<U002E>"
-+thousands_sep   ""
-+grouping        -1
-+END LC_NUMERIC
-+
-+LC_TIME
-+% This is the POSIX Locale definition for
-+% the LC_TIME category.
-+%
-+% Abbreviated weekday names (%a)
-+abday       "<U0053><U0075><U006E>";"<U004D><U006F><U006E>";/
-+            "<U0054><U0075><U0065>";"<U0057><U0065><U0064>";/
-+            "<U0054><U0068><U0075>";"<U0046><U0072><U0069>";/
-+            "<U0053><U0061><U0074>"
-+
-+% Full weekday names (%A)
-+day         "<U0053><U0075><U006E><U0064><U0061><U0079>";/
-+            "<U004D><U006F><U006E><U0064><U0061><U0079>";/
-+            "<U0054><U0075><U0065><U0073><U0064><U0061><U0079>";/
-+            "<U0057><U0065><U0064><U006E><U0065><U0073><U0064><U0061><U0079>";/
-+            "<U0054><U0068><U0075><U0072><U0073><U0064><U0061><U0079>";/
-+            "<U0046><U0072><U0069><U0064><U0061><U0079>";/
-+            "<U0053><U0061><U0074><U0075><U0072><U0064><U0061><U0079>"
-+
-+% Abbreviated month names (%b)
-+abmon       "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
-+            "<U004D><U0061><U0072>";"<U0041><U0070><U0072>";/
-+            "<U004D><U0061><U0079>";"<U004A><U0075><U006E>";/
-+            "<U004A><U0075><U006C>";"<U0041><U0075><U0067>";/
-+            "<U0053><U0065><U0070>";"<U004F><U0063><U0074>";/
-+            "<U004E><U006F><U0076>";"<U0044><U0065><U0063>"
-+
-+% Full month names (%B)
-+mon         "<U004A><U0061><U006E><U0075><U0061><U0072><U0079>";/
-+            "<U0046><U0065><U0062><U0072><U0075><U0061><U0072><U0079>";/
-+            "<U004D><U0061><U0072><U0063><U0068>";/
-+            "<U0041><U0070><U0072><U0069><U006C>";/
-+            "<U004D><U0061><U0079>";/
-+            "<U004A><U0075><U006E><U0065>";/
-+            "<U004A><U0075><U006C><U0079>";/
-+            "<U0041><U0075><U0067><U0075><U0073><U0074>";/
-+            "<U0053><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";/
-+            "<U004F><U0063><U0074><U006F><U0062><U0065><U0072>";/
-+            "<U004E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/
-+            "<U0044><U0065><U0063><U0065><U006D><U0062><U0065><U0072>"
-+
-+% Week description, consists of three fields:
-+% 1. Number of days in a week.
-+% 2. Gregorian date that is a first weekday (19971130 for Sunday, 19971201 for Monday).
-+% 3. The weekday number to be contained in the first week of the year.
-+%
-+% ISO 8601 conforming applications should use the values 7, 19971201 (a
-+% Monday), and 4 (Thursday), respectively.
-+week    7;19971201;4
-+first_weekday	1
-+first_workday	1
-+
-+% Appropriate date and time representation (%c)
-+%	"%a %b %e %H:%M:%S %Y"
-+d_t_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0059>"
-+
-+% Appropriate date representation (%x)
-+%	"%m/%d/%y"
-+d_fmt   "<U0025><U006D><U002F><U0025><U0064><U002F><U0025><U0079>"
-+
-+% Appropriate time representation (%X)
-+%	"%H:%M:%S"
-+t_fmt   "<U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053>"
-+
-+% Appropriate AM/PM time representation (%r)
-+%	"%I:%M:%S %p"
-+t_fmt_ampm "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0070>"
-+
-+% Equivalent of AM/PM (%p)      "AM"/"PM"
-+%
-+am_pm	"<U0041><U004D>";"<U0050><U004D>"
-+
-+% Appropriate date representation (date(1))   "%a %b %e %H:%M:%S %Z %Y"
-+date_fmt	"<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U005A><U0020><U0025><U0059>"
-+END LC_TIME
-+
-+LC_MESSAGES
-+% This is the POSIX Locale definition for
-+% the LC_NUMERIC category.
-+%
-+yesexpr "<U005E><U005B><U0079><U0059><U005D>"
-+noexpr  "<U005E><U005B><U006E><U004E><U005D>"
-+yesstr  "<U0059><U0065><U0073>"
-+nostr   "<U004E><U006F>"
-+END LC_MESSAGES
-+
-+LC_PAPER
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_PAPER category.
-+% (A4 paper, this is also used in the built in C/POSIX
-+% locale in glibc/locale/C-paper.c)
-+height   297
-+width    210
-+END LC_PAPER
-+
-+LC_NAME
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_NAME category.
-+% "%p%t%g%t%m%t%f"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-name.c)
-+name_fmt    "<U0025><U0070><U0025><U0074><U0025><U0067><U0025><U0074>/
-+<U0025><U006D><U0025><U0074><U0025><U0066>"
-+END LC_NAME
-+
-+LC_ADDRESS
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_ADDRESS category.
-+% "%a%N%f%N%d%N%b%N%s %h %e %r%N%C-%z %T%N%c%N"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-address.c)
-+postal_fmt    "<U0025><U0061><U0025><U004E><U0025><U0066><U0025><U004E>/
-+<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
-+<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
-+<U004E><U0025><U0043><U002D><U0025><U007A><U0020><U0025><U0054><U0025>/
-+<U004E><U0025><U0063><U0025><U004E>"
-+END LC_ADDRESS
-+
-+LC_TELEPHONE
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_TELEPHONE category.
-+% "+%c %a %l"
-+tel_int_fmt    "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025>/
-+<U006C>"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-telephone.c)
-+END LC_TELEPHONE
-+
-+LC_MEASUREMENT
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_MEASUREMENT category.
-+% (same as in the built in C/POSIX locale in glibc/locale/C-measurement.c)
-+%metric
-+measurement    1
-+END LC_MEASUREMENT
-+
--- 
-2.4.3
-
diff --git a/srcpkgs/glibc/template b/srcpkgs/glibc/template
index c62a4d2aedf1..139aab865864 100644
--- a/srcpkgs/glibc/template
+++ b/srcpkgs/glibc/template
@@ -1,14 +1,14 @@
 # Template file for 'glibc'
 pkgname=glibc
-version=2.32
-revision=2
+version=2.36
+revision=1
 bootstrap=yes
 short_desc="GNU C library"
 maintainer="Enno Boland <gottox@voidlinux.org>"
 license="GPL-2.0-or-later, LGPL-2.1-or-later, BSD-3-Clause"
 homepage="http://www.gnu.org/software/libc"
 distfiles="${GNU_SITE}/glibc/glibc-${version}.tar.xz"
-checksum=1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum=1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
 # Do not strip these files, objcopy errors out.
 nostrip_files="
 	XBS5_ILP32_OFFBIG
@@ -20,27 +20,28 @@ nostrip_files="
 	POSIX_V6_LP64_OFF64
 	POSIX_V7_LP64_OFF64
 	XBS5_LP64_OFF64
-	ld-${version}.so
-	libdl-${version}.so
-	libanl-${version}.so
-	libcidn-${version}.so
-	libresolv-${version}.so
-	libcrypt-${version}.so
-	libpthread-${version}.so
-	libm-${version}.so
-	libutil-${version}.so
-	libthread_db-1.0.so
-	librt-${version}.so
-	libnsl-${version}.so
-	libc-${version}.so
-	libBrokenLocale-${version}.so
-	libnss_compat-${version}.so
-	libnss_db-${version}.so
-	libnss_dns-${version}.so
-	libnss_files-${version}.so
-	libnss_hesiod-${version}.so
-	libnss_nisplus-${version}.so
-	libnss_nis-${version}.so"
+	ld-linux-x86-64.so.2
+	ld-linux.so.2
+	ld-linux.so.3
+	ld-linux-aarch64.so.1
+	ld64.so.2
+	ld.so.1
+	ld-linux-armhf.so.3
+	libresolv.so.2
+	libcrypt.so.1
+	libm.so.6
+	libthread_db.so.1
+	libnsl.so.1
+	libc.so.6
+	libc_malloc_debug.so.0
+	libmemusage.so
+	libmvec.so.1
+	libBrokenLocale.so.1
+	libnss_compat.so.2
+	libnss_db.so.2
+	libnss_dns.so.2
+	libnss_files.so.2
+	libnss_hesiod.so.2"
 
 conf_files="
 	/etc/rpc
@@ -54,7 +55,6 @@ lib32files="/usr/lib/gconv/gconv-modules"
 lib32symlinks="ld-linux.so.2"
 # There's no point in building this for musl.
 archs="~*-musl"
-nopie=yes
 
 do_configure() {
 	mkdir build
@@ -163,18 +163,6 @@ do_install() {
 	rm -f ${DESTDIR}/usr/bin/z{dump,ic}
 
 	mv ${DESTDIR}/usr/sbin/* ${DESTDIR}/usr/bin
-
-	# Create xbps.d(5) arch override file for 32-bit architectures
-	# 32-bit userlands may be used with 64-bit kernels and then
-	# xbps will report an incorrect architecture by default
-	case "$XBPS_TARGET_MACHINE" in
-		i686|ppc|ppcle|armv*)
-			vmkdir usr/share/xbps.d
-			echo "architecture=${XBPS_TARGET_MACHINE}" > \
-				${DESTDIR}/usr/share/xbps.d/arch-32bit.conf
-			;;
-		*) ;;
-	esac
 }
 
 glibc-devel_package() {

From 9f0bb0215e0ffcaa5fe46b357ecbc3b59e7b72f9 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Sun, 14 Aug 2022 19:29:36 -0700
Subject: [PATCH 6/8] build-style/void-cross: Update flags for gcc12

gcov can't be built without libc:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100289
---
 common/build-style/void-cross.sh | 1 +
 1 file changed, 1 insertion(+)

diff --git a/common/build-style/void-cross.sh b/common/build-style/void-cross.sh
index 92f03f8130f5..c24013755704 100644
--- a/common/build-style/void-cross.sh
+++ b/common/build-style/void-cross.sh
@@ -132,6 +132,7 @@ _void_cross_build_bootstrap_gcc() {
 		--disable-libssp \
 		--disable-libitm \
 		--disable-libatomic \
+		--disable-gcov \
 		--disable-threads \
 		--disable-sjlj-exceptions \
 		--enable-languages=c \

From 771a941b24410fa91e9d609a8cbef8ffaf4cb2bb Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 20:08:52 -0700
Subject: [PATCH 7/8] openssh: suppress werror on gcc12

---
 srcpkgs/openssh/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/openssh/template b/srcpkgs/openssh/template
index 02a2dec35f42..6e8e343a9dca 100644
--- a/srcpkgs/openssh/template
+++ b/srcpkgs/openssh/template
@@ -40,7 +40,7 @@ if [ "$build_option_ldns" -a -z "$build_option_ssl" ]; then
 	broken="option 'ldns' requires option 'ssl'"
 fi
 
-CFLAGS="-Wno-format-truncation -Wno-stringop-truncation"
+CFLAGS="-Wno-format-truncation -Wno-stringop-truncation -Wno-error=maybe-uninitialized"
 
 case $XBPS_TARGET_MACHINE in
 	i686-musl)

From 7282249152fb9b23e2083c71c0ddc3c19b22e5c0 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 20:09:31 -0700
Subject: [PATCH 8/8] linux5.18: update dotconfigs for gcc12

---
 srcpkgs/linux5.18/files/x86_64-dotconfig | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/srcpkgs/linux5.18/files/x86_64-dotconfig b/srcpkgs/linux5.18/files/x86_64-dotconfig
index 4e73a3195d40..ea6204868e23 100644
--- a/srcpkgs/linux5.18/files/x86_64-dotconfig
+++ b/srcpkgs/linux5.18/files/x86_64-dotconfig
@@ -512,6 +512,7 @@ CONFIG_RETHUNK=y
 CONFIG_CPU_UNRET_ENTRY=y
 CONFIG_CPU_IBPB_ENTRY=y
 CONFIG_CPU_IBRS_ENTRY=y
+CONFIG_SLS=y
 CONFIG_ARCH_HAS_ADD_PAGES=y
 CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y
 
@@ -10060,8 +10061,11 @@ CONFIG_LSM="yama,loadpin,safesetid,integrity"
 # Memory initialization
 #
 CONFIG_INIT_STACK_NONE=y
+# CONFIG_INIT_STACK_ALL_PATTERN is not set
+# CONFIG_INIT_STACK_ALL_ZERO is not set
 CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
 # CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
+# CONFIG_ZERO_CALL_USED_REGS is not set
 # end of Memory initialization
 # end of Kernel hardening options
 # end of Security options
@@ -10538,6 +10542,7 @@ CONFIG_HAVE_ARCH_KGDB=y
 CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
 # CONFIG_UBSAN is not set
 CONFIG_HAVE_ARCH_KCSAN=y
+# CONFIG_KCSAN is not set
 # end of Generic Kernel Debugging Instruments
 
 #

^ permalink raw reply	[flat|nested] 144+ messages in thread

* Re: [PR PATCH] [Updated] gcc: update to 12.1.0
  2022-01-06  6:15 [PR PATCH] gcc: update to 11.2.1git20211128 Oreo639
                   ` (17 preceding siblings ...)
  2022-08-15  2:31 ` oreo639
@ 2022-08-15  3:20 ` oreo639
  2022-08-15  5:58 ` oreo639
                   ` (123 subsequent siblings)
  142 siblings, 0 replies; 144+ messages in thread
From: oreo639 @ 2022-08-15  3:20 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1717 bytes --]

There is an updated pull request by oreo639 against master on the void-packages repository

https://github.com/oreo639/void-packages gcc11
https://github.com/void-linux/void-packages/pull/34902

gcc: update to 12.1.0
<!-- Uncomment relevant sections and delete options which are not applicable -->
[ci skip]

Edit: this PR had been updated for gcc 12.1.0

This PR depends on: https://github.com/void-linux/void-packages/pull/32330

I tested this PR with glibc and after updating glibc, it seems to work fine.
I also tested this PR with x86_64-musl, and it appears to run fine in a musl chroot, and recompiling and installing musl with gcc 12 doesn't appear to result in any issues. (more testing is needed)

Please let me know if there are any issues.

I compiled base-system to ensure that compiles and it appears to work fine.

#### Testing the changes
- I tested the changes in this PR: **briefly**

<!--
#### New package
- This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please [skip CI](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration)
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->

#### Local build testing
- I built this PR locally for my native architecture, (x86_64-glibc)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - x86_64-musl

A patch file from https://github.com/void-linux/void-packages/pull/34902.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-gcc11-34902.patch --]
[-- Type: text/x-diff, Size: 61260 bytes --]

From bb6c79ed935b0a7513c85b5987c41aefcfaa0b00 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 01:14:21 -0700
Subject: [PATCH 1/9] binutils: update to 2.38.

---
 ...e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch | 60 -----------------
 .../patches/ppc64-revert-gnu-attributes.patch | 66 +++++--------------
 srcpkgs/binutils/template                     |  9 +--
 3 files changed, 22 insertions(+), 113 deletions(-)
 delete mode 100644 srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch

diff --git a/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch b/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch
deleted file mode 100644
index a55432d83cff..000000000000
--- a/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff Mon Sep 17 00:00:00 2001
-From: "H.J. Lu" <hjl.tools@gmail.com>
-Date: Mon, 16 Nov 2020 06:37:53 -0800
-Subject: [PATCH] elf: Set rel_from_abs to 1 for __ehdr_start
-
-bfdlink.h has
-
-  /* Symbol will be converted from absolute to section-relative.  Set for
-     symbols defined by a script from "dot" (also SEGMENT_START or ORIGIN)
-     outside of an output section statement.  */
-  unsigned int rel_from_abs : 1;
-
-linker.c has
-
-.{* Return TRUE if the symbol described by a linker hash entry H
-.   is going to be absolute.  Linker-script defined symbols can be
-.   converted from absolute to section-relative ones late in the
-.   link.  Use this macro to correctly determine whether the symbol
-.   will actually end up absolute in output.  *}
-.#define bfd_is_abs_symbol(H) \
-.  (((H)->type == bfd_link_hash_defined \
-.    || (H)->type == bfd_link_hash_defweak) \
-.   && bfd_is_abs_section ((H)->u.def.section) \
-.   && !(H)->rel_from_abs)
-.
-
-Set rel_from_abs to 1 for __ehdr_start which will be converted from
-absolute to section-relative in assign_file_positions_for_load_sections.
-
-	PR ld/26869
-	* ldelf.c (ldelf_before_allocation): Set rel_from_abs to 1 for
-	__ehdr_start.
-	* testsuite/ld-i386/i386.exp: Run pr26869.
-	* testsuite/ld-i386/pr26869.d: New file.
-	* testsuite/ld-i386/pr26869.s: Likewise.
-
-(cherry picked from commit cbd5b99cce073273f668b154d4514e8e7e7ccc51)
----
- ld/ChangeLog                   |  9 +++++++++
- ld/ldelf.c                     |  2 ++
- ld/testsuite/ld-i386/i386.exp  |  1 +
- ld/testsuite/ld-i386/pr26869.d | 14 ++++++++++++++
- ld/testsuite/ld-i386/pr26869.s |  3 +++
- 5 files changed, 29 insertions(+)
- create mode 100644 ld/testsuite/ld-i386/pr26869.d
- create mode 100644 ld/testsuite/ld-i386/pr26869.s
-
-diff --git a/ld/ldelf.c b/ld/ldelf.c
-index bada3ade2d7..831d032fe56 100644
---- a/ld/ldelf.c
-+++ b/ld/ldelf.c
-@@ -1589,6 +1589,8 @@ ldelf_before_allocation (char *audit, char *depaudit,
- 		      (char *) &ehdr_start->u + sizeof ehdr_start->u.def.next,
- 		      sizeof ehdr_start_save_u);
- 	      ehdr_start->type = bfd_link_hash_defined;
-+	      /* It will be converted to section-relative later.  */
-+	      ehdr_start->rel_from_abs = 1;
- 	      ehdr_start->u.def.section = bfd_abs_section_ptr;
- 	      ehdr_start->u.def.value = 0;
- 	    }
diff --git a/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch b/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
index 5de937f4fcce..1c208dd8955c 100644
--- a/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
+++ b/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
@@ -1,39 +1,24 @@
-From b1faf99f3e546df2cd302bb1ad36a2078224fe8b Mon Sep 17 00:00:00 2001
+From bbf05b742fde518fb97c789b043fe0d3aaf549f0 Mon Sep 17 00:00:00 2001
 From: Ariadne Conill <ariadne@dereferenced.org>
-Date: Fri, 30 Oct 2020 16:59:48 -0600
+Date: Tue, 21 Sep 2021 14:53:13 +0000
 Subject: [PATCH] Revert "PR25882, .gnu.attributes are not checked for shared
  libraries"
 
+This revert is needed to avoid wrongly tagging objects with the incompatible
+IBM long double ABI, which is not supported by musl and will result in
+linking errors if used.
+
 This reverts commit a8acd6eeb6dc2cc5460ece90f90ebe36b56b20ba.
 ---
- bfd/ChangeLog     | 6 ------
- bfd/elf32-tic6x.c | 3 ---
- ld/ChangeLog      | 6 ------
- ld/ldlang.c       | 9 ++++-----
- 4 files changed, 4 insertions(+), 20 deletions(-)
+ bfd/elf32-tic6x.c |  3 ---
+ ld/ldlang.c       | 10 ++++------
+ 2 files changed, 4 insertions(+), 9 deletions(-)
 
-diff --git a/bfd/ChangeLog b/bfd/ChangeLog
-index 9fac12538a..b5461494e8 100644
---- a/bfd/ChangeLog
-+++ b/bfd/ChangeLog
-@@ -1422,12 +1422,6 @@
- 	accessing root.u.def of symbols.  Also check root.u.def.section
- 	is non-NULL.  Reverse tests so as to make the logic positive.
- 
--2020-05-01  Alan Modra  <amodra@gmail.com>
--
--	PR 25882
--	* elf32-tic6x.c (elf32_tic6x_merge_attributes): Don't transfer
--	Tag_ABI_PIC or Tag_ABI_PID from dynamic objects to the output.
--
- 2020-05-01  Alan Modra  <amodra@gmail.com>
- 
- 	PR 25882
 diff --git a/bfd/elf32-tic6x.c b/bfd/elf32-tic6x.c
-index b8b916bfd3..91bb6a10b1 100644
+index 5754f3cb860..3ad1d612749 100644
 --- a/bfd/elf32-tic6x.c
 +++ b/bfd/elf32-tic6x.c
-@@ -3748,9 +3748,6 @@ elf32_tic6x_merge_attributes (bfd *ibfd, struct bfd_link_info *info)
+@@ -3735,9 +3735,6 @@ elf32_tic6x_merge_attributes (bfd *ibfd, struct bfd_link_info *info)
  
  	case Tag_ABI_PIC:
  	case Tag_ABI_PID:
@@ -43,36 +28,20 @@ index b8b916bfd3..91bb6a10b1 100644
  	  if (out_attr[i].i > in_attr[i].i)
  	    out_attr[i].i = in_attr[i].i;
  	  break;
-diff --git a/ld/ChangeLog b/ld/ChangeLog
-index 4eec7d2977..b93452f70c 100644
---- a/ld/ChangeLog
-+++ b/ld/ChangeLog
-@@ -1319,12 +1319,6 @@
- 	* testsuite/ld-aarch64/farcall-group.d: New test driver.
- 	* testsuite/ld-aarch64/aarch64-elf.exp: Run the new test.
- 
--2020-05-01  Alan Modra  <amodra@gmail.com>
--
--	PR 25882
--	* ldlang.c (lang_check): Call bfd_merge_private_bfd_data for
--	shared libraries.
--
- 2020-05-01  Alan Modra  <amodra@gmail.com>
- 
- 	* po/BLD-POTFILES.in: Regenerate.
 diff --git a/ld/ldlang.c b/ld/ldlang.c
-index 9977195074..173d8ec349 100644
+index 37b64c89ee1..f13beaef9d9 100644
 --- a/ld/ldlang.c
 +++ b/ld/ldlang.c
-@@ -6972,12 +6972,11 @@ lang_check (void)
+@@ -7071,13 +7071,11 @@ lang_check (void)
  		   bfd_printable_name (input_bfd), input_bfd,
  		   bfd_printable_name (link_info.output_bfd));
  	}
 -
 -      /* If the input bfd has no contents, it shouldn't set the
 -	 private data of the output bfd.  */
--      else if ((input_bfd->flags & DYNAMIC) != 0
--	       || bfd_count_sections (input_bfd) != 0)
+-      else if (!file->flags.just_syms
+-	       && ((input_bfd->flags & DYNAMIC) != 0
+-		   || bfd_count_sections (input_bfd) != 0))
 +      else if (bfd_count_sections (input_bfd))
  	{
 +	  /* If the input bfd has no contents, it shouldn't set the
@@ -82,5 +51,4 @@ index 9977195074..173d8ec349 100644
  
  	  /* If we aren't supposed to warn about mismatched input
 -- 
-2.29.2
-
+2.33.0
diff --git a/srcpkgs/binutils/template b/srcpkgs/binutils/template
index 6270f8618c87..b2b1c47d22fc 100644
--- a/srcpkgs/binutils/template
+++ b/srcpkgs/binutils/template
@@ -1,19 +1,20 @@
 # Template file for 'binutils'
 pkgname=binutils
-version=2.35.1
-revision=4
+version=2.38
+revision=1
 bootstrap=yes
+hostmakedepends="pkg-config"
 makedepends="zlib-devel"
 short_desc="GNU binary utilities"
 maintainer="Enno Boland <gottox@voidlinux.org>"
 license="GPL-3.0-or-later"
 homepage="http://www.gnu.org/software/binutils/"
 distfiles="${GNU_SITE}/$pkgname/$pkgname-$version.tar.xz"
-checksum=3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
+checksum=e316477a914f567eccc34d5d29785b8b0f5a10208d36bbacedcc39048ecfe024
 
 subpackages="binutils-doc"
 if [ "$CHROOT_READY" ]; then
-	hostmakedepends="flex perl texinfo"
+	hostmakedepends+=" flex perl texinfo"
 	makedepends+=" elfutils-devel"
 	checkdepends="bc"
 	depends="binutils-doc"

From 81dea5b96efffd0287e26041a2141acc32a3ff21 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 06:26:59 -0700
Subject: [PATCH 2/9] gcc: update to 12.1.0.

---
 common/shlibs                                 |  10 +-
 srcpkgs/gcc/files/gccgo-musl.patch            |  74 +++--------
 srcpkgs/gcc/files/libgnarl-musl.patch         |  18 +--
 srcpkgs/gcc/files/libssp-musl.patch           |  10 +-
 ...c21f3f5726823e19728fdd1571a14aae0fb3.patch | 105 ++++++++++++++++
 ...08065bdd36fb1a9b6aad9666b1edb5e06474.patch | 115 ++++++++++++++++++
 ...65517a59565758107c5b1a51a5fa382f8d1a.patch |  32 +++++
 srcpkgs/gcc/patches/libffi_gnulinux.patch     |  11 --
 .../gcc/patches/libgcc-ibm128-no-tag.patch    |  10 +-
 srcpkgs/gcc/patches/mips-sgidefs_h.patch      |   3 +-
 srcpkgs/gcc/template                          |  25 ++--
 11 files changed, 305 insertions(+), 108 deletions(-)
 create mode 100644 srcpkgs/gcc/patches/3b21c21f3f5726823e19728fdd1571a14aae0fb3.patch
 create mode 100644 srcpkgs/gcc/patches/49d508065bdd36fb1a9b6aad9666b1edb5e06474.patch
 create mode 100644 srcpkgs/gcc/patches/f35d65517a59565758107c5b1a51a5fa382f8d1a.patch
 delete mode 100644 srcpkgs/gcc/patches/libffi_gnulinux.patch

diff --git a/common/shlibs b/common/shlibs
index 61924610cc52..c6400b566966 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -60,7 +60,7 @@ libcc1plugin.so.0 gcc-6.2.1_1
 libitm.so.1 libitm-4.7.3_1
 liblto_plugin.so.0 gcc-4.7.3_1
 libgcc_s.so.1 libgcc-4.4.0_1
-libgo.so.16 libgo-10.2.0_1
+libgo.so.21 libgo-12.1.0_1
 libgccjit.so.0 libgccjit-10.2.1pre1_1
 libperl.so.5.34 perl-5.34.0_1
 libgmp.so.10 gmp-5.0.1_1
@@ -849,8 +849,8 @@ libgdkmm-2.4.so.1 gtkmm2-2.24.0_1
 libgtkmm-2.4.so.1 gtkmm2-2.24.0_1
 libquadmath.so.0 libquadmath-4.4.0_1
 libgfortran.so.5 libgfortran-8.2.0_1
-libgnarl-10.so libada-10.2.0_1
-libgnat-10.so libada-10.2.0_1
+libgnarl-12.so libada-12.1.0_1
+libgnat-12.so libada-12.1.0_1
 libwebp.so.7 libwebp-0.6.0_1
 libwebpmux.so.3 libwebp-0.6.0_1
 libwebpdemux.so.2 libwebp-0.5.0_1
@@ -1701,8 +1701,8 @@ libextractor.so.3 libextractor-1.1_1
 libextractor_common.so.1 libextractor-1.1_1
 libpano13.so.3 libpano13-2.9.19_1
 libubsan.so.1 libsanitizer-8.2.0_1
-libtsan.so.0 libsanitizer-6.3.0_1
-libasan.so.6 libsanitizer-10.2.0_1
+libtsan.so.2 libsanitizer-12.1.0_1
+libasan.so.8 libsanitizer-12.1.0_1
 liblsan.so.0 libsanitizer-6.3.0_1
 libvtv.so.0 libvtv-6.3.0_1
 libatomic.so.1 libatomic-4.9.0_1
diff --git a/srcpkgs/gcc/files/gccgo-musl.patch b/srcpkgs/gcc/files/gccgo-musl.patch
index 9762739615af..632ef951097b 100644
--- a/srcpkgs/gcc/files/gccgo-musl.patch
+++ b/srcpkgs/gcc/files/gccgo-musl.patch
@@ -53,17 +53,6 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
  	p := sysMmap(addr, n, prot, flags, fd, off)
  	if uintptr(p) == _MAP_FAILED {
  		return nil, errno()
---- a/libgo/go/runtime/signal_gccgo.go
-+++ b/libgo/go/runtime/signal_gccgo.go
-@@ -111,7 +111,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")
 --- a/libgo/go/syscall/errstr.go
 +++ b/libgo/go/syscall/errstr.go
 @@ -5,7 +5,6 @@
@@ -140,55 +129,6 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
  		plwoff = &lwoff
  	}
  	n, err = splice(rfd, plroff, wfd, plwoff, len, flags)
---- 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
---- a/libgo/runtime/go-signal.c	2020-07-23 08:35:19.004402840 +0200
-+++ b/libgo/runtime/go-signal.c	2020-08-09 21:35:54.352886232 +0200
-@@ -224,7 +224,11 @@
- #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;
-+	#ifdef __PPC64__
-+		ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.gp_regs[32];
-+	#else
-+		ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.gregs[32];
-+	#endif
- #elif defined(__PPC__) && defined(_AIX)
- 	ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.jmp_context.iar;
- #elif defined(__aarch64__) && defined(__linux__)
-@@ -333,7 +337,7 @@
- 		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(__linux__) && defined(__GLIBC__)
- 	  {
- 		mcontext_t *m = &((ucontext_t*)(context))->uc_mcontext;
- 		int i;
 --- a/libgo/runtime/runtime.h
 +++ b/libgo/runtime/runtime.h
 @@ -500,10 +500,13 @@ int __go_setcontext(__go_context_t*);
@@ -220,3 +160,17 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
  #if defined(HAVE_SYS_UTSNAME_H)
  #include <sys/utsname.h>
  #endif
+--- a/libgo/go/runtime/os_linux.go
++++ a/libgo/go/runtime/os_linux.go
+@@ -363,9 +363,9 @@
+ 
+ 	var timerid int32
+ 	var sevp _sigevent
+-	sevp.sigev_notify = _SIGEV_THREAD_ID
++	sevp.sigev_notify = 4
+ 	sevp.sigev_signo = _SIGPROF
+-	*((*int32)(unsafe.Pointer(&sevp._sigev_un))) = int32(mp.procid)
++	*((*int32)(unsafe.Pointer(&sevp.sigev_notify_function))) = int32(mp.procid)
+ 	ret := timer_create(_CLOCK_THREAD_CPUTIME_ID, &sevp, &timerid)
+ 	if ret != 0 {
+ 		// If we cannot create a timer for this M, leave profileTimerValid false
diff --git a/srcpkgs/gcc/files/libgnarl-musl.patch b/srcpkgs/gcc/files/libgnarl-musl.patch
index 99a734c42c90..91c95949e0e9 100644
--- a/srcpkgs/gcc/files/libgnarl-musl.patch
+++ b/srcpkgs/gcc/files/libgnarl-musl.patch
@@ -5,7 +5,7 @@ Reason: Patch libgnarl to not use function missing from musl.
 diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/libgnarl/s-osinte__linux.ads
 --- a/gcc/ada/libgnarl/s-osinte__linux.ads	2018-01-11 00:55:25.000000000 -0800
 +++ b/gcc/ada/libgnarl/s-osinte__linux.ads	2018-11-01 16:16:23.372452951 -0700
-@@ -394,12 +394,6 @@ package System.OS_Interface is
+@@ -403,12 +403,6 @@ package System.OS_Interface is
     PTHREAD_RWLOCK_PREFER_WRITER_NP              : constant := 1;
     PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP : constant := 2;
  
@@ -18,7 +18,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/l
     function pthread_rwlock_init
       (mutex : access pthread_rwlock_t;
        attr  : access pthread_rwlockattr_t) return int;
-@@ -464,11 +458,6 @@ package System.OS_Interface is
+@@ -470,11 +464,6 @@ package System.OS_Interface is
        protocol : int) return int;
     pragma Import (C, pthread_mutexattr_setprotocol);
  
@@ -33,7 +33,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/l
 diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/libgnarl/s-taprop__linux.adb
 --- a/gcc/ada/libgnarl/s-taprop__linux.adb	2018-01-11 00:55:25.000000000 -0800
 +++ b/gcc/ada/libgnarl/s-taprop__linux.adb	2018-11-13 11:28:36.433964449 -0800
-@@ -202,9 +202,6 @@ package body System.Task_Primitives.Oper
+@@ -198,9 +198,6 @@ package body System.Task_Primitives.Oper
     pragma Import
       (C, GNAT_pthread_condattr_setup, "__gnat_pthread_condattr_setup");
  
@@ -43,7 +43,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
     --  We do not have pragma Linker_Options ("-lcap"); here, because this
     --  library is not present on many Linux systems. 'libcap' is the Linux
     --  "capabilities" library, called by __gnat_has_cap_sys_nice.
-@@ -214,38 +211,6 @@ package body System.Task_Primitives.Oper
+@@ -210,38 +207,6 @@ package body System.Task_Primitives.Oper
     --  Convert Ada priority to Linux priority. Priorities are 1 .. 99 on
     --  GNU/Linux, so we map 0 .. 98 to 1 .. 99.
  
@@ -76,13 +76,13 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
 -      return Ceiling_Support;
 -   end Get_Ceiling_Support;
 -
--   pragma Warnings (Off, "non-static call not allowed in preelaborated unit");
+-   pragma Warnings (Off, "non-preelaborable call not allowed*");
 -   Ceiling_Support : constant Boolean := Get_Ceiling_Support;
--   pragma Warnings (On, "non-static call not allowed in preelaborated unit");
+-   pragma Warnings (On, "non-preelaborable call not allowed*");
     --  True if the locking policy is Ceiling_Locking, and the current process
     --  has permission to use this policy. The process has permission if it is
     --  running as 'root', or if the capability was set by the setcap command,
-@@ -348,7 +313,9 @@ package body System.Task_Primitives.Oper
+@@ -344,7 +309,9 @@ package body System.Task_Primitives.Oper
     -- Init_Mutex --
     ----------------
  
@@ -92,7 +92,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
        Mutex_Attr : aliased pthread_mutexattr_t;
        Result, Result_2 : C.int;
  
-@@ -360,16 +327,7 @@ package body System.Task_Primitives.Oper
+@@ -356,16 +323,7 @@ package body System.Task_Primitives.Oper
           return Result;
        end if;
  
@@ -110,7 +110,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
           Result := pthread_mutexattr_setprotocol
             (Mutex_Attr'Access, PTHREAD_PRIO_INHERIT);
           pragma Assert (Result = 0);
-@@ -409,11 +367,6 @@ package body System.Task_Primitives.Oper
+@@ -405,11 +363,6 @@ package body System.Task_Primitives.Oper
              Result := pthread_rwlockattr_init (RWlock_Attr'Access);
              pragma Assert (Result = 0);
  
diff --git a/srcpkgs/gcc/files/libssp-musl.patch b/srcpkgs/gcc/files/libssp-musl.patch
index b21a2c29e57c..99f248401a1c 100644
--- a/srcpkgs/gcc/files/libssp-musl.patch
+++ b/srcpkgs/gcc/files/libssp-musl.patch
@@ -2,9 +2,9 @@ First part taken from Alpine.
 
 Second part added to prevent gccgo from thinking it can -fsplit-stack on musl.
 
---- a/gcc/gcc.c
-+++ b/gcc/gcc.c
-@@ -874,10 +874,15 @@ proper position among the other output files.  */
+--- a/gcc/gcc.cc
++++ b/gcc/gcc.cc
+@@ -984,10 +984,15 @@ proper position among the other output f
  #define LINK_GCC_C_SEQUENCE_SPEC "%G %{!nolibc:%L %G}"
  #endif
  
@@ -22,10 +22,10 @@ Second part added to prevent gccgo from thinking it can -fsplit-stack on musl.
  #else
  #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
  		       "|fstack-protector-strong|fstack-protector-explicit" \
-@@ -1155,7 +1160,7 @@ static const char *cc1_options =
+@@ -1280,7 +1285,7 @@ static const char *cc1_options =
   %{-version:--version}\
   %{-help=*:--help=%*}\
-  %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %b.s}}}\
+  %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %w%b.s}}}\
 - %{fsyntax-only:-o %j} %{-param*}\
 + %{fsyntax-only:-o %j} %{-param*} " NO_SSP_SPEC "\
   %{coverage:-fprofile-arcs -ftest-coverage}\
diff --git a/srcpkgs/gcc/patches/3b21c21f3f5726823e19728fdd1571a14aae0fb3.patch b/srcpkgs/gcc/patches/3b21c21f3f5726823e19728fdd1571a14aae0fb3.patch
new file mode 100644
index 000000000000..00929202a503
--- /dev/null
+++ b/srcpkgs/gcc/patches/3b21c21f3f5726823e19728fdd1571a14aae0fb3.patch
@@ -0,0 +1,105 @@
+From 3b21c21f3f5726823e19728fdd1571a14aae0fb3 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <siarheit@google.com>
+Date: Mon, 27 Jun 2022 13:27:24 +0100
+Subject: [PATCH] c++: avoid <memory> poisoning on musl [PR106102]
+
+On musl <pthread.h> uses calloc() (via <sched.h>). <memory> includes
+it indirectly and exposes use of poisoned calloc() when module code
+is built:
+
+    /build/build/./prev-gcc/xg++ ... ../../gcc-13-20220626/gcc/cp/mapper-resolver.cc
+        In file included from /<<NIX>>/musl-1.2.3-dev/include/pthread.h:30,
+                 from /build/build/prev-x86_64-unknown-linux-musl/libstdc++-v3/include/x86_64-unknown-linux-musl/bits/gthr-default.h:35,
+                 ....
+                 from /build/build/prev-x86_64-unknown-linux-musl/libstdc++-v3/include/memory:77,
+                 from ../../gcc-13-20220626/gcc/../libcody/cody.hh:24,
+                 from ../../gcc-13-20220626/gcc/cp/../../c++tools/resolver.h:25,
+                 from ../../gcc-13-20220626/gcc/cp/../../c++tools/resolver.cc:23,
+                 from ../../gcc-13-20220626/gcc/cp/mapper-resolver.cc:32:
+    /<<NIX>>/musl-1.2.3-dev/include/sched.h:84:7: error: attempt to use poisoned "calloc"
+       84 | void *calloc(size_t, size_t);
+          |       ^
+    /<<NIX>>/musl-1.2.3-dev/include/sched.h:124:36: error: attempt to use poisoned "calloc"
+      124 | #define CPU_ALLOC(n) ((cpu_set_t *)calloc(1,CPU_ALLOC_SIZE(n)))
+          |                                    ^
+
+gcc/cp/
+
+	PR c++/106102
+	* mapper-client.cc: Include <memory> via "system.h".
+	* mapper-resolver.cc: Ditto.
+	* module.cc: Ditto.
+
+libcc1/
+
+	PR c++/106102
+	* libcc1plugin.cc: Include <memory> via "system.h".
+	* libcp1plugin.cc: Ditto.
+---
+ gcc/cp/mapper-client.cc   | 1 +
+ gcc/cp/mapper-resolver.cc | 1 +
+ gcc/cp/module.cc          | 1 +
+ libcc1/libcc1plugin.cc    | 1 +
+ libcc1/libcp1plugin.cc    | 1 +
+ 5 files changed, 5 insertions(+)
+
+diff --git a/gcc/cp/mapper-client.cc b/gcc/cp/mapper-client.cc
+index 8603a886a099..fe9544b5ba43 100644
+--- a/gcc/cp/mapper-client.cc
++++ b/gcc/cp/mapper-client.cc
+@@ -27,6 +27,7 @@ along with GCC; see the file COPYING3.  If not see
+ #define INCLUDE_STRING
+ #define INCLUDE_VECTOR
+ #define INCLUDE_MAP
++#define INCLUDE_MEMORY
+ #include "system.h"
+ 
+ #include "line-map.h"
+diff --git a/gcc/cp/mapper-resolver.cc b/gcc/cp/mapper-resolver.cc
+index e3d29fb5ada1..e70d1b4ae2ca 100644
+--- a/gcc/cp/mapper-resolver.cc
++++ b/gcc/cp/mapper-resolver.cc
+@@ -25,6 +25,7 @@ along with GCC; see the file COPYING3.  If not see
+ #define INCLUDE_VECTOR
+ #define INCLUDE_ALGORITHM
+ #define INCLUDE_MAP
++#define INCLUDE_MEMORY
+ #include "system.h"
+ 
+ // We don't want or need to be aware of networking
+diff --git a/gcc/cp/module.cc b/gcc/cp/module.cc
+index 753963a4b246..8bb22c2b305a 100644
+--- a/gcc/cp/module.cc
++++ b/gcc/cp/module.cc
+@@ -206,6 +206,7 @@ Classes used:
+ 
+ #define _DEFAULT_SOURCE 1 /* To get TZ field of struct tm, if available.  */
+ #include "config.h"
++#define INCLUDE_MEMORY
+ #define INCLUDE_STRING
+ #define INCLUDE_VECTOR
+ #include "system.h"
+diff --git a/libcc1/libcc1plugin.cc b/libcc1/libcc1plugin.cc
+index 12ab5a57c8dd..bdd0bdabe77f 100644
+--- a/libcc1/libcc1plugin.cc
++++ b/libcc1/libcc1plugin.cc
+@@ -31,6 +31,7 @@
+ #undef PACKAGE_TARNAME
+ #undef PACKAGE_VERSION
+ 
++#define INCLUDE_MEMORY
+ #include "gcc-plugin.h"
+ #include "system.h"
+ #include "coretypes.h"
+diff --git a/libcc1/libcp1plugin.cc b/libcc1/libcp1plugin.cc
+index 83dab7f58b11..e2d5039a0a1f 100644
+--- a/libcc1/libcp1plugin.cc
++++ b/libcc1/libcp1plugin.cc
+@@ -32,6 +32,7 @@
+ #undef PACKAGE_TARNAME
+ #undef PACKAGE_VERSION
+ 
++#define INCLUDE_MEMORY
+ #include "gcc-plugin.h"
+ #include "system.h"
+ #include "coretypes.h"
diff --git a/srcpkgs/gcc/patches/49d508065bdd36fb1a9b6aad9666b1edb5e06474.patch b/srcpkgs/gcc/patches/49d508065bdd36fb1a9b6aad9666b1edb5e06474.patch
new file mode 100644
index 000000000000..89bd053d6d04
--- /dev/null
+++ b/srcpkgs/gcc/patches/49d508065bdd36fb1a9b6aad9666b1edb5e06474.patch
@@ -0,0 +1,115 @@
+From 49d508065bdd36fb1a9b6aad9666b1edb5e06474 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <siarheit@google.com>
+Date: Mon, 27 Jun 2022 23:42:44 +0100
+Subject: [PATCH] jit: avoid calloc() poisoning on musl [PR106102]
+
+On musl <pthread.h> uses calloc() (via <sched.h>). jit/ includes
+it directly and exposes use of poisoned calloc():
+
+    /build/build/./prev-gcc/xg++ ... ../../gcc-13-20220626/gcc/jit/jit-playback.cc
+    make[3]: *** [Makefile:1143: jit/libgccjit.o] Error 1
+    make[3]: *** Waiting for unfinished jobs....
+    In file included from /<<NIX>>/musl-1.2.3-dev/include/pthread.h:30,
+                     from ../../gcc-13-20220626/gcc/jit/jit-playback.cc:44:
+    /<<NIX>>/musl-1.2.3-dev/include/sched.h:84:7: error: attempt to use poisoned "calloc"
+       84 | void *calloc(size_t, size_t);
+          |       ^
+    /<<NIX>>/musl-1.2.3-dev/include/sched.h:124:36: error: attempt to use poisoned "calloc"
+      124 | #define CPU_ALLOC(n) ((cpu_set_t *)calloc(1,CPU_ALLOC_SIZE(n)))
+          |                                    ^
+
+The change moves <pthread.h> inclusion to "system.h" under new
+INCLUDE_PTHREAD_H guard and uses this mechanism in libgccjit.
+
+gcc/
+
+	PR c++/106102
+	* system.h: Introduce INCLUDE_PTHREAD_H macros to include <pthread.h>.
+
+gcc/jit/
+
+	PR c++/106102
+	* jit-playback.cc: Include <pthread.h> via "system.h" to avoid calloc()
+	poisoning.
+	* jit-recording.cc: Ditto.
+	* libgccjit.cc: Ditto.
+---
+ gcc/jit/jit-playback.cc  | 3 +--
+ gcc/jit/jit-recording.cc | 2 +-
+ gcc/jit/libgccjit.cc     | 2 +-
+ gcc/system.h             | 4 ++++
+ 4 files changed, 7 insertions(+), 4 deletions(-)
+
+diff --git a/gcc/jit/jit-playback.cc b/gcc/jit/jit-playback.cc
+index 6be6bdf8dea5..79714132b91a 100644
+--- a/gcc/jit/jit-playback.cc
++++ b/gcc/jit/jit-playback.cc
+@@ -19,6 +19,7 @@ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
++#define INCLUDE_PTHREAD_H
+ #include "system.h"
+ #include "coretypes.h"
+ #include "target.h"
+@@ -41,8 +42,6 @@ along with GCC; see the file COPYING3.  If not see
+ #include "diagnostic.h"
+ #include "stmt.h"
+ 
+-#include <pthread.h>
+-
+ #include "jit-playback.h"
+ #include "jit-result.h"
+ #include "jit-builtins.h"
+diff --git a/gcc/jit/jit-recording.cc b/gcc/jit/jit-recording.cc
+index 697dee66e733..f78daed2d71a 100644
+--- a/gcc/jit/jit-recording.cc
++++ b/gcc/jit/jit-recording.cc
+@@ -19,13 +19,13 @@ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
++#define INCLUDE_PTHREAD_H
+ #include "system.h"
+ #include "coretypes.h"
+ #include "tm.h"
+ #include "pretty-print.h"
+ #include "toplev.h"
+ 
+-#include <pthread.h>
+ 
+ #include "jit-builtins.h"
+ #include "jit-recording.h"
+diff --git a/gcc/jit/libgccjit.cc b/gcc/jit/libgccjit.cc
+index 0e76097b4bac..ca862662777e 100644
+--- a/gcc/jit/libgccjit.cc
++++ b/gcc/jit/libgccjit.cc
+@@ -19,12 +19,12 @@ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
++#define INCLUDE_PTHREAD_H
+ #include "system.h"
+ #include "coretypes.h"
+ #include "timevar.h"
+ #include "typed-splay-tree.h"
+ #include "cppbuiltin.h"
+-#include <pthread.h>
+ 
+ #include "libgccjit.h"
+ #include "jit-recording.h"
+diff --git a/gcc/system.h b/gcc/system.h
+index 67158b70c789..f8d42ff68150 100644
+--- a/gcc/system.h
++++ b/gcc/system.h
+@@ -753,6 +753,10 @@ extern int vsnprintf (char *, size_t, const char *, va_list);
+ #endif
+ #endif
+ 
++#ifdef INCLUDE_PTHREAD_H
++#include <pthread.h>
++#endif
++
+ #ifdef INCLUDE_ISL
+ #ifdef HAVE_isl
+ #include <isl/options.h>
diff --git a/srcpkgs/gcc/patches/f35d65517a59565758107c5b1a51a5fa382f8d1a.patch b/srcpkgs/gcc/patches/f35d65517a59565758107c5b1a51a5fa382f8d1a.patch
new file mode 100644
index 000000000000..044a4fc29514
--- /dev/null
+++ b/srcpkgs/gcc/patches/f35d65517a59565758107c5b1a51a5fa382f8d1a.patch
@@ -0,0 +1,32 @@
+From f35d65517a59565758107c5b1a51a5fa382f8d1a Mon Sep 17 00:00:00 2001
+From: Ian Lance Taylor <iant@golang.org>
+Date: Tue, 12 Jul 2022 19:42:43 -0700
+Subject: [PATCH] libgo: don't include <linux/fs.h> when building
+ gen-sysinfo.go
+
+Removing this doesn't change anything at least with glibc 2.33.
+The include was added in https://go.dev/cl/6100049 but it's not
+clear why.
+
+Fixes PR go/106266
+
+Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/417294
+---
+ gcc/go/gofrontend/MERGE | 2 +-
+ libgo/sysinfo.c         | 3 ---
+ 2 files changed, 1 insertion(+), 4 deletions(-)
+
+diff --git a/libgo/sysinfo.c b/libgo/sysinfo.c
+index a4259c02ded4..fc0210992faa 100644
+--- a/libgo/sysinfo.c
++++ b/libgo/sysinfo.c
+@@ -158,9 +158,6 @@
+ #if defined(HAVE_LINUX_ETHER_H)
+ #include <linux/ether.h>
+ #endif
+-#if defined(HAVE_LINUX_FS_H)
+-#include <linux/fs.h>
+-#endif
+ #if defined(HAVE_LINUX_REBOOT_H)
+ #include <linux/reboot.h>
+ #endif
diff --git a/srcpkgs/gcc/patches/libffi_gnulinux.patch b/srcpkgs/gcc/patches/libffi_gnulinux.patch
deleted file mode 100644
index 98245bd5be1a..000000000000
--- a/srcpkgs/gcc/patches/libffi_gnulinux.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/libffi/src/closures.c
-+++ b/libffi/src/closures.c
-@@ -34,7 +34,7 @@
- #include <ffi_common.h>
-
- #if !FFI_MMAP_EXEC_WRIT && !FFI_EXEC_TRAMPOLINE_TABLE
--# if __gnu_linux__ && !defined(__ANDROID__)
-+# if __linux__ && !defined(__ANDROID__)
- /* This macro indicates it may be forbidden to map anonymous memory
-    with both write and execute permission.  Code compiled when this
-    option is defined will attempt to map such pages once, but if it
diff --git a/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch b/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
index bdf5c75d917d..26d80356ad0d 100644
--- a/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
+++ b/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
@@ -29,10 +29,14 @@ diff --git a/libgcc/config/rs6000/t-linux b/libgcc/config/rs6000/t-linux
 index 4f6d4c4..fa93bb6 100644
 --- a/libgcc/config/rs6000/t-linux
 +++ b/libgcc/config/rs6000/t-linux
-@@ -1,3 +1,3 @@
+@@ -1,6 +1,6 @@
  SHLIB_MAPFILES += $(srcdir)/config/rs6000/libgcc-glibc.ver
  
--HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-minimal-toc
-+HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-gnu-attribute -mno-minimal-toc
+-HOST_LIBGCC2_CFLAGS += -mlong-double-128
++HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-gnu-attribute
+ 
+ # This is a way of selecting -mcmodel=small for ppc64, which gives
+ # smaller and faster libgcc code.  Directly specifying -mcmodel=small
+
 -- 
 2.24.0
diff --git a/srcpkgs/gcc/patches/mips-sgidefs_h.patch b/srcpkgs/gcc/patches/mips-sgidefs_h.patch
index dddfe10e8c06..78a2ce35875d 100644
--- a/srcpkgs/gcc/patches/mips-sgidefs_h.patch
+++ b/srcpkgs/gcc/patches/mips-sgidefs_h.patch
@@ -3,9 +3,10 @@
 @@ -42,7 +42,7 @@
  #define _MIPS_SIM_NABI32	2
  #define _MIPS_SIM_ABI64		3
- #elif !defined(__OpenBSD__)
+ #elif !defined(__OpenBSD__) && !defined(__FreeBSD__)
 -# include <sgidefs.h>
 +# include <asm/sgidefs.h>
  #endif
  
  #  ifndef _ABIN32
+
diff --git a/srcpkgs/gcc/template b/srcpkgs/gcc/template
index 09727ef34fb2..32ee79e32f0d 100644
--- a/srcpkgs/gcc/template
+++ b/srcpkgs/gcc/template
@@ -3,18 +3,15 @@
 # which use the version number.
 
 pkgname=gcc
-# we are using a 10-stable git snapshot alpine is using in order
-# to get regression fixes not yet incorporate into a stable release
-# it should be possible to switch back to stable with 10.3 or 11
-version=10.2.1pre1
-revision=3
+version=12.1.0
+revision=1
 _patchver="${version%pre*}"
 _minorver="${_patchver%.*}"
 _majorver="${_minorver%.*}"
-_gmp_version=6.2.0
+_gmp_version=6.2.1
 _mpfr_version=4.1.0
-_mpc_version=1.1.0
-_isl_version=0.21
+_mpc_version=1.2.1
+_isl_version=0.24
 wrksrc=gcc-${version/pre/_pre}
 short_desc="GNU Compiler Collection"
 maintainer="Enno Boland <gottox@voidlinux.org>"
@@ -22,16 +19,16 @@ homepage="http://gcc.gnu.org"
 license="GFDL-1.2-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
 # *-musl builders have issues fetching https://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz
 distfiles="
- https://dev.alpinelinux.org/~nenolod/gcc-${version/pre/_pre}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${version}/gcc-${version}.tar.xz
  https://gmplib.org/download/gmp/gmp-${_gmp_version}.tar.xz
  ${GNU_SITE}/mpfr/mpfr-${_mpfr_version}.tar.xz
  ${GNU_SITE}/mpc/mpc-${_mpc_version}.tar.gz
  ${SOURCEFORGE_SITE}/libisl/isl-${_isl_version}.tar.bz2"
-checksum="772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 258e6cd51b3fbdfc185c716d55f82c08aff57df0c6fbd143cf6ed561267a1526
+checksum="62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
+ fd4829912cddd12f84181c3451cc752be224643e87fac497b69edddadc49b4f2
  0c98a3f1732ff6ca4ea690552079da9c597872d30e96ec28414ee23c95558a7f
- 6985c538143c1208dcb1ac42cedad6ff52e267b47e5f970183a3e75125b43c2e
- d18ca11f8ad1a39ab6d03d3dcb3365ab416720fcb65b42d69f34f51bf0a0e859"
+ 17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459
+ fcf78dd9656c10eb8cf9fbd5f59a0b6b01386205fe1934b3b287a0a1898145c0"
 
 nopie=yes
 lib32disabled=yes
@@ -396,7 +393,7 @@ gcc-ada_package() {
 	depends="gcc>=${_minorver} libada-devel>=${_minorver}"
 	short_desc+=" - Ada compiler frontend"
 	pkg_install() {
-		for f in gnat{,bind,chop,clean,find,kr,link,ls,make,name,prep,xref}; do
+		for f in gnat{,bind,chop,clean,kr,link,ls,make,name,prep}; do
 			vmove usr/bin/${f}
 		done
 	}

From 2291feed5bcca91851d6b6ee3f55811a8748e1ce Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 06:27:47 -0700
Subject: [PATCH 3/9] libtool: update to 2.4.7.

---
 .../patches/0002-rename-with-sysroot.patch    | 34 +++++++++----------
 srcpkgs/libtool/template                      |  6 ++--
 2 files changed, 20 insertions(+), 20 deletions(-)

diff --git a/srcpkgs/libtool/patches/0002-rename-with-sysroot.patch b/srcpkgs/libtool/patches/0002-rename-with-sysroot.patch
index 960873c04e24..152aace96c41 100644
--- a/srcpkgs/libtool/patches/0002-rename-with-sysroot.patch
+++ b/srcpkgs/libtool/patches/0002-rename-with-sysroot.patch
@@ -13,16 +13,16 @@ Jürgen Buchmüller <pullmoll@t-online.de>
 
 --- a/configure	2015-02-15 17:14:34.000000000 +0100
 +++ b/configure	2015-10-20 13:25:12.684906339 +0200
-@@ -824,7 +824,7 @@
+@@ -832,7 +832,7 @@
  enable_fast_install
  with_aix_soname
  with_gnu_ld
 -with_sysroot
 +with_libtool_sysroot
  enable_libtool_lock
+ enable_cross_guesses
  '
-       ac_precious_vars='build_alias
-@@ -1487,7 +1487,8 @@
+@@ -1509,7 +1509,8 @@
                            shared library versioning (aka "SONAME") variant to
                            provide on AIX, [default=aix].
    --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
@@ -32,7 +32,7 @@ Jürgen Buchmüller <pullmoll@t-online.de>
                            compiler's sysroot if not specified).
  
  Some influential environment variables:
-@@ -7389,29 +7390,29 @@
+@@ -7610,29 +7611,29 @@
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
  $as_echo_n "checking for sysroot... " >&6; }
  
@@ -57,8 +57,8 @@ Jürgen Buchmüller <pullmoll@t-online.de>
     fi
     ;; #(
   /*)
--   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
-+   lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"`
+-   lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"`
++   lt_sysroot=`echo "$with_libtool_sysroot" | $SED -e "$sed_quote_subst"`
     ;; #(
   no|'')
     ;; #(
@@ -72,7 +72,7 @@ Jürgen Buchmüller <pullmoll@t-online.de>
  esac
 --- a/libltdl/configure	2015-02-15 17:15:15.000000000 +0100
 +++ b/libltdl/configure	2015-10-20 13:26:45.747914683 +0200
-@@ -775,7 +775,7 @@
+@@ -777,7 +777,7 @@
  with_aix_soname
  enable_dependency_tracking
  with_gnu_ld
@@ -81,7 +81,7 @@ Jürgen Buchmüller <pullmoll@t-online.de>
  enable_libtool_lock
  enable_ltdl_install
  '
-@@ -1429,7 +1429,8 @@
+@@ -1442,7 +1442,8 @@
                            shared library versioning (aka "SONAME") variant to
                            provide on AIX, [default=aix].
    --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
@@ -91,7 +91,7 @@ Jürgen Buchmüller <pullmoll@t-online.de>
                            compiler's sysroot if not specified).
  
  Some influential environment variables:
-@@ -6275,29 +6276,29 @@
+@@ -6397,29 +6398,29 @@
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
  $as_echo_n "checking for sysroot... " >&6; }
  
@@ -116,8 +116,8 @@ Jürgen Buchmüller <pullmoll@t-online.de>
     fi
     ;; #(
   /*)
--   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
-+   lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"`
+-   lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"`
++   lt_sysroot=`echo "$with_libtool_sysroot" | $SED -e "$sed_quote_subst"`
     ;; #(
   no|'')
     ;; #(
@@ -243,14 +243,14 @@ Jürgen Buchmüller <pullmoll@t-online.de>
  ]])
 --- a/m4/libtool.m4	2015-01-20 17:15:19.000000000 +0100
 +++ b/m4/libtool.m4	2015-10-20 15:40:04.020631813 +0200
-@@ -1245,29 +1245,29 @@
- # _LT_WITH_SYSROOT
+@@ -1243,29 +1243,29 @@
  # ----------------
  AC_DEFUN([_LT_WITH_SYSROOT],
--[AC_MSG_CHECKING([for sysroot])
+ [m4_require([_LT_DECL_SED])dnl
+-AC_MSG_CHECKING([for sysroot])
 -AC_ARG_WITH([sysroot],
 -[AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@],
-+[AC_MSG_CHECKING([for libtool-sysroot])
++AC_MSG_CHECKING([for libtool-sysroot])
 +AC_ARG_WITH([libtool-sysroot],
 +[AS_HELP_STRING([--with-libtool-sysroot@<:@=DIR@:>@],
    [Search for dependent libraries within DIR (or the compiler's sysroot
@@ -269,8 +269,8 @@ Jürgen Buchmüller <pullmoll@t-online.de>
     fi
     ;; #(
   /*)
--   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
-+   lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"`
+-   lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"`
++   lt_sysroot=`echo "$with_libtool_sysroot" | $SED -e "$sed_quote_subst"`
     ;; #(
   no|'')
     ;; #(
diff --git a/srcpkgs/libtool/template b/srcpkgs/libtool/template
index b9972df70341..08e35d466a44 100644
--- a/srcpkgs/libtool/template
+++ b/srcpkgs/libtool/template
@@ -1,7 +1,7 @@
 # Template file for 'libtool'
 pkgname=libtool
-version=2.4.6
-revision=6
+version=2.4.7
+revision=1
 build_style=gnu-configure
 hostmakedepends="texinfo perl automake help2man xz"
 depends="tar sed"
@@ -10,7 +10,7 @@ maintainer="Enno Boland <gottox@voidlinux.org>"
 license="GPL-2.0-or-later"
 homepage="http://www.gnu.org/software/libtool"
 distfiles="${GNU_SITE}/libtool/$pkgname-$version.tar.xz"
-checksum=7c87a8c2c8c0fc9cd5019e402bed4292462d00a718a7cd5f11218153bf28b26f
+checksum=4f7f217f057ce655ff22559ad221a0fd8ef84ad1fc5fcb6990cecc333aa1635d
 
 pre_configure() {
 	touch aclocal.m4 libltdl/aclocal.m4 Makefile.am libltdl/Makefile.am Makefile.in libltdl/Makefile.in

From f3bd650f31809e9deaa9bfd420e832f4af07e317 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 17:20:16 -0700
Subject: [PATCH 4/9] libiberty-devel: update to 20220713.

---
 srcpkgs/libiberty-devel/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/libiberty-devel/template b/srcpkgs/libiberty-devel/template
index 1a4e1ca3d594..b04268908c2e 100644
--- a/srcpkgs/libiberty-devel/template
+++ b/srcpkgs/libiberty-devel/template
@@ -1,6 +1,6 @@
 # Template file for 'libiberty-devel'
 pkgname=libiberty-devel
-version=20210106
+version=20220713
 revision=1
 wrksrc=libiberty-${version}
 build_wrksrc=libiberty
@@ -11,7 +11,7 @@ maintainer="q66 <daniel@octaforge.org>"
 license="GPL-3.0-or-later"
 homepage="http://gcc.gnu.org/"
 distfiles="http://deb.debian.org/debian/pool/main/libi/libiberty/libiberty_${version}.orig.tar.xz"
-checksum=9df153d69914c0f5a9145e0abbb248e72feebab6777c712a30f1c3b8c19047d4
+checksum=b59050f48c8a0f9c9e6fba5d17c7a4f11d1329de0c0dca7331b767a6d2bbe8d9
 conflicts="binutils-devel<=2.35.1_3"
 
 CFLAGS="-fPIC"

From 936c4b5891dd215aa99776642b6d97707e77c955 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 23:31:45 -0700
Subject: [PATCH 5/9] glibc: update to 2.36.

---
 common/shlibs                                 |  60 ++--
 .../glibc/patches/glibc-c-utf8-locale.patch   | 286 ------------------
 srcpkgs/glibc/template                        |  62 ++--
 3 files changed, 55 insertions(+), 353 deletions(-)
 delete mode 100644 srcpkgs/glibc/patches/glibc-c-utf8-locale.patch

diff --git a/common/shlibs b/common/shlibs
index c6400b566966..65f4d1b62b61 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -17,38 +17,38 @@
 # one (order top->bottom) is preferred over the next ones.
 #
 libc.so musl-1.1.24_7
-libc.so.6 glibc-2.32_1
-libm.so.6 glibc-2.32_1
-libpthread.so.0 glibc-2.32_1
-librt.so.1 glibc-2.32_1
-libdl.so.2 glibc-2.32_1
-ld-linux-x86-64.so.2 glibc-2.32_1 x86_64
-ld-linux.so.2 glibc-2.32_1 i686
-ld-linux.so.3 glibc-2.32_1 armv5tel
-ld-linux-aarch64.so.1 glibc-2.32_1 aarch64
-ld64.so.2 glibc-2.32_1 ppc64
-ld.so.1 glibc-2.32_1 mips
-ld.so.1 glibc-2.32_1 ppc
-ld-linux-armhf.so.3 glibc-2.32_1
-libresolv.so.2 glibc-2.32_1
-libanl.so.1 glibc-2.32_1
-libthread_db.so.1 glibc-2.32_1
-libutil.so.1 glibc-2.32_1
-libnsl.so.1 glibc-2.32_1
-libnss_db.so.2 glibc-2.32_1
-libnss_files.so.2 glibc-2.32_1
-libnss_compat.so.2 glibc-2.32_1
-libnss_dns.so.2 glibc-2.32_1
-libnss_hesiod.so.2 glibc-2.32_1
-libcrypt.so.1 glibc-2.32_1
-libBrokenLocale.so.1 glibc-2.32_1
+libc.so.6 glibc-2.36_1
+libm.so.6 glibc-2.36_1
+libpthread.so.0 glibc-2.36_1
+librt.so.1 glibc-2.36_1
+libdl.so.2 glibc-2.36_1
+ld-linux-x86-64.so.2 glibc-2.36_1 x86_64
+ld-linux.so.2 glibc-2.36_1 i686
+ld-linux.so.3 glibc-2.36_1 armv5tel
+ld-linux-aarch64.so.1 glibc-2.36_1 aarch64
+ld64.so.2 glibc-2.36_1 ppc64
+ld.so.1 glibc-2.36_1 mips
+ld.so.1 glibc-2.36_1 ppc
+ld-linux-armhf.so.3 glibc-2.36_1
+libresolv.so.2 glibc-2.36_1
+libanl.so.1 glibc-2.36_1
+libthread_db.so.1 glibc-2.36_1
+libutil.so.1 glibc-2.36_1
+libnsl.so.1 glibc-2.36_1
+libnss_db.so.2 glibc-2.36_1
+libnss_files.so.2 glibc-2.36_1
+libnss_compat.so.2 glibc-2.36_1
+libnss_dns.so.2 glibc-2.36_1
+libnss_hesiod.so.2 glibc-2.36_1
+libcrypt.so.1 glibc-2.36_1
+libBrokenLocale.so.1 glibc-2.36_1
 libSimGearCore.so.2020.3.13 simgear-2020.3.13_1
 libSimGearScene.so.2020.3.13 simgear-2020.3.13_1
-libmemusage.so glibc-2.32_1
-libSegFault.so glibc-2.32_1
-libpcprofile.so glibc-2.32_1
-libcidn.so.1 glibc-2.32_1
-libmvec.so.1 glibc-2.32_1
+libmemusage.so glibc-2.36_1
+libSegFault.so glibc-2.36_1
+libpcprofile.so glibc-2.36_1
+libcidn.so.1 glibc-2.36_1
+libmvec.so.1 glibc-2.36_1
 libcddgmp.so.0 cddlib-0.94m_1
 libcdd.so.0 cddlib-0.94m_1
 libz.so.1 zlib-1.2.3_1
diff --git a/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch b/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch
deleted file mode 100644
index 7215e1558b62..000000000000
--- a/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch
+++ /dev/null
@@ -1,286 +0,0 @@
-Short description: Add C.UTF-8 support.
-Author(s): Fedora glibc team <glibc@lists.fedoraproject.org>
-Origin: PATCH
-Upstream status: not-submitted
-
-This patch needs to upstream as part of Carlos O'Donell
-<carlos@redhat.com>'s work on enabling upstream C.UTF-8 support. This
-work is currently blocked on cleaning up the test results to prove that
-full code-point sorting is working as intended.
-
-Note that this patch does not provide full code-point sorting as
-expected.
-
-This patch needs to upstream as soon as possible since it would be nice
-to have this in F29 and fixed.
-
-From 2eda7b462b415105f5a05c1323372d4e39d46439 Mon Sep 17 00:00:00 2001
-From: Mike FABIAN <mfabian@redhat.com>
-Date: Mon, 10 Aug 2015 15:58:12 +0200
-Subject: [PATCH] Add a C.UTF-8 locale
-
----
- localedata/SUPPORTED |   1 +
- localedata/locales/C | 238 +++++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 239 insertions(+)
- create mode 100644 localedata/locales/C
-
-diff --git a/localedata/SUPPORTED b/localedata/SUPPORTED
-index 8ca023e..2a78391 100644
---- a/localedata/SUPPORTED
-+++ b/localedata/SUPPORTED
-@@ -1,6 +1,7 @@
- # This file names the currently supported and somewhat tested locales.
- # If you have any additions please file a glibc bug report.
- SUPPORTED-LOCALES=\
-+C.UTF-8/UTF-8 \
- aa_DJ.UTF-8/UTF-8 \
- aa_DJ/ISO-8859-1 \
- aa_ER/UTF-8 \
-diff --git a/localedata/locales/C b/localedata/locales/C
-new file mode 100644
-index 0000000..fdf460e
---- /dev/null
-+++ b/localedata/locales/C
-@@ -0,0 +1,238 @@
-+escape_char /
-+comment_char %
-+% Locale for C locale in UTF-8
-+
-+LC_IDENTIFICATION
-+title      "C locale"
-+source     ""
-+address    ""
-+contact    ""
-+email      "mfabian@redhat.com"
-+tel        ""
-+fax        ""
-+language   "C"
-+territory  ""
-+revision   "1.0"
-+date       "2015-08-10"
-+%
-+category  "i18n:2012";LC_IDENTIFICATION
-+category  "i18n:2012";LC_CTYPE
-+category  "i18n:2012";LC_COLLATE
-+category  "i18n:2012";LC_TIME
-+category  "i18n:2012";LC_NUMERIC
-+category  "i18n:2012";LC_MONETARY
-+category  "i18n:2012";LC_MESSAGES
-+category  "i18n:2012";LC_PAPER
-+category  "i18n:2012";LC_NAME
-+category  "i18n:2012";LC_ADDRESS
-+category  "i18n:2012";LC_TELEPHONE
-+category  "i18n:2012";LC_MEASUREMENT
-+END LC_IDENTIFICATION
-+
-+LC_CTYPE
-+copy "i18n"
-+
-+translit_start
-+include "translit_combining";""
-+translit_end
-+
-+END LC_CTYPE
-+
-+LC_COLLATE
-+order_start forward
-+<U0000>
-+..
-+<UFFFF>
-+<U10000>
-+..
-+<U1FFFF>
-+<U20000>
-+..
-+<U2FFFF>
-+<UE0000>
-+..
-+<UEFFFF>
-+<UF0000>
-+..
-+<UFFFFF>
-+<U100000>
-+..
-+<U10FFFF>
-+UNDEFINED
-+order_end
-+END LC_COLLATE
-+
-+LC_MONETARY
-+% This is the 14652 i18n fdcc-set definition for
-+% the LC_MONETARY category
-+% (except for the int_curr_symbol and currency_symbol, they are empty in
-+% the 14652 i18n fdcc-set definition and also empty in
-+% glibc/locale/C-monetary.c. But localedef complains in that case).
-+%
-+% Using "USD" for int_curr_symbol. But maybe "XXX" would be better?
-+% XXX is "No currency" (https://en.wikipedia.org/wiki/ISO_4217)
-+int_curr_symbol     "<U0055><U0053><U0044><U0020>"
-+% Using "$" for currency_symbol. But maybe <U00A4> would be better?
-+% U+00A4 is the "generic currency symbol"
-+% (https://en.wikipedia.org/wiki/Currency_sign_%28typography%29)
-+currency_symbol     "<U0024>"
-+mon_decimal_point   "<U002E>"
-+mon_thousands_sep   ""
-+mon_grouping        -1
-+positive_sign       ""
-+negative_sign       "<U002D>"
-+int_frac_digits     -1
-+frac_digits         -1
-+p_cs_precedes       -1
-+int_p_sep_by_space  -1
-+p_sep_by_space      -1
-+n_cs_precedes       -1
-+int_n_sep_by_space  -1
-+n_sep_by_space      -1
-+p_sign_posn         -1
-+n_sign_posn         -1
-+%
-+END LC_MONETARY
-+
-+LC_NUMERIC
-+% This is the POSIX Locale definition for
-+% the LC_NUMERIC category.
-+%
-+decimal_point   "<U002E>"
-+thousands_sep   ""
-+grouping        -1
-+END LC_NUMERIC
-+
-+LC_TIME
-+% This is the POSIX Locale definition for
-+% the LC_TIME category.
-+%
-+% Abbreviated weekday names (%a)
-+abday       "<U0053><U0075><U006E>";"<U004D><U006F><U006E>";/
-+            "<U0054><U0075><U0065>";"<U0057><U0065><U0064>";/
-+            "<U0054><U0068><U0075>";"<U0046><U0072><U0069>";/
-+            "<U0053><U0061><U0074>"
-+
-+% Full weekday names (%A)
-+day         "<U0053><U0075><U006E><U0064><U0061><U0079>";/
-+            "<U004D><U006F><U006E><U0064><U0061><U0079>";/
-+            "<U0054><U0075><U0065><U0073><U0064><U0061><U0079>";/
-+            "<U0057><U0065><U0064><U006E><U0065><U0073><U0064><U0061><U0079>";/
-+            "<U0054><U0068><U0075><U0072><U0073><U0064><U0061><U0079>";/
-+            "<U0046><U0072><U0069><U0064><U0061><U0079>";/
-+            "<U0053><U0061><U0074><U0075><U0072><U0064><U0061><U0079>"
-+
-+% Abbreviated month names (%b)
-+abmon       "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
-+            "<U004D><U0061><U0072>";"<U0041><U0070><U0072>";/
-+            "<U004D><U0061><U0079>";"<U004A><U0075><U006E>";/
-+            "<U004A><U0075><U006C>";"<U0041><U0075><U0067>";/
-+            "<U0053><U0065><U0070>";"<U004F><U0063><U0074>";/
-+            "<U004E><U006F><U0076>";"<U0044><U0065><U0063>"
-+
-+% Full month names (%B)
-+mon         "<U004A><U0061><U006E><U0075><U0061><U0072><U0079>";/
-+            "<U0046><U0065><U0062><U0072><U0075><U0061><U0072><U0079>";/
-+            "<U004D><U0061><U0072><U0063><U0068>";/
-+            "<U0041><U0070><U0072><U0069><U006C>";/
-+            "<U004D><U0061><U0079>";/
-+            "<U004A><U0075><U006E><U0065>";/
-+            "<U004A><U0075><U006C><U0079>";/
-+            "<U0041><U0075><U0067><U0075><U0073><U0074>";/
-+            "<U0053><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";/
-+            "<U004F><U0063><U0074><U006F><U0062><U0065><U0072>";/
-+            "<U004E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/
-+            "<U0044><U0065><U0063><U0065><U006D><U0062><U0065><U0072>"
-+
-+% Week description, consists of three fields:
-+% 1. Number of days in a week.
-+% 2. Gregorian date that is a first weekday (19971130 for Sunday, 19971201 for Monday).
-+% 3. The weekday number to be contained in the first week of the year.
-+%
-+% ISO 8601 conforming applications should use the values 7, 19971201 (a
-+% Monday), and 4 (Thursday), respectively.
-+week    7;19971201;4
-+first_weekday	1
-+first_workday	1
-+
-+% Appropriate date and time representation (%c)
-+%	"%a %b %e %H:%M:%S %Y"
-+d_t_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0059>"
-+
-+% Appropriate date representation (%x)
-+%	"%m/%d/%y"
-+d_fmt   "<U0025><U006D><U002F><U0025><U0064><U002F><U0025><U0079>"
-+
-+% Appropriate time representation (%X)
-+%	"%H:%M:%S"
-+t_fmt   "<U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053>"
-+
-+% Appropriate AM/PM time representation (%r)
-+%	"%I:%M:%S %p"
-+t_fmt_ampm "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0070>"
-+
-+% Equivalent of AM/PM (%p)      "AM"/"PM"
-+%
-+am_pm	"<U0041><U004D>";"<U0050><U004D>"
-+
-+% Appropriate date representation (date(1))   "%a %b %e %H:%M:%S %Z %Y"
-+date_fmt	"<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U005A><U0020><U0025><U0059>"
-+END LC_TIME
-+
-+LC_MESSAGES
-+% This is the POSIX Locale definition for
-+% the LC_NUMERIC category.
-+%
-+yesexpr "<U005E><U005B><U0079><U0059><U005D>"
-+noexpr  "<U005E><U005B><U006E><U004E><U005D>"
-+yesstr  "<U0059><U0065><U0073>"
-+nostr   "<U004E><U006F>"
-+END LC_MESSAGES
-+
-+LC_PAPER
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_PAPER category.
-+% (A4 paper, this is also used in the built in C/POSIX
-+% locale in glibc/locale/C-paper.c)
-+height   297
-+width    210
-+END LC_PAPER
-+
-+LC_NAME
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_NAME category.
-+% "%p%t%g%t%m%t%f"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-name.c)
-+name_fmt    "<U0025><U0070><U0025><U0074><U0025><U0067><U0025><U0074>/
-+<U0025><U006D><U0025><U0074><U0025><U0066>"
-+END LC_NAME
-+
-+LC_ADDRESS
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_ADDRESS category.
-+% "%a%N%f%N%d%N%b%N%s %h %e %r%N%C-%z %T%N%c%N"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-address.c)
-+postal_fmt    "<U0025><U0061><U0025><U004E><U0025><U0066><U0025><U004E>/
-+<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
-+<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
-+<U004E><U0025><U0043><U002D><U0025><U007A><U0020><U0025><U0054><U0025>/
-+<U004E><U0025><U0063><U0025><U004E>"
-+END LC_ADDRESS
-+
-+LC_TELEPHONE
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_TELEPHONE category.
-+% "+%c %a %l"
-+tel_int_fmt    "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025>/
-+<U006C>"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-telephone.c)
-+END LC_TELEPHONE
-+
-+LC_MEASUREMENT
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_MEASUREMENT category.
-+% (same as in the built in C/POSIX locale in glibc/locale/C-measurement.c)
-+%metric
-+measurement    1
-+END LC_MEASUREMENT
-+
--- 
-2.4.3
-
diff --git a/srcpkgs/glibc/template b/srcpkgs/glibc/template
index c62a4d2aedf1..139aab865864 100644
--- a/srcpkgs/glibc/template
+++ b/srcpkgs/glibc/template
@@ -1,14 +1,14 @@
 # Template file for 'glibc'
 pkgname=glibc
-version=2.32
-revision=2
+version=2.36
+revision=1
 bootstrap=yes
 short_desc="GNU C library"
 maintainer="Enno Boland <gottox@voidlinux.org>"
 license="GPL-2.0-or-later, LGPL-2.1-or-later, BSD-3-Clause"
 homepage="http://www.gnu.org/software/libc"
 distfiles="${GNU_SITE}/glibc/glibc-${version}.tar.xz"
-checksum=1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum=1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
 # Do not strip these files, objcopy errors out.
 nostrip_files="
 	XBS5_ILP32_OFFBIG
@@ -20,27 +20,28 @@ nostrip_files="
 	POSIX_V6_LP64_OFF64
 	POSIX_V7_LP64_OFF64
 	XBS5_LP64_OFF64
-	ld-${version}.so
-	libdl-${version}.so
-	libanl-${version}.so
-	libcidn-${version}.so
-	libresolv-${version}.so
-	libcrypt-${version}.so
-	libpthread-${version}.so
-	libm-${version}.so
-	libutil-${version}.so
-	libthread_db-1.0.so
-	librt-${version}.so
-	libnsl-${version}.so
-	libc-${version}.so
-	libBrokenLocale-${version}.so
-	libnss_compat-${version}.so
-	libnss_db-${version}.so
-	libnss_dns-${version}.so
-	libnss_files-${version}.so
-	libnss_hesiod-${version}.so
-	libnss_nisplus-${version}.so
-	libnss_nis-${version}.so"
+	ld-linux-x86-64.so.2
+	ld-linux.so.2
+	ld-linux.so.3
+	ld-linux-aarch64.so.1
+	ld64.so.2
+	ld.so.1
+	ld-linux-armhf.so.3
+	libresolv.so.2
+	libcrypt.so.1
+	libm.so.6
+	libthread_db.so.1
+	libnsl.so.1
+	libc.so.6
+	libc_malloc_debug.so.0
+	libmemusage.so
+	libmvec.so.1
+	libBrokenLocale.so.1
+	libnss_compat.so.2
+	libnss_db.so.2
+	libnss_dns.so.2
+	libnss_files.so.2
+	libnss_hesiod.so.2"
 
 conf_files="
 	/etc/rpc
@@ -54,7 +55,6 @@ lib32files="/usr/lib/gconv/gconv-modules"
 lib32symlinks="ld-linux.so.2"
 # There's no point in building this for musl.
 archs="~*-musl"
-nopie=yes
 
 do_configure() {
 	mkdir build
@@ -163,18 +163,6 @@ do_install() {
 	rm -f ${DESTDIR}/usr/bin/z{dump,ic}
 
 	mv ${DESTDIR}/usr/sbin/* ${DESTDIR}/usr/bin
-
-	# Create xbps.d(5) arch override file for 32-bit architectures
-	# 32-bit userlands may be used with 64-bit kernels and then
-	# xbps will report an incorrect architecture by default
-	case "$XBPS_TARGET_MACHINE" in
-		i686|ppc|ppcle|armv*)
-			vmkdir usr/share/xbps.d
-			echo "architecture=${XBPS_TARGET_MACHINE}" > \
-				${DESTDIR}/usr/share/xbps.d/arch-32bit.conf
-			;;
-		*) ;;
-	esac
 }
 
 glibc-devel_package() {

From 9f0bb0215e0ffcaa5fe46b357ecbc3b59e7b72f9 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Sun, 14 Aug 2022 19:29:36 -0700
Subject: [PATCH 6/9] build-style/void-cross: Update flags for gcc12

gcov can't be built without libc:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100289
---
 common/build-style/void-cross.sh | 1 +
 1 file changed, 1 insertion(+)

diff --git a/common/build-style/void-cross.sh b/common/build-style/void-cross.sh
index 92f03f8130f5..c24013755704 100644
--- a/common/build-style/void-cross.sh
+++ b/common/build-style/void-cross.sh
@@ -132,6 +132,7 @@ _void_cross_build_bootstrap_gcc() {
 		--disable-libssp \
 		--disable-libitm \
 		--disable-libatomic \
+		--disable-gcov \
 		--disable-threads \
 		--disable-sjlj-exceptions \
 		--enable-languages=c \

From 771a941b24410fa91e9d609a8cbef8ffaf4cb2bb Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 20:08:52 -0700
Subject: [PATCH 7/9] openssh: suppress werror on gcc12

---
 srcpkgs/openssh/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/openssh/template b/srcpkgs/openssh/template
index 02a2dec35f42..6e8e343a9dca 100644
--- a/srcpkgs/openssh/template
+++ b/srcpkgs/openssh/template
@@ -40,7 +40,7 @@ if [ "$build_option_ldns" -a -z "$build_option_ssl" ]; then
 	broken="option 'ldns' requires option 'ssl'"
 fi
 
-CFLAGS="-Wno-format-truncation -Wno-stringop-truncation"
+CFLAGS="-Wno-format-truncation -Wno-stringop-truncation -Wno-error=maybe-uninitialized"
 
 case $XBPS_TARGET_MACHINE in
 	i686-musl)

From 7282249152fb9b23e2083c71c0ddc3c19b22e5c0 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 20:09:31 -0700
Subject: [PATCH 8/9] linux5.18: update dotconfigs for gcc12

---
 srcpkgs/linux5.18/files/x86_64-dotconfig | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/srcpkgs/linux5.18/files/x86_64-dotconfig b/srcpkgs/linux5.18/files/x86_64-dotconfig
index 4e73a3195d40..ea6204868e23 100644
--- a/srcpkgs/linux5.18/files/x86_64-dotconfig
+++ b/srcpkgs/linux5.18/files/x86_64-dotconfig
@@ -512,6 +512,7 @@ CONFIG_RETHUNK=y
 CONFIG_CPU_UNRET_ENTRY=y
 CONFIG_CPU_IBPB_ENTRY=y
 CONFIG_CPU_IBRS_ENTRY=y
+CONFIG_SLS=y
 CONFIG_ARCH_HAS_ADD_PAGES=y
 CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y
 
@@ -10060,8 +10061,11 @@ CONFIG_LSM="yama,loadpin,safesetid,integrity"
 # Memory initialization
 #
 CONFIG_INIT_STACK_NONE=y
+# CONFIG_INIT_STACK_ALL_PATTERN is not set
+# CONFIG_INIT_STACK_ALL_ZERO is not set
 CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
 # CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
+# CONFIG_ZERO_CALL_USED_REGS is not set
 # end of Memory initialization
 # end of Kernel hardening options
 # end of Security options
@@ -10538,6 +10542,7 @@ CONFIG_HAVE_ARCH_KGDB=y
 CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
 # CONFIG_UBSAN is not set
 CONFIG_HAVE_ARCH_KCSAN=y
+# CONFIG_KCSAN is not set
 # end of Generic Kernel Debugging Instruments
 
 #

From c99d43e562e44d091ca13f594ea07e62e7d857cc Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Sun, 14 Aug 2022 20:20:34 -0700
Subject: [PATCH 9/9] cross-aarch64-linux-gnu: test commit

---
 srcpkgs/cross-aarch64-linux-gnu/template | 19 ++++++++++---------
 1 file changed, 10 insertions(+), 9 deletions(-)

diff --git a/srcpkgs/cross-aarch64-linux-gnu/template b/srcpkgs/cross-aarch64-linux-gnu/template
index 18de21aa3ccd..8a6976c5fb06 100644
--- a/srcpkgs/cross-aarch64-linux-gnu/template
+++ b/srcpkgs/cross-aarch64-linux-gnu/template
@@ -1,15 +1,15 @@
 # Template file for 'cross-aarch64-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.1.0
+_glibc_version=2.36
 _linux_version=5.10.4
 pkgname=cross-aarch64-linux-gnu
-version=0.34
+version=0.35
 revision=1
 build_style=void-cross
 configure_args="--with-arch=armv8-a"
 hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
-makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
+makedepends="isl-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
 depends="${pkgname}-libc-${version}_${revision}"
 short_desc="Void cross toolchain for ${pkgname/cross-}"
 maintainer="Leah Neukirchen <leah@vuxu.org>"
@@ -17,16 +17,17 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
 homepage="https://www.voidlinux.org/"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
  ${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
 nocross=yes
 
 cross_glibc_cflags="-O2 -march=armv8-a"
+#cross_glibc_configure_args="--disable-default-pie"
 
 if [ "$XBPS_TARGET_MACHINE" = "aarch64" ]; then
 	broken="Can't build crosstoolchain to itself"

^ permalink raw reply	[flat|nested] 144+ messages in thread

* Re: [PR PATCH] [Updated] gcc: update to 12.1.0
  2022-01-06  6:15 [PR PATCH] gcc: update to 11.2.1git20211128 Oreo639
                   ` (18 preceding siblings ...)
  2022-08-15  3:20 ` oreo639
@ 2022-08-15  5:58 ` oreo639
  2022-08-15  8:14 ` oreo639
                   ` (122 subsequent siblings)
  142 siblings, 0 replies; 144+ messages in thread
From: oreo639 @ 2022-08-15  5:58 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1717 bytes --]

There is an updated pull request by oreo639 against master on the void-packages repository

https://github.com/oreo639/void-packages gcc11
https://github.com/void-linux/void-packages/pull/34902

gcc: update to 12.1.0
<!-- Uncomment relevant sections and delete options which are not applicable -->
[ci skip]

Edit: this PR had been updated for gcc 12.1.0

This PR depends on: https://github.com/void-linux/void-packages/pull/32330

I tested this PR with glibc and after updating glibc, it seems to work fine.
I also tested this PR with x86_64-musl, and it appears to run fine in a musl chroot, and recompiling and installing musl with gcc 12 doesn't appear to result in any issues. (more testing is needed)

Please let me know if there are any issues.

I compiled base-system to ensure that compiles and it appears to work fine.

#### Testing the changes
- I tested the changes in this PR: **briefly**

<!--
#### New package
- This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please [skip CI](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration)
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->

#### Local build testing
- I built this PR locally for my native architecture, (x86_64-glibc)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - x86_64-musl

A patch file from https://github.com/void-linux/void-packages/pull/34902.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-gcc11-34902.patch --]
[-- Type: text/x-diff, Size: 59670 bytes --]

From 089d015613e2b4fa8555f3bc80701a181d470a23 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 01:14:21 -0700
Subject: [PATCH 1/8] binutils: update to 2.39.

---
 ...e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch | 60 -----------------
 .../patches/ppc64-revert-gnu-attributes.patch | 66 +++++--------------
 srcpkgs/binutils/template                     |  9 +--
 3 files changed, 22 insertions(+), 113 deletions(-)
 delete mode 100644 srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch

diff --git a/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch b/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch
deleted file mode 100644
index a55432d83cff..000000000000
--- a/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff Mon Sep 17 00:00:00 2001
-From: "H.J. Lu" <hjl.tools@gmail.com>
-Date: Mon, 16 Nov 2020 06:37:53 -0800
-Subject: [PATCH] elf: Set rel_from_abs to 1 for __ehdr_start
-
-bfdlink.h has
-
-  /* Symbol will be converted from absolute to section-relative.  Set for
-     symbols defined by a script from "dot" (also SEGMENT_START or ORIGIN)
-     outside of an output section statement.  */
-  unsigned int rel_from_abs : 1;
-
-linker.c has
-
-.{* Return TRUE if the symbol described by a linker hash entry H
-.   is going to be absolute.  Linker-script defined symbols can be
-.   converted from absolute to section-relative ones late in the
-.   link.  Use this macro to correctly determine whether the symbol
-.   will actually end up absolute in output.  *}
-.#define bfd_is_abs_symbol(H) \
-.  (((H)->type == bfd_link_hash_defined \
-.    || (H)->type == bfd_link_hash_defweak) \
-.   && bfd_is_abs_section ((H)->u.def.section) \
-.   && !(H)->rel_from_abs)
-.
-
-Set rel_from_abs to 1 for __ehdr_start which will be converted from
-absolute to section-relative in assign_file_positions_for_load_sections.
-
-	PR ld/26869
-	* ldelf.c (ldelf_before_allocation): Set rel_from_abs to 1 for
-	__ehdr_start.
-	* testsuite/ld-i386/i386.exp: Run pr26869.
-	* testsuite/ld-i386/pr26869.d: New file.
-	* testsuite/ld-i386/pr26869.s: Likewise.
-
-(cherry picked from commit cbd5b99cce073273f668b154d4514e8e7e7ccc51)
----
- ld/ChangeLog                   |  9 +++++++++
- ld/ldelf.c                     |  2 ++
- ld/testsuite/ld-i386/i386.exp  |  1 +
- ld/testsuite/ld-i386/pr26869.d | 14 ++++++++++++++
- ld/testsuite/ld-i386/pr26869.s |  3 +++
- 5 files changed, 29 insertions(+)
- create mode 100644 ld/testsuite/ld-i386/pr26869.d
- create mode 100644 ld/testsuite/ld-i386/pr26869.s
-
-diff --git a/ld/ldelf.c b/ld/ldelf.c
-index bada3ade2d7..831d032fe56 100644
---- a/ld/ldelf.c
-+++ b/ld/ldelf.c
-@@ -1589,6 +1589,8 @@ ldelf_before_allocation (char *audit, char *depaudit,
- 		      (char *) &ehdr_start->u + sizeof ehdr_start->u.def.next,
- 		      sizeof ehdr_start_save_u);
- 	      ehdr_start->type = bfd_link_hash_defined;
-+	      /* It will be converted to section-relative later.  */
-+	      ehdr_start->rel_from_abs = 1;
- 	      ehdr_start->u.def.section = bfd_abs_section_ptr;
- 	      ehdr_start->u.def.value = 0;
- 	    }
diff --git a/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch b/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
index 5de937f4fcce..1c208dd8955c 100644
--- a/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
+++ b/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
@@ -1,39 +1,24 @@
-From b1faf99f3e546df2cd302bb1ad36a2078224fe8b Mon Sep 17 00:00:00 2001
+From bbf05b742fde518fb97c789b043fe0d3aaf549f0 Mon Sep 17 00:00:00 2001
 From: Ariadne Conill <ariadne@dereferenced.org>
-Date: Fri, 30 Oct 2020 16:59:48 -0600
+Date: Tue, 21 Sep 2021 14:53:13 +0000
 Subject: [PATCH] Revert "PR25882, .gnu.attributes are not checked for shared
  libraries"
 
+This revert is needed to avoid wrongly tagging objects with the incompatible
+IBM long double ABI, which is not supported by musl and will result in
+linking errors if used.
+
 This reverts commit a8acd6eeb6dc2cc5460ece90f90ebe36b56b20ba.
 ---
- bfd/ChangeLog     | 6 ------
- bfd/elf32-tic6x.c | 3 ---
- ld/ChangeLog      | 6 ------
- ld/ldlang.c       | 9 ++++-----
- 4 files changed, 4 insertions(+), 20 deletions(-)
+ bfd/elf32-tic6x.c |  3 ---
+ ld/ldlang.c       | 10 ++++------
+ 2 files changed, 4 insertions(+), 9 deletions(-)
 
-diff --git a/bfd/ChangeLog b/bfd/ChangeLog
-index 9fac12538a..b5461494e8 100644
---- a/bfd/ChangeLog
-+++ b/bfd/ChangeLog
-@@ -1422,12 +1422,6 @@
- 	accessing root.u.def of symbols.  Also check root.u.def.section
- 	is non-NULL.  Reverse tests so as to make the logic positive.
- 
--2020-05-01  Alan Modra  <amodra@gmail.com>
--
--	PR 25882
--	* elf32-tic6x.c (elf32_tic6x_merge_attributes): Don't transfer
--	Tag_ABI_PIC or Tag_ABI_PID from dynamic objects to the output.
--
- 2020-05-01  Alan Modra  <amodra@gmail.com>
- 
- 	PR 25882
 diff --git a/bfd/elf32-tic6x.c b/bfd/elf32-tic6x.c
-index b8b916bfd3..91bb6a10b1 100644
+index 5754f3cb860..3ad1d612749 100644
 --- a/bfd/elf32-tic6x.c
 +++ b/bfd/elf32-tic6x.c
-@@ -3748,9 +3748,6 @@ elf32_tic6x_merge_attributes (bfd *ibfd, struct bfd_link_info *info)
+@@ -3735,9 +3735,6 @@ elf32_tic6x_merge_attributes (bfd *ibfd, struct bfd_link_info *info)
  
  	case Tag_ABI_PIC:
  	case Tag_ABI_PID:
@@ -43,36 +28,20 @@ index b8b916bfd3..91bb6a10b1 100644
  	  if (out_attr[i].i > in_attr[i].i)
  	    out_attr[i].i = in_attr[i].i;
  	  break;
-diff --git a/ld/ChangeLog b/ld/ChangeLog
-index 4eec7d2977..b93452f70c 100644
---- a/ld/ChangeLog
-+++ b/ld/ChangeLog
-@@ -1319,12 +1319,6 @@
- 	* testsuite/ld-aarch64/farcall-group.d: New test driver.
- 	* testsuite/ld-aarch64/aarch64-elf.exp: Run the new test.
- 
--2020-05-01  Alan Modra  <amodra@gmail.com>
--
--	PR 25882
--	* ldlang.c (lang_check): Call bfd_merge_private_bfd_data for
--	shared libraries.
--
- 2020-05-01  Alan Modra  <amodra@gmail.com>
- 
- 	* po/BLD-POTFILES.in: Regenerate.
 diff --git a/ld/ldlang.c b/ld/ldlang.c
-index 9977195074..173d8ec349 100644
+index 37b64c89ee1..f13beaef9d9 100644
 --- a/ld/ldlang.c
 +++ b/ld/ldlang.c
-@@ -6972,12 +6972,11 @@ lang_check (void)
+@@ -7071,13 +7071,11 @@ lang_check (void)
  		   bfd_printable_name (input_bfd), input_bfd,
  		   bfd_printable_name (link_info.output_bfd));
  	}
 -
 -      /* If the input bfd has no contents, it shouldn't set the
 -	 private data of the output bfd.  */
--      else if ((input_bfd->flags & DYNAMIC) != 0
--	       || bfd_count_sections (input_bfd) != 0)
+-      else if (!file->flags.just_syms
+-	       && ((input_bfd->flags & DYNAMIC) != 0
+-		   || bfd_count_sections (input_bfd) != 0))
 +      else if (bfd_count_sections (input_bfd))
  	{
 +	  /* If the input bfd has no contents, it shouldn't set the
@@ -82,5 +51,4 @@ index 9977195074..173d8ec349 100644
  
  	  /* If we aren't supposed to warn about mismatched input
 -- 
-2.29.2
-
+2.33.0
diff --git a/srcpkgs/binutils/template b/srcpkgs/binutils/template
index 6270f8618c87..6eb4f1a5e829 100644
--- a/srcpkgs/binutils/template
+++ b/srcpkgs/binutils/template
@@ -1,19 +1,20 @@
 # Template file for 'binutils'
 pkgname=binutils
-version=2.35.1
-revision=4
+version=2.39
+revision=1
 bootstrap=yes
+hostmakedepends="pkg-config"
 makedepends="zlib-devel"
 short_desc="GNU binary utilities"
 maintainer="Enno Boland <gottox@voidlinux.org>"
 license="GPL-3.0-or-later"
 homepage="http://www.gnu.org/software/binutils/"
 distfiles="${GNU_SITE}/$pkgname/$pkgname-$version.tar.xz"
-checksum=3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
+checksum=645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
 
 subpackages="binutils-doc"
 if [ "$CHROOT_READY" ]; then
-	hostmakedepends="flex perl texinfo"
+	hostmakedepends+=" flex perl texinfo"
 	makedepends+=" elfutils-devel"
 	checkdepends="bc"
 	depends="binutils-doc"

From 5159209d72f3d4edff4978b823832d4000ce2b3a Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 06:26:59 -0700
Subject: [PATCH 2/8] gcc: update to 12.1.0.

---
 common/shlibs                                 |  10 +-
 srcpkgs/gcc/files/gccgo-musl.patch            |  74 +++--------
 srcpkgs/gcc/files/libgnarl-musl.patch         |  18 +--
 srcpkgs/gcc/files/libssp-musl.patch           |  10 +-
 ...c21f3f5726823e19728fdd1571a14aae0fb3.patch | 105 ++++++++++++++++
 ...08065bdd36fb1a9b6aad9666b1edb5e06474.patch | 115 ++++++++++++++++++
 ...65517a59565758107c5b1a51a5fa382f8d1a.patch |  32 +++++
 srcpkgs/gcc/patches/libffi_gnulinux.patch     |  11 --
 .../gcc/patches/libgcc-ibm128-no-tag.patch    |  10 +-
 srcpkgs/gcc/patches/mips-sgidefs_h.patch      |   3 +-
 srcpkgs/gcc/template                          |  25 ++--
 11 files changed, 305 insertions(+), 108 deletions(-)
 create mode 100644 srcpkgs/gcc/patches/3b21c21f3f5726823e19728fdd1571a14aae0fb3.patch
 create mode 100644 srcpkgs/gcc/patches/49d508065bdd36fb1a9b6aad9666b1edb5e06474.patch
 create mode 100644 srcpkgs/gcc/patches/f35d65517a59565758107c5b1a51a5fa382f8d1a.patch
 delete mode 100644 srcpkgs/gcc/patches/libffi_gnulinux.patch

diff --git a/common/shlibs b/common/shlibs
index 61924610cc52..c6400b566966 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -60,7 +60,7 @@ libcc1plugin.so.0 gcc-6.2.1_1
 libitm.so.1 libitm-4.7.3_1
 liblto_plugin.so.0 gcc-4.7.3_1
 libgcc_s.so.1 libgcc-4.4.0_1
-libgo.so.16 libgo-10.2.0_1
+libgo.so.21 libgo-12.1.0_1
 libgccjit.so.0 libgccjit-10.2.1pre1_1
 libperl.so.5.34 perl-5.34.0_1
 libgmp.so.10 gmp-5.0.1_1
@@ -849,8 +849,8 @@ libgdkmm-2.4.so.1 gtkmm2-2.24.0_1
 libgtkmm-2.4.so.1 gtkmm2-2.24.0_1
 libquadmath.so.0 libquadmath-4.4.0_1
 libgfortran.so.5 libgfortran-8.2.0_1
-libgnarl-10.so libada-10.2.0_1
-libgnat-10.so libada-10.2.0_1
+libgnarl-12.so libada-12.1.0_1
+libgnat-12.so libada-12.1.0_1
 libwebp.so.7 libwebp-0.6.0_1
 libwebpmux.so.3 libwebp-0.6.0_1
 libwebpdemux.so.2 libwebp-0.5.0_1
@@ -1701,8 +1701,8 @@ libextractor.so.3 libextractor-1.1_1
 libextractor_common.so.1 libextractor-1.1_1
 libpano13.so.3 libpano13-2.9.19_1
 libubsan.so.1 libsanitizer-8.2.0_1
-libtsan.so.0 libsanitizer-6.3.0_1
-libasan.so.6 libsanitizer-10.2.0_1
+libtsan.so.2 libsanitizer-12.1.0_1
+libasan.so.8 libsanitizer-12.1.0_1
 liblsan.so.0 libsanitizer-6.3.0_1
 libvtv.so.0 libvtv-6.3.0_1
 libatomic.so.1 libatomic-4.9.0_1
diff --git a/srcpkgs/gcc/files/gccgo-musl.patch b/srcpkgs/gcc/files/gccgo-musl.patch
index 9762739615af..632ef951097b 100644
--- a/srcpkgs/gcc/files/gccgo-musl.patch
+++ b/srcpkgs/gcc/files/gccgo-musl.patch
@@ -53,17 +53,6 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
  	p := sysMmap(addr, n, prot, flags, fd, off)
  	if uintptr(p) == _MAP_FAILED {
  		return nil, errno()
---- a/libgo/go/runtime/signal_gccgo.go
-+++ b/libgo/go/runtime/signal_gccgo.go
-@@ -111,7 +111,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")
 --- a/libgo/go/syscall/errstr.go
 +++ b/libgo/go/syscall/errstr.go
 @@ -5,7 +5,6 @@
@@ -140,55 +129,6 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
  		plwoff = &lwoff
  	}
  	n, err = splice(rfd, plroff, wfd, plwoff, len, flags)
---- 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
---- a/libgo/runtime/go-signal.c	2020-07-23 08:35:19.004402840 +0200
-+++ b/libgo/runtime/go-signal.c	2020-08-09 21:35:54.352886232 +0200
-@@ -224,7 +224,11 @@
- #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;
-+	#ifdef __PPC64__
-+		ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.gp_regs[32];
-+	#else
-+		ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.gregs[32];
-+	#endif
- #elif defined(__PPC__) && defined(_AIX)
- 	ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.jmp_context.iar;
- #elif defined(__aarch64__) && defined(__linux__)
-@@ -333,7 +337,7 @@
- 		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(__linux__) && defined(__GLIBC__)
- 	  {
- 		mcontext_t *m = &((ucontext_t*)(context))->uc_mcontext;
- 		int i;
 --- a/libgo/runtime/runtime.h
 +++ b/libgo/runtime/runtime.h
 @@ -500,10 +500,13 @@ int __go_setcontext(__go_context_t*);
@@ -220,3 +160,17 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
  #if defined(HAVE_SYS_UTSNAME_H)
  #include <sys/utsname.h>
  #endif
+--- a/libgo/go/runtime/os_linux.go
++++ a/libgo/go/runtime/os_linux.go
+@@ -363,9 +363,9 @@
+ 
+ 	var timerid int32
+ 	var sevp _sigevent
+-	sevp.sigev_notify = _SIGEV_THREAD_ID
++	sevp.sigev_notify = 4
+ 	sevp.sigev_signo = _SIGPROF
+-	*((*int32)(unsafe.Pointer(&sevp._sigev_un))) = int32(mp.procid)
++	*((*int32)(unsafe.Pointer(&sevp.sigev_notify_function))) = int32(mp.procid)
+ 	ret := timer_create(_CLOCK_THREAD_CPUTIME_ID, &sevp, &timerid)
+ 	if ret != 0 {
+ 		// If we cannot create a timer for this M, leave profileTimerValid false
diff --git a/srcpkgs/gcc/files/libgnarl-musl.patch b/srcpkgs/gcc/files/libgnarl-musl.patch
index 99a734c42c90..91c95949e0e9 100644
--- a/srcpkgs/gcc/files/libgnarl-musl.patch
+++ b/srcpkgs/gcc/files/libgnarl-musl.patch
@@ -5,7 +5,7 @@ Reason: Patch libgnarl to not use function missing from musl.
 diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/libgnarl/s-osinte__linux.ads
 --- a/gcc/ada/libgnarl/s-osinte__linux.ads	2018-01-11 00:55:25.000000000 -0800
 +++ b/gcc/ada/libgnarl/s-osinte__linux.ads	2018-11-01 16:16:23.372452951 -0700
-@@ -394,12 +394,6 @@ package System.OS_Interface is
+@@ -403,12 +403,6 @@ package System.OS_Interface is
     PTHREAD_RWLOCK_PREFER_WRITER_NP              : constant := 1;
     PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP : constant := 2;
  
@@ -18,7 +18,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/l
     function pthread_rwlock_init
       (mutex : access pthread_rwlock_t;
        attr  : access pthread_rwlockattr_t) return int;
-@@ -464,11 +458,6 @@ package System.OS_Interface is
+@@ -470,11 +464,6 @@ package System.OS_Interface is
        protocol : int) return int;
     pragma Import (C, pthread_mutexattr_setprotocol);
  
@@ -33,7 +33,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/l
 diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/libgnarl/s-taprop__linux.adb
 --- a/gcc/ada/libgnarl/s-taprop__linux.adb	2018-01-11 00:55:25.000000000 -0800
 +++ b/gcc/ada/libgnarl/s-taprop__linux.adb	2018-11-13 11:28:36.433964449 -0800
-@@ -202,9 +202,6 @@ package body System.Task_Primitives.Oper
+@@ -198,9 +198,6 @@ package body System.Task_Primitives.Oper
     pragma Import
       (C, GNAT_pthread_condattr_setup, "__gnat_pthread_condattr_setup");
  
@@ -43,7 +43,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
     --  We do not have pragma Linker_Options ("-lcap"); here, because this
     --  library is not present on many Linux systems. 'libcap' is the Linux
     --  "capabilities" library, called by __gnat_has_cap_sys_nice.
-@@ -214,38 +211,6 @@ package body System.Task_Primitives.Oper
+@@ -210,38 +207,6 @@ package body System.Task_Primitives.Oper
     --  Convert Ada priority to Linux priority. Priorities are 1 .. 99 on
     --  GNU/Linux, so we map 0 .. 98 to 1 .. 99.
  
@@ -76,13 +76,13 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
 -      return Ceiling_Support;
 -   end Get_Ceiling_Support;
 -
--   pragma Warnings (Off, "non-static call not allowed in preelaborated unit");
+-   pragma Warnings (Off, "non-preelaborable call not allowed*");
 -   Ceiling_Support : constant Boolean := Get_Ceiling_Support;
--   pragma Warnings (On, "non-static call not allowed in preelaborated unit");
+-   pragma Warnings (On, "non-preelaborable call not allowed*");
     --  True if the locking policy is Ceiling_Locking, and the current process
     --  has permission to use this policy. The process has permission if it is
     --  running as 'root', or if the capability was set by the setcap command,
-@@ -348,7 +313,9 @@ package body System.Task_Primitives.Oper
+@@ -344,7 +309,9 @@ package body System.Task_Primitives.Oper
     -- Init_Mutex --
     ----------------
  
@@ -92,7 +92,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
        Mutex_Attr : aliased pthread_mutexattr_t;
        Result, Result_2 : C.int;
  
-@@ -360,16 +327,7 @@ package body System.Task_Primitives.Oper
+@@ -356,16 +323,7 @@ package body System.Task_Primitives.Oper
           return Result;
        end if;
  
@@ -110,7 +110,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
           Result := pthread_mutexattr_setprotocol
             (Mutex_Attr'Access, PTHREAD_PRIO_INHERIT);
           pragma Assert (Result = 0);
-@@ -409,11 +367,6 @@ package body System.Task_Primitives.Oper
+@@ -405,11 +363,6 @@ package body System.Task_Primitives.Oper
              Result := pthread_rwlockattr_init (RWlock_Attr'Access);
              pragma Assert (Result = 0);
  
diff --git a/srcpkgs/gcc/files/libssp-musl.patch b/srcpkgs/gcc/files/libssp-musl.patch
index b21a2c29e57c..99f248401a1c 100644
--- a/srcpkgs/gcc/files/libssp-musl.patch
+++ b/srcpkgs/gcc/files/libssp-musl.patch
@@ -2,9 +2,9 @@ First part taken from Alpine.
 
 Second part added to prevent gccgo from thinking it can -fsplit-stack on musl.
 
---- a/gcc/gcc.c
-+++ b/gcc/gcc.c
-@@ -874,10 +874,15 @@ proper position among the other output files.  */
+--- a/gcc/gcc.cc
++++ b/gcc/gcc.cc
+@@ -984,10 +984,15 @@ proper position among the other output f
  #define LINK_GCC_C_SEQUENCE_SPEC "%G %{!nolibc:%L %G}"
  #endif
  
@@ -22,10 +22,10 @@ Second part added to prevent gccgo from thinking it can -fsplit-stack on musl.
  #else
  #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
  		       "|fstack-protector-strong|fstack-protector-explicit" \
-@@ -1155,7 +1160,7 @@ static const char *cc1_options =
+@@ -1280,7 +1285,7 @@ static const char *cc1_options =
   %{-version:--version}\
   %{-help=*:--help=%*}\
-  %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %b.s}}}\
+  %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %w%b.s}}}\
 - %{fsyntax-only:-o %j} %{-param*}\
 + %{fsyntax-only:-o %j} %{-param*} " NO_SSP_SPEC "\
   %{coverage:-fprofile-arcs -ftest-coverage}\
diff --git a/srcpkgs/gcc/patches/3b21c21f3f5726823e19728fdd1571a14aae0fb3.patch b/srcpkgs/gcc/patches/3b21c21f3f5726823e19728fdd1571a14aae0fb3.patch
new file mode 100644
index 000000000000..00929202a503
--- /dev/null
+++ b/srcpkgs/gcc/patches/3b21c21f3f5726823e19728fdd1571a14aae0fb3.patch
@@ -0,0 +1,105 @@
+From 3b21c21f3f5726823e19728fdd1571a14aae0fb3 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <siarheit@google.com>
+Date: Mon, 27 Jun 2022 13:27:24 +0100
+Subject: [PATCH] c++: avoid <memory> poisoning on musl [PR106102]
+
+On musl <pthread.h> uses calloc() (via <sched.h>). <memory> includes
+it indirectly and exposes use of poisoned calloc() when module code
+is built:
+
+    /build/build/./prev-gcc/xg++ ... ../../gcc-13-20220626/gcc/cp/mapper-resolver.cc
+        In file included from /<<NIX>>/musl-1.2.3-dev/include/pthread.h:30,
+                 from /build/build/prev-x86_64-unknown-linux-musl/libstdc++-v3/include/x86_64-unknown-linux-musl/bits/gthr-default.h:35,
+                 ....
+                 from /build/build/prev-x86_64-unknown-linux-musl/libstdc++-v3/include/memory:77,
+                 from ../../gcc-13-20220626/gcc/../libcody/cody.hh:24,
+                 from ../../gcc-13-20220626/gcc/cp/../../c++tools/resolver.h:25,
+                 from ../../gcc-13-20220626/gcc/cp/../../c++tools/resolver.cc:23,
+                 from ../../gcc-13-20220626/gcc/cp/mapper-resolver.cc:32:
+    /<<NIX>>/musl-1.2.3-dev/include/sched.h:84:7: error: attempt to use poisoned "calloc"
+       84 | void *calloc(size_t, size_t);
+          |       ^
+    /<<NIX>>/musl-1.2.3-dev/include/sched.h:124:36: error: attempt to use poisoned "calloc"
+      124 | #define CPU_ALLOC(n) ((cpu_set_t *)calloc(1,CPU_ALLOC_SIZE(n)))
+          |                                    ^
+
+gcc/cp/
+
+	PR c++/106102
+	* mapper-client.cc: Include <memory> via "system.h".
+	* mapper-resolver.cc: Ditto.
+	* module.cc: Ditto.
+
+libcc1/
+
+	PR c++/106102
+	* libcc1plugin.cc: Include <memory> via "system.h".
+	* libcp1plugin.cc: Ditto.
+---
+ gcc/cp/mapper-client.cc   | 1 +
+ gcc/cp/mapper-resolver.cc | 1 +
+ gcc/cp/module.cc          | 1 +
+ libcc1/libcc1plugin.cc    | 1 +
+ libcc1/libcp1plugin.cc    | 1 +
+ 5 files changed, 5 insertions(+)
+
+diff --git a/gcc/cp/mapper-client.cc b/gcc/cp/mapper-client.cc
+index 8603a886a099..fe9544b5ba43 100644
+--- a/gcc/cp/mapper-client.cc
++++ b/gcc/cp/mapper-client.cc
+@@ -27,6 +27,7 @@ along with GCC; see the file COPYING3.  If not see
+ #define INCLUDE_STRING
+ #define INCLUDE_VECTOR
+ #define INCLUDE_MAP
++#define INCLUDE_MEMORY
+ #include "system.h"
+ 
+ #include "line-map.h"
+diff --git a/gcc/cp/mapper-resolver.cc b/gcc/cp/mapper-resolver.cc
+index e3d29fb5ada1..e70d1b4ae2ca 100644
+--- a/gcc/cp/mapper-resolver.cc
++++ b/gcc/cp/mapper-resolver.cc
+@@ -25,6 +25,7 @@ along with GCC; see the file COPYING3.  If not see
+ #define INCLUDE_VECTOR
+ #define INCLUDE_ALGORITHM
+ #define INCLUDE_MAP
++#define INCLUDE_MEMORY
+ #include "system.h"
+ 
+ // We don't want or need to be aware of networking
+diff --git a/gcc/cp/module.cc b/gcc/cp/module.cc
+index 753963a4b246..8bb22c2b305a 100644
+--- a/gcc/cp/module.cc
++++ b/gcc/cp/module.cc
+@@ -206,6 +206,7 @@ Classes used:
+ 
+ #define _DEFAULT_SOURCE 1 /* To get TZ field of struct tm, if available.  */
+ #include "config.h"
++#define INCLUDE_MEMORY
+ #define INCLUDE_STRING
+ #define INCLUDE_VECTOR
+ #include "system.h"
+diff --git a/libcc1/libcc1plugin.cc b/libcc1/libcc1plugin.cc
+index 12ab5a57c8dd..bdd0bdabe77f 100644
+--- a/libcc1/libcc1plugin.cc
++++ b/libcc1/libcc1plugin.cc
+@@ -31,6 +31,7 @@
+ #undef PACKAGE_TARNAME
+ #undef PACKAGE_VERSION
+ 
++#define INCLUDE_MEMORY
+ #include "gcc-plugin.h"
+ #include "system.h"
+ #include "coretypes.h"
+diff --git a/libcc1/libcp1plugin.cc b/libcc1/libcp1plugin.cc
+index 83dab7f58b11..e2d5039a0a1f 100644
+--- a/libcc1/libcp1plugin.cc
++++ b/libcc1/libcp1plugin.cc
+@@ -32,6 +32,7 @@
+ #undef PACKAGE_TARNAME
+ #undef PACKAGE_VERSION
+ 
++#define INCLUDE_MEMORY
+ #include "gcc-plugin.h"
+ #include "system.h"
+ #include "coretypes.h"
diff --git a/srcpkgs/gcc/patches/49d508065bdd36fb1a9b6aad9666b1edb5e06474.patch b/srcpkgs/gcc/patches/49d508065bdd36fb1a9b6aad9666b1edb5e06474.patch
new file mode 100644
index 000000000000..89bd053d6d04
--- /dev/null
+++ b/srcpkgs/gcc/patches/49d508065bdd36fb1a9b6aad9666b1edb5e06474.patch
@@ -0,0 +1,115 @@
+From 49d508065bdd36fb1a9b6aad9666b1edb5e06474 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <siarheit@google.com>
+Date: Mon, 27 Jun 2022 23:42:44 +0100
+Subject: [PATCH] jit: avoid calloc() poisoning on musl [PR106102]
+
+On musl <pthread.h> uses calloc() (via <sched.h>). jit/ includes
+it directly and exposes use of poisoned calloc():
+
+    /build/build/./prev-gcc/xg++ ... ../../gcc-13-20220626/gcc/jit/jit-playback.cc
+    make[3]: *** [Makefile:1143: jit/libgccjit.o] Error 1
+    make[3]: *** Waiting for unfinished jobs....
+    In file included from /<<NIX>>/musl-1.2.3-dev/include/pthread.h:30,
+                     from ../../gcc-13-20220626/gcc/jit/jit-playback.cc:44:
+    /<<NIX>>/musl-1.2.3-dev/include/sched.h:84:7: error: attempt to use poisoned "calloc"
+       84 | void *calloc(size_t, size_t);
+          |       ^
+    /<<NIX>>/musl-1.2.3-dev/include/sched.h:124:36: error: attempt to use poisoned "calloc"
+      124 | #define CPU_ALLOC(n) ((cpu_set_t *)calloc(1,CPU_ALLOC_SIZE(n)))
+          |                                    ^
+
+The change moves <pthread.h> inclusion to "system.h" under new
+INCLUDE_PTHREAD_H guard and uses this mechanism in libgccjit.
+
+gcc/
+
+	PR c++/106102
+	* system.h: Introduce INCLUDE_PTHREAD_H macros to include <pthread.h>.
+
+gcc/jit/
+
+	PR c++/106102
+	* jit-playback.cc: Include <pthread.h> via "system.h" to avoid calloc()
+	poisoning.
+	* jit-recording.cc: Ditto.
+	* libgccjit.cc: Ditto.
+---
+ gcc/jit/jit-playback.cc  | 3 +--
+ gcc/jit/jit-recording.cc | 2 +-
+ gcc/jit/libgccjit.cc     | 2 +-
+ gcc/system.h             | 4 ++++
+ 4 files changed, 7 insertions(+), 4 deletions(-)
+
+diff --git a/gcc/jit/jit-playback.cc b/gcc/jit/jit-playback.cc
+index 6be6bdf8dea5..79714132b91a 100644
+--- a/gcc/jit/jit-playback.cc
++++ b/gcc/jit/jit-playback.cc
+@@ -19,6 +19,7 @@ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
++#define INCLUDE_PTHREAD_H
+ #include "system.h"
+ #include "coretypes.h"
+ #include "target.h"
+@@ -41,8 +42,6 @@ along with GCC; see the file COPYING3.  If not see
+ #include "diagnostic.h"
+ #include "stmt.h"
+ 
+-#include <pthread.h>
+-
+ #include "jit-playback.h"
+ #include "jit-result.h"
+ #include "jit-builtins.h"
+diff --git a/gcc/jit/jit-recording.cc b/gcc/jit/jit-recording.cc
+index 697dee66e733..f78daed2d71a 100644
+--- a/gcc/jit/jit-recording.cc
++++ b/gcc/jit/jit-recording.cc
+@@ -19,13 +19,13 @@ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
++#define INCLUDE_PTHREAD_H
+ #include "system.h"
+ #include "coretypes.h"
+ #include "tm.h"
+ #include "pretty-print.h"
+ #include "toplev.h"
+ 
+-#include <pthread.h>
+ 
+ #include "jit-builtins.h"
+ #include "jit-recording.h"
+diff --git a/gcc/jit/libgccjit.cc b/gcc/jit/libgccjit.cc
+index 0e76097b4bac..ca862662777e 100644
+--- a/gcc/jit/libgccjit.cc
++++ b/gcc/jit/libgccjit.cc
+@@ -19,12 +19,12 @@ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
++#define INCLUDE_PTHREAD_H
+ #include "system.h"
+ #include "coretypes.h"
+ #include "timevar.h"
+ #include "typed-splay-tree.h"
+ #include "cppbuiltin.h"
+-#include <pthread.h>
+ 
+ #include "libgccjit.h"
+ #include "jit-recording.h"
+diff --git a/gcc/system.h b/gcc/system.h
+index 67158b70c789..f8d42ff68150 100644
+--- a/gcc/system.h
++++ b/gcc/system.h
+@@ -753,6 +753,10 @@ extern int vsnprintf (char *, size_t, const char *, va_list);
+ #endif
+ #endif
+ 
++#ifdef INCLUDE_PTHREAD_H
++#include <pthread.h>
++#endif
++
+ #ifdef INCLUDE_ISL
+ #ifdef HAVE_isl
+ #include <isl/options.h>
diff --git a/srcpkgs/gcc/patches/f35d65517a59565758107c5b1a51a5fa382f8d1a.patch b/srcpkgs/gcc/patches/f35d65517a59565758107c5b1a51a5fa382f8d1a.patch
new file mode 100644
index 000000000000..044a4fc29514
--- /dev/null
+++ b/srcpkgs/gcc/patches/f35d65517a59565758107c5b1a51a5fa382f8d1a.patch
@@ -0,0 +1,32 @@
+From f35d65517a59565758107c5b1a51a5fa382f8d1a Mon Sep 17 00:00:00 2001
+From: Ian Lance Taylor <iant@golang.org>
+Date: Tue, 12 Jul 2022 19:42:43 -0700
+Subject: [PATCH] libgo: don't include <linux/fs.h> when building
+ gen-sysinfo.go
+
+Removing this doesn't change anything at least with glibc 2.33.
+The include was added in https://go.dev/cl/6100049 but it's not
+clear why.
+
+Fixes PR go/106266
+
+Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/417294
+---
+ gcc/go/gofrontend/MERGE | 2 +-
+ libgo/sysinfo.c         | 3 ---
+ 2 files changed, 1 insertion(+), 4 deletions(-)
+
+diff --git a/libgo/sysinfo.c b/libgo/sysinfo.c
+index a4259c02ded4..fc0210992faa 100644
+--- a/libgo/sysinfo.c
++++ b/libgo/sysinfo.c
+@@ -158,9 +158,6 @@
+ #if defined(HAVE_LINUX_ETHER_H)
+ #include <linux/ether.h>
+ #endif
+-#if defined(HAVE_LINUX_FS_H)
+-#include <linux/fs.h>
+-#endif
+ #if defined(HAVE_LINUX_REBOOT_H)
+ #include <linux/reboot.h>
+ #endif
diff --git a/srcpkgs/gcc/patches/libffi_gnulinux.patch b/srcpkgs/gcc/patches/libffi_gnulinux.patch
deleted file mode 100644
index 98245bd5be1a..000000000000
--- a/srcpkgs/gcc/patches/libffi_gnulinux.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/libffi/src/closures.c
-+++ b/libffi/src/closures.c
-@@ -34,7 +34,7 @@
- #include <ffi_common.h>
-
- #if !FFI_MMAP_EXEC_WRIT && !FFI_EXEC_TRAMPOLINE_TABLE
--# if __gnu_linux__ && !defined(__ANDROID__)
-+# if __linux__ && !defined(__ANDROID__)
- /* This macro indicates it may be forbidden to map anonymous memory
-    with both write and execute permission.  Code compiled when this
-    option is defined will attempt to map such pages once, but if it
diff --git a/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch b/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
index bdf5c75d917d..26d80356ad0d 100644
--- a/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
+++ b/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
@@ -29,10 +29,14 @@ diff --git a/libgcc/config/rs6000/t-linux b/libgcc/config/rs6000/t-linux
 index 4f6d4c4..fa93bb6 100644
 --- a/libgcc/config/rs6000/t-linux
 +++ b/libgcc/config/rs6000/t-linux
-@@ -1,3 +1,3 @@
+@@ -1,6 +1,6 @@
  SHLIB_MAPFILES += $(srcdir)/config/rs6000/libgcc-glibc.ver
  
--HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-minimal-toc
-+HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-gnu-attribute -mno-minimal-toc
+-HOST_LIBGCC2_CFLAGS += -mlong-double-128
++HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-gnu-attribute
+ 
+ # This is a way of selecting -mcmodel=small for ppc64, which gives
+ # smaller and faster libgcc code.  Directly specifying -mcmodel=small
+
 -- 
 2.24.0
diff --git a/srcpkgs/gcc/patches/mips-sgidefs_h.patch b/srcpkgs/gcc/patches/mips-sgidefs_h.patch
index dddfe10e8c06..78a2ce35875d 100644
--- a/srcpkgs/gcc/patches/mips-sgidefs_h.patch
+++ b/srcpkgs/gcc/patches/mips-sgidefs_h.patch
@@ -3,9 +3,10 @@
 @@ -42,7 +42,7 @@
  #define _MIPS_SIM_NABI32	2
  #define _MIPS_SIM_ABI64		3
- #elif !defined(__OpenBSD__)
+ #elif !defined(__OpenBSD__) && !defined(__FreeBSD__)
 -# include <sgidefs.h>
 +# include <asm/sgidefs.h>
  #endif
  
  #  ifndef _ABIN32
+
diff --git a/srcpkgs/gcc/template b/srcpkgs/gcc/template
index 09727ef34fb2..32ee79e32f0d 100644
--- a/srcpkgs/gcc/template
+++ b/srcpkgs/gcc/template
@@ -3,18 +3,15 @@
 # which use the version number.
 
 pkgname=gcc
-# we are using a 10-stable git snapshot alpine is using in order
-# to get regression fixes not yet incorporate into a stable release
-# it should be possible to switch back to stable with 10.3 or 11
-version=10.2.1pre1
-revision=3
+version=12.1.0
+revision=1
 _patchver="${version%pre*}"
 _minorver="${_patchver%.*}"
 _majorver="${_minorver%.*}"
-_gmp_version=6.2.0
+_gmp_version=6.2.1
 _mpfr_version=4.1.0
-_mpc_version=1.1.0
-_isl_version=0.21
+_mpc_version=1.2.1
+_isl_version=0.24
 wrksrc=gcc-${version/pre/_pre}
 short_desc="GNU Compiler Collection"
 maintainer="Enno Boland <gottox@voidlinux.org>"
@@ -22,16 +19,16 @@ homepage="http://gcc.gnu.org"
 license="GFDL-1.2-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
 # *-musl builders have issues fetching https://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz
 distfiles="
- https://dev.alpinelinux.org/~nenolod/gcc-${version/pre/_pre}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${version}/gcc-${version}.tar.xz
  https://gmplib.org/download/gmp/gmp-${_gmp_version}.tar.xz
  ${GNU_SITE}/mpfr/mpfr-${_mpfr_version}.tar.xz
  ${GNU_SITE}/mpc/mpc-${_mpc_version}.tar.gz
  ${SOURCEFORGE_SITE}/libisl/isl-${_isl_version}.tar.bz2"
-checksum="772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 258e6cd51b3fbdfc185c716d55f82c08aff57df0c6fbd143cf6ed561267a1526
+checksum="62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
+ fd4829912cddd12f84181c3451cc752be224643e87fac497b69edddadc49b4f2
  0c98a3f1732ff6ca4ea690552079da9c597872d30e96ec28414ee23c95558a7f
- 6985c538143c1208dcb1ac42cedad6ff52e267b47e5f970183a3e75125b43c2e
- d18ca11f8ad1a39ab6d03d3dcb3365ab416720fcb65b42d69f34f51bf0a0e859"
+ 17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459
+ fcf78dd9656c10eb8cf9fbd5f59a0b6b01386205fe1934b3b287a0a1898145c0"
 
 nopie=yes
 lib32disabled=yes
@@ -396,7 +393,7 @@ gcc-ada_package() {
 	depends="gcc>=${_minorver} libada-devel>=${_minorver}"
 	short_desc+=" - Ada compiler frontend"
 	pkg_install() {
-		for f in gnat{,bind,chop,clean,find,kr,link,ls,make,name,prep,xref}; do
+		for f in gnat{,bind,chop,clean,kr,link,ls,make,name,prep}; do
 			vmove usr/bin/${f}
 		done
 	}

From 00980754f4f23e46126a980f4b7e96e7406b01d4 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 06:27:47 -0700
Subject: [PATCH 3/8] libtool: update to 2.4.7.

---
 .../patches/0002-rename-with-sysroot.patch    | 34 +++++++++----------
 srcpkgs/libtool/template                      |  6 ++--
 2 files changed, 20 insertions(+), 20 deletions(-)

diff --git a/srcpkgs/libtool/patches/0002-rename-with-sysroot.patch b/srcpkgs/libtool/patches/0002-rename-with-sysroot.patch
index 960873c04e24..152aace96c41 100644
--- a/srcpkgs/libtool/patches/0002-rename-with-sysroot.patch
+++ b/srcpkgs/libtool/patches/0002-rename-with-sysroot.patch
@@ -13,16 +13,16 @@ Jürgen Buchmüller <pullmoll@t-online.de>
 
 --- a/configure	2015-02-15 17:14:34.000000000 +0100
 +++ b/configure	2015-10-20 13:25:12.684906339 +0200
-@@ -824,7 +824,7 @@
+@@ -832,7 +832,7 @@
  enable_fast_install
  with_aix_soname
  with_gnu_ld
 -with_sysroot
 +with_libtool_sysroot
  enable_libtool_lock
+ enable_cross_guesses
  '
-       ac_precious_vars='build_alias
-@@ -1487,7 +1487,8 @@
+@@ -1509,7 +1509,8 @@
                            shared library versioning (aka "SONAME") variant to
                            provide on AIX, [default=aix].
    --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
@@ -32,7 +32,7 @@ Jürgen Buchmüller <pullmoll@t-online.de>
                            compiler's sysroot if not specified).
  
  Some influential environment variables:
-@@ -7389,29 +7390,29 @@
+@@ -7610,29 +7611,29 @@
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
  $as_echo_n "checking for sysroot... " >&6; }
  
@@ -57,8 +57,8 @@ Jürgen Buchmüller <pullmoll@t-online.de>
     fi
     ;; #(
   /*)
--   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
-+   lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"`
+-   lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"`
++   lt_sysroot=`echo "$with_libtool_sysroot" | $SED -e "$sed_quote_subst"`
     ;; #(
   no|'')
     ;; #(
@@ -72,7 +72,7 @@ Jürgen Buchmüller <pullmoll@t-online.de>
  esac
 --- a/libltdl/configure	2015-02-15 17:15:15.000000000 +0100
 +++ b/libltdl/configure	2015-10-20 13:26:45.747914683 +0200
-@@ -775,7 +775,7 @@
+@@ -777,7 +777,7 @@
  with_aix_soname
  enable_dependency_tracking
  with_gnu_ld
@@ -81,7 +81,7 @@ Jürgen Buchmüller <pullmoll@t-online.de>
  enable_libtool_lock
  enable_ltdl_install
  '
-@@ -1429,7 +1429,8 @@
+@@ -1442,7 +1442,8 @@
                            shared library versioning (aka "SONAME") variant to
                            provide on AIX, [default=aix].
    --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
@@ -91,7 +91,7 @@ Jürgen Buchmüller <pullmoll@t-online.de>
                            compiler's sysroot if not specified).
  
  Some influential environment variables:
-@@ -6275,29 +6276,29 @@
+@@ -6397,29 +6398,29 @@
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
  $as_echo_n "checking for sysroot... " >&6; }
  
@@ -116,8 +116,8 @@ Jürgen Buchmüller <pullmoll@t-online.de>
     fi
     ;; #(
   /*)
--   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
-+   lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"`
+-   lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"`
++   lt_sysroot=`echo "$with_libtool_sysroot" | $SED -e "$sed_quote_subst"`
     ;; #(
   no|'')
     ;; #(
@@ -243,14 +243,14 @@ Jürgen Buchmüller <pullmoll@t-online.de>
  ]])
 --- a/m4/libtool.m4	2015-01-20 17:15:19.000000000 +0100
 +++ b/m4/libtool.m4	2015-10-20 15:40:04.020631813 +0200
-@@ -1245,29 +1245,29 @@
- # _LT_WITH_SYSROOT
+@@ -1243,29 +1243,29 @@
  # ----------------
  AC_DEFUN([_LT_WITH_SYSROOT],
--[AC_MSG_CHECKING([for sysroot])
+ [m4_require([_LT_DECL_SED])dnl
+-AC_MSG_CHECKING([for sysroot])
 -AC_ARG_WITH([sysroot],
 -[AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@],
-+[AC_MSG_CHECKING([for libtool-sysroot])
++AC_MSG_CHECKING([for libtool-sysroot])
 +AC_ARG_WITH([libtool-sysroot],
 +[AS_HELP_STRING([--with-libtool-sysroot@<:@=DIR@:>@],
    [Search for dependent libraries within DIR (or the compiler's sysroot
@@ -269,8 +269,8 @@ Jürgen Buchmüller <pullmoll@t-online.de>
     fi
     ;; #(
   /*)
--   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
-+   lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"`
+-   lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"`
++   lt_sysroot=`echo "$with_libtool_sysroot" | $SED -e "$sed_quote_subst"`
     ;; #(
   no|'')
     ;; #(
diff --git a/srcpkgs/libtool/template b/srcpkgs/libtool/template
index b9972df70341..08e35d466a44 100644
--- a/srcpkgs/libtool/template
+++ b/srcpkgs/libtool/template
@@ -1,7 +1,7 @@
 # Template file for 'libtool'
 pkgname=libtool
-version=2.4.6
-revision=6
+version=2.4.7
+revision=1
 build_style=gnu-configure
 hostmakedepends="texinfo perl automake help2man xz"
 depends="tar sed"
@@ -10,7 +10,7 @@ maintainer="Enno Boland <gottox@voidlinux.org>"
 license="GPL-2.0-or-later"
 homepage="http://www.gnu.org/software/libtool"
 distfiles="${GNU_SITE}/libtool/$pkgname-$version.tar.xz"
-checksum=7c87a8c2c8c0fc9cd5019e402bed4292462d00a718a7cd5f11218153bf28b26f
+checksum=4f7f217f057ce655ff22559ad221a0fd8ef84ad1fc5fcb6990cecc333aa1635d
 
 pre_configure() {
 	touch aclocal.m4 libltdl/aclocal.m4 Makefile.am libltdl/Makefile.am Makefile.in libltdl/Makefile.in

From be75af2647f4e539b2e90c9e6025980a8da09418 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 17:20:16 -0700
Subject: [PATCH 4/8] libiberty-devel: update to 20220713.

---
 srcpkgs/libiberty-devel/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/libiberty-devel/template b/srcpkgs/libiberty-devel/template
index 1a4e1ca3d594..b04268908c2e 100644
--- a/srcpkgs/libiberty-devel/template
+++ b/srcpkgs/libiberty-devel/template
@@ -1,6 +1,6 @@
 # Template file for 'libiberty-devel'
 pkgname=libiberty-devel
-version=20210106
+version=20220713
 revision=1
 wrksrc=libiberty-${version}
 build_wrksrc=libiberty
@@ -11,7 +11,7 @@ maintainer="q66 <daniel@octaforge.org>"
 license="GPL-3.0-or-later"
 homepage="http://gcc.gnu.org/"
 distfiles="http://deb.debian.org/debian/pool/main/libi/libiberty/libiberty_${version}.orig.tar.xz"
-checksum=9df153d69914c0f5a9145e0abbb248e72feebab6777c712a30f1c3b8c19047d4
+checksum=b59050f48c8a0f9c9e6fba5d17c7a4f11d1329de0c0dca7331b767a6d2bbe8d9
 conflicts="binutils-devel<=2.35.1_3"
 
 CFLAGS="-fPIC"

From c2c766aabce1472cea4d979dc86d631ec9aa52b9 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 23:31:45 -0700
Subject: [PATCH 5/8] glibc: update to 2.36.

---
 common/shlibs                                 |  60 ++--
 .../glibc/patches/glibc-c-utf8-locale.patch   | 286 ------------------
 srcpkgs/glibc/template                        |  62 ++--
 3 files changed, 55 insertions(+), 353 deletions(-)
 delete mode 100644 srcpkgs/glibc/patches/glibc-c-utf8-locale.patch

diff --git a/common/shlibs b/common/shlibs
index c6400b566966..65f4d1b62b61 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -17,38 +17,38 @@
 # one (order top->bottom) is preferred over the next ones.
 #
 libc.so musl-1.1.24_7
-libc.so.6 glibc-2.32_1
-libm.so.6 glibc-2.32_1
-libpthread.so.0 glibc-2.32_1
-librt.so.1 glibc-2.32_1
-libdl.so.2 glibc-2.32_1
-ld-linux-x86-64.so.2 glibc-2.32_1 x86_64
-ld-linux.so.2 glibc-2.32_1 i686
-ld-linux.so.3 glibc-2.32_1 armv5tel
-ld-linux-aarch64.so.1 glibc-2.32_1 aarch64
-ld64.so.2 glibc-2.32_1 ppc64
-ld.so.1 glibc-2.32_1 mips
-ld.so.1 glibc-2.32_1 ppc
-ld-linux-armhf.so.3 glibc-2.32_1
-libresolv.so.2 glibc-2.32_1
-libanl.so.1 glibc-2.32_1
-libthread_db.so.1 glibc-2.32_1
-libutil.so.1 glibc-2.32_1
-libnsl.so.1 glibc-2.32_1
-libnss_db.so.2 glibc-2.32_1
-libnss_files.so.2 glibc-2.32_1
-libnss_compat.so.2 glibc-2.32_1
-libnss_dns.so.2 glibc-2.32_1
-libnss_hesiod.so.2 glibc-2.32_1
-libcrypt.so.1 glibc-2.32_1
-libBrokenLocale.so.1 glibc-2.32_1
+libc.so.6 glibc-2.36_1
+libm.so.6 glibc-2.36_1
+libpthread.so.0 glibc-2.36_1
+librt.so.1 glibc-2.36_1
+libdl.so.2 glibc-2.36_1
+ld-linux-x86-64.so.2 glibc-2.36_1 x86_64
+ld-linux.so.2 glibc-2.36_1 i686
+ld-linux.so.3 glibc-2.36_1 armv5tel
+ld-linux-aarch64.so.1 glibc-2.36_1 aarch64
+ld64.so.2 glibc-2.36_1 ppc64
+ld.so.1 glibc-2.36_1 mips
+ld.so.1 glibc-2.36_1 ppc
+ld-linux-armhf.so.3 glibc-2.36_1
+libresolv.so.2 glibc-2.36_1
+libanl.so.1 glibc-2.36_1
+libthread_db.so.1 glibc-2.36_1
+libutil.so.1 glibc-2.36_1
+libnsl.so.1 glibc-2.36_1
+libnss_db.so.2 glibc-2.36_1
+libnss_files.so.2 glibc-2.36_1
+libnss_compat.so.2 glibc-2.36_1
+libnss_dns.so.2 glibc-2.36_1
+libnss_hesiod.so.2 glibc-2.36_1
+libcrypt.so.1 glibc-2.36_1
+libBrokenLocale.so.1 glibc-2.36_1
 libSimGearCore.so.2020.3.13 simgear-2020.3.13_1
 libSimGearScene.so.2020.3.13 simgear-2020.3.13_1
-libmemusage.so glibc-2.32_1
-libSegFault.so glibc-2.32_1
-libpcprofile.so glibc-2.32_1
-libcidn.so.1 glibc-2.32_1
-libmvec.so.1 glibc-2.32_1
+libmemusage.so glibc-2.36_1
+libSegFault.so glibc-2.36_1
+libpcprofile.so glibc-2.36_1
+libcidn.so.1 glibc-2.36_1
+libmvec.so.1 glibc-2.36_1
 libcddgmp.so.0 cddlib-0.94m_1
 libcdd.so.0 cddlib-0.94m_1
 libz.so.1 zlib-1.2.3_1
diff --git a/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch b/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch
deleted file mode 100644
index 7215e1558b62..000000000000
--- a/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch
+++ /dev/null
@@ -1,286 +0,0 @@
-Short description: Add C.UTF-8 support.
-Author(s): Fedora glibc team <glibc@lists.fedoraproject.org>
-Origin: PATCH
-Upstream status: not-submitted
-
-This patch needs to upstream as part of Carlos O'Donell
-<carlos@redhat.com>'s work on enabling upstream C.UTF-8 support. This
-work is currently blocked on cleaning up the test results to prove that
-full code-point sorting is working as intended.
-
-Note that this patch does not provide full code-point sorting as
-expected.
-
-This patch needs to upstream as soon as possible since it would be nice
-to have this in F29 and fixed.
-
-From 2eda7b462b415105f5a05c1323372d4e39d46439 Mon Sep 17 00:00:00 2001
-From: Mike FABIAN <mfabian@redhat.com>
-Date: Mon, 10 Aug 2015 15:58:12 +0200
-Subject: [PATCH] Add a C.UTF-8 locale
-
----
- localedata/SUPPORTED |   1 +
- localedata/locales/C | 238 +++++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 239 insertions(+)
- create mode 100644 localedata/locales/C
-
-diff --git a/localedata/SUPPORTED b/localedata/SUPPORTED
-index 8ca023e..2a78391 100644
---- a/localedata/SUPPORTED
-+++ b/localedata/SUPPORTED
-@@ -1,6 +1,7 @@
- # This file names the currently supported and somewhat tested locales.
- # If you have any additions please file a glibc bug report.
- SUPPORTED-LOCALES=\
-+C.UTF-8/UTF-8 \
- aa_DJ.UTF-8/UTF-8 \
- aa_DJ/ISO-8859-1 \
- aa_ER/UTF-8 \
-diff --git a/localedata/locales/C b/localedata/locales/C
-new file mode 100644
-index 0000000..fdf460e
---- /dev/null
-+++ b/localedata/locales/C
-@@ -0,0 +1,238 @@
-+escape_char /
-+comment_char %
-+% Locale for C locale in UTF-8
-+
-+LC_IDENTIFICATION
-+title      "C locale"
-+source     ""
-+address    ""
-+contact    ""
-+email      "mfabian@redhat.com"
-+tel        ""
-+fax        ""
-+language   "C"
-+territory  ""
-+revision   "1.0"
-+date       "2015-08-10"
-+%
-+category  "i18n:2012";LC_IDENTIFICATION
-+category  "i18n:2012";LC_CTYPE
-+category  "i18n:2012";LC_COLLATE
-+category  "i18n:2012";LC_TIME
-+category  "i18n:2012";LC_NUMERIC
-+category  "i18n:2012";LC_MONETARY
-+category  "i18n:2012";LC_MESSAGES
-+category  "i18n:2012";LC_PAPER
-+category  "i18n:2012";LC_NAME
-+category  "i18n:2012";LC_ADDRESS
-+category  "i18n:2012";LC_TELEPHONE
-+category  "i18n:2012";LC_MEASUREMENT
-+END LC_IDENTIFICATION
-+
-+LC_CTYPE
-+copy "i18n"
-+
-+translit_start
-+include "translit_combining";""
-+translit_end
-+
-+END LC_CTYPE
-+
-+LC_COLLATE
-+order_start forward
-+<U0000>
-+..
-+<UFFFF>
-+<U10000>
-+..
-+<U1FFFF>
-+<U20000>
-+..
-+<U2FFFF>
-+<UE0000>
-+..
-+<UEFFFF>
-+<UF0000>
-+..
-+<UFFFFF>
-+<U100000>
-+..
-+<U10FFFF>
-+UNDEFINED
-+order_end
-+END LC_COLLATE
-+
-+LC_MONETARY
-+% This is the 14652 i18n fdcc-set definition for
-+% the LC_MONETARY category
-+% (except for the int_curr_symbol and currency_symbol, they are empty in
-+% the 14652 i18n fdcc-set definition and also empty in
-+% glibc/locale/C-monetary.c. But localedef complains in that case).
-+%
-+% Using "USD" for int_curr_symbol. But maybe "XXX" would be better?
-+% XXX is "No currency" (https://en.wikipedia.org/wiki/ISO_4217)
-+int_curr_symbol     "<U0055><U0053><U0044><U0020>"
-+% Using "$" for currency_symbol. But maybe <U00A4> would be better?
-+% U+00A4 is the "generic currency symbol"
-+% (https://en.wikipedia.org/wiki/Currency_sign_%28typography%29)
-+currency_symbol     "<U0024>"
-+mon_decimal_point   "<U002E>"
-+mon_thousands_sep   ""
-+mon_grouping        -1
-+positive_sign       ""
-+negative_sign       "<U002D>"
-+int_frac_digits     -1
-+frac_digits         -1
-+p_cs_precedes       -1
-+int_p_sep_by_space  -1
-+p_sep_by_space      -1
-+n_cs_precedes       -1
-+int_n_sep_by_space  -1
-+n_sep_by_space      -1
-+p_sign_posn         -1
-+n_sign_posn         -1
-+%
-+END LC_MONETARY
-+
-+LC_NUMERIC
-+% This is the POSIX Locale definition for
-+% the LC_NUMERIC category.
-+%
-+decimal_point   "<U002E>"
-+thousands_sep   ""
-+grouping        -1
-+END LC_NUMERIC
-+
-+LC_TIME
-+% This is the POSIX Locale definition for
-+% the LC_TIME category.
-+%
-+% Abbreviated weekday names (%a)
-+abday       "<U0053><U0075><U006E>";"<U004D><U006F><U006E>";/
-+            "<U0054><U0075><U0065>";"<U0057><U0065><U0064>";/
-+            "<U0054><U0068><U0075>";"<U0046><U0072><U0069>";/
-+            "<U0053><U0061><U0074>"
-+
-+% Full weekday names (%A)
-+day         "<U0053><U0075><U006E><U0064><U0061><U0079>";/
-+            "<U004D><U006F><U006E><U0064><U0061><U0079>";/
-+            "<U0054><U0075><U0065><U0073><U0064><U0061><U0079>";/
-+            "<U0057><U0065><U0064><U006E><U0065><U0073><U0064><U0061><U0079>";/
-+            "<U0054><U0068><U0075><U0072><U0073><U0064><U0061><U0079>";/
-+            "<U0046><U0072><U0069><U0064><U0061><U0079>";/
-+            "<U0053><U0061><U0074><U0075><U0072><U0064><U0061><U0079>"
-+
-+% Abbreviated month names (%b)
-+abmon       "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
-+            "<U004D><U0061><U0072>";"<U0041><U0070><U0072>";/
-+            "<U004D><U0061><U0079>";"<U004A><U0075><U006E>";/
-+            "<U004A><U0075><U006C>";"<U0041><U0075><U0067>";/
-+            "<U0053><U0065><U0070>";"<U004F><U0063><U0074>";/
-+            "<U004E><U006F><U0076>";"<U0044><U0065><U0063>"
-+
-+% Full month names (%B)
-+mon         "<U004A><U0061><U006E><U0075><U0061><U0072><U0079>";/
-+            "<U0046><U0065><U0062><U0072><U0075><U0061><U0072><U0079>";/
-+            "<U004D><U0061><U0072><U0063><U0068>";/
-+            "<U0041><U0070><U0072><U0069><U006C>";/
-+            "<U004D><U0061><U0079>";/
-+            "<U004A><U0075><U006E><U0065>";/
-+            "<U004A><U0075><U006C><U0079>";/
-+            "<U0041><U0075><U0067><U0075><U0073><U0074>";/
-+            "<U0053><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";/
-+            "<U004F><U0063><U0074><U006F><U0062><U0065><U0072>";/
-+            "<U004E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/
-+            "<U0044><U0065><U0063><U0065><U006D><U0062><U0065><U0072>"
-+
-+% Week description, consists of three fields:
-+% 1. Number of days in a week.
-+% 2. Gregorian date that is a first weekday (19971130 for Sunday, 19971201 for Monday).
-+% 3. The weekday number to be contained in the first week of the year.
-+%
-+% ISO 8601 conforming applications should use the values 7, 19971201 (a
-+% Monday), and 4 (Thursday), respectively.
-+week    7;19971201;4
-+first_weekday	1
-+first_workday	1
-+
-+% Appropriate date and time representation (%c)
-+%	"%a %b %e %H:%M:%S %Y"
-+d_t_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0059>"
-+
-+% Appropriate date representation (%x)
-+%	"%m/%d/%y"
-+d_fmt   "<U0025><U006D><U002F><U0025><U0064><U002F><U0025><U0079>"
-+
-+% Appropriate time representation (%X)
-+%	"%H:%M:%S"
-+t_fmt   "<U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053>"
-+
-+% Appropriate AM/PM time representation (%r)
-+%	"%I:%M:%S %p"
-+t_fmt_ampm "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0070>"
-+
-+% Equivalent of AM/PM (%p)      "AM"/"PM"
-+%
-+am_pm	"<U0041><U004D>";"<U0050><U004D>"
-+
-+% Appropriate date representation (date(1))   "%a %b %e %H:%M:%S %Z %Y"
-+date_fmt	"<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U005A><U0020><U0025><U0059>"
-+END LC_TIME
-+
-+LC_MESSAGES
-+% This is the POSIX Locale definition for
-+% the LC_NUMERIC category.
-+%
-+yesexpr "<U005E><U005B><U0079><U0059><U005D>"
-+noexpr  "<U005E><U005B><U006E><U004E><U005D>"
-+yesstr  "<U0059><U0065><U0073>"
-+nostr   "<U004E><U006F>"
-+END LC_MESSAGES
-+
-+LC_PAPER
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_PAPER category.
-+% (A4 paper, this is also used in the built in C/POSIX
-+% locale in glibc/locale/C-paper.c)
-+height   297
-+width    210
-+END LC_PAPER
-+
-+LC_NAME
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_NAME category.
-+% "%p%t%g%t%m%t%f"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-name.c)
-+name_fmt    "<U0025><U0070><U0025><U0074><U0025><U0067><U0025><U0074>/
-+<U0025><U006D><U0025><U0074><U0025><U0066>"
-+END LC_NAME
-+
-+LC_ADDRESS
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_ADDRESS category.
-+% "%a%N%f%N%d%N%b%N%s %h %e %r%N%C-%z %T%N%c%N"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-address.c)
-+postal_fmt    "<U0025><U0061><U0025><U004E><U0025><U0066><U0025><U004E>/
-+<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
-+<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
-+<U004E><U0025><U0043><U002D><U0025><U007A><U0020><U0025><U0054><U0025>/
-+<U004E><U0025><U0063><U0025><U004E>"
-+END LC_ADDRESS
-+
-+LC_TELEPHONE
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_TELEPHONE category.
-+% "+%c %a %l"
-+tel_int_fmt    "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025>/
-+<U006C>"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-telephone.c)
-+END LC_TELEPHONE
-+
-+LC_MEASUREMENT
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_MEASUREMENT category.
-+% (same as in the built in C/POSIX locale in glibc/locale/C-measurement.c)
-+%metric
-+measurement    1
-+END LC_MEASUREMENT
-+
--- 
-2.4.3
-
diff --git a/srcpkgs/glibc/template b/srcpkgs/glibc/template
index c62a4d2aedf1..139aab865864 100644
--- a/srcpkgs/glibc/template
+++ b/srcpkgs/glibc/template
@@ -1,14 +1,14 @@
 # Template file for 'glibc'
 pkgname=glibc
-version=2.32
-revision=2
+version=2.36
+revision=1
 bootstrap=yes
 short_desc="GNU C library"
 maintainer="Enno Boland <gottox@voidlinux.org>"
 license="GPL-2.0-or-later, LGPL-2.1-or-later, BSD-3-Clause"
 homepage="http://www.gnu.org/software/libc"
 distfiles="${GNU_SITE}/glibc/glibc-${version}.tar.xz"
-checksum=1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum=1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
 # Do not strip these files, objcopy errors out.
 nostrip_files="
 	XBS5_ILP32_OFFBIG
@@ -20,27 +20,28 @@ nostrip_files="
 	POSIX_V6_LP64_OFF64
 	POSIX_V7_LP64_OFF64
 	XBS5_LP64_OFF64
-	ld-${version}.so
-	libdl-${version}.so
-	libanl-${version}.so
-	libcidn-${version}.so
-	libresolv-${version}.so
-	libcrypt-${version}.so
-	libpthread-${version}.so
-	libm-${version}.so
-	libutil-${version}.so
-	libthread_db-1.0.so
-	librt-${version}.so
-	libnsl-${version}.so
-	libc-${version}.so
-	libBrokenLocale-${version}.so
-	libnss_compat-${version}.so
-	libnss_db-${version}.so
-	libnss_dns-${version}.so
-	libnss_files-${version}.so
-	libnss_hesiod-${version}.so
-	libnss_nisplus-${version}.so
-	libnss_nis-${version}.so"
+	ld-linux-x86-64.so.2
+	ld-linux.so.2
+	ld-linux.so.3
+	ld-linux-aarch64.so.1
+	ld64.so.2
+	ld.so.1
+	ld-linux-armhf.so.3
+	libresolv.so.2
+	libcrypt.so.1
+	libm.so.6
+	libthread_db.so.1
+	libnsl.so.1
+	libc.so.6
+	libc_malloc_debug.so.0
+	libmemusage.so
+	libmvec.so.1
+	libBrokenLocale.so.1
+	libnss_compat.so.2
+	libnss_db.so.2
+	libnss_dns.so.2
+	libnss_files.so.2
+	libnss_hesiod.so.2"
 
 conf_files="
 	/etc/rpc
@@ -54,7 +55,6 @@ lib32files="/usr/lib/gconv/gconv-modules"
 lib32symlinks="ld-linux.so.2"
 # There's no point in building this for musl.
 archs="~*-musl"
-nopie=yes
 
 do_configure() {
 	mkdir build
@@ -163,18 +163,6 @@ do_install() {
 	rm -f ${DESTDIR}/usr/bin/z{dump,ic}
 
 	mv ${DESTDIR}/usr/sbin/* ${DESTDIR}/usr/bin
-
-	# Create xbps.d(5) arch override file for 32-bit architectures
-	# 32-bit userlands may be used with 64-bit kernels and then
-	# xbps will report an incorrect architecture by default
-	case "$XBPS_TARGET_MACHINE" in
-		i686|ppc|ppcle|armv*)
-			vmkdir usr/share/xbps.d
-			echo "architecture=${XBPS_TARGET_MACHINE}" > \
-				${DESTDIR}/usr/share/xbps.d/arch-32bit.conf
-			;;
-		*) ;;
-	esac
 }
 
 glibc-devel_package() {

From f8e0bd641b5216cecadb58d19e23c96f1b3745aa Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Sun, 14 Aug 2022 19:29:36 -0700
Subject: [PATCH 6/8] build-style/void-cross: Update flags for gcc12 and glibc
 2.36

gcov can't be built without libc:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100289

glibc 2.35 ane newer uses -static-pie by default:
https://sourceware.org/pipermail/glibc-cvs/2021q4/075916.html
---
 common/build-style/void-cross.sh | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/common/build-style/void-cross.sh b/common/build-style/void-cross.sh
index 92f03f8130f5..24d02865b164 100644
--- a/common/build-style/void-cross.sh
+++ b/common/build-style/void-cross.sh
@@ -132,6 +132,7 @@ _void_cross_build_bootstrap_gcc() {
 		--disable-libssp \
 		--disable-libitm \
 		--disable-libatomic \
+		--disable-gcov \
 		--disable-threads \
 		--disable-sjlj-exceptions \
 		--enable-languages=c \
@@ -246,6 +247,15 @@ _void_cross_build_glibc() {
 	local tgt=$1
 	local ver=$2
 
+	# glibc 2.35 and newer uses -static-pie by default
+	# which does not work with -no-pie.
+	local oldcflags="${CFLAGS}"
+	local oldcxxflags="${CXXFLAGS}"
+	local oldldflags="${LDFLAGS}"
+	CFLAGS="${CFLAGS//"-fno-PIE"/}"
+	CXXFLAGS="${CXXFLAGS//"-fno-PIE"/}"
+	LDFLAGS="${LDFLAGS//"-no-pie"/}"
+
 	msg_normal "Building glibc for ${tgt}\n"
 
 	mkdir -p ${wrksrc}/glibc_build
@@ -279,6 +289,9 @@ _void_cross_build_glibc() {
 	make ${makejobs}
 	make install_root=${wrksrc}/build_root/usr/${tgt} install
 
+	CFLAGS="${oldcflags}"
+	CXXFLAGS="${oldcxxflags}"
+	LDFLAGS="${oldldflags}"
 	touch ${wrksrc}/.glibc_build_done
 }
 

From e988fa9835b5cd7d348c55edab39650dafc5aa7a Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 20:08:52 -0700
Subject: [PATCH 7/8] openssh: suppress werror on gcc12

---
 srcpkgs/openssh/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/openssh/template b/srcpkgs/openssh/template
index 02a2dec35f42..6e8e343a9dca 100644
--- a/srcpkgs/openssh/template
+++ b/srcpkgs/openssh/template
@@ -40,7 +40,7 @@ if [ "$build_option_ldns" -a -z "$build_option_ssl" ]; then
 	broken="option 'ldns' requires option 'ssl'"
 fi
 
-CFLAGS="-Wno-format-truncation -Wno-stringop-truncation"
+CFLAGS="-Wno-format-truncation -Wno-stringop-truncation -Wno-error=maybe-uninitialized"
 
 case $XBPS_TARGET_MACHINE in
 	i686-musl)

From 407b3fd8dba1c57cf3ed045c7e4442e82527691d Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 20:09:31 -0700
Subject: [PATCH 8/8] linux5.18: update dotconfigs for gcc12

---
 srcpkgs/linux5.18/files/x86_64-dotconfig | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/srcpkgs/linux5.18/files/x86_64-dotconfig b/srcpkgs/linux5.18/files/x86_64-dotconfig
index 4e73a3195d40..ea6204868e23 100644
--- a/srcpkgs/linux5.18/files/x86_64-dotconfig
+++ b/srcpkgs/linux5.18/files/x86_64-dotconfig
@@ -512,6 +512,7 @@ CONFIG_RETHUNK=y
 CONFIG_CPU_UNRET_ENTRY=y
 CONFIG_CPU_IBPB_ENTRY=y
 CONFIG_CPU_IBRS_ENTRY=y
+CONFIG_SLS=y
 CONFIG_ARCH_HAS_ADD_PAGES=y
 CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y
 
@@ -10060,8 +10061,11 @@ CONFIG_LSM="yama,loadpin,safesetid,integrity"
 # Memory initialization
 #
 CONFIG_INIT_STACK_NONE=y
+# CONFIG_INIT_STACK_ALL_PATTERN is not set
+# CONFIG_INIT_STACK_ALL_ZERO is not set
 CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
 # CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
+# CONFIG_ZERO_CALL_USED_REGS is not set
 # end of Memory initialization
 # end of Kernel hardening options
 # end of Security options
@@ -10538,6 +10542,7 @@ CONFIG_HAVE_ARCH_KGDB=y
 CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
 # CONFIG_UBSAN is not set
 CONFIG_HAVE_ARCH_KCSAN=y
+# CONFIG_KCSAN is not set
 # end of Generic Kernel Debugging Instruments
 
 #

^ permalink raw reply	[flat|nested] 144+ messages in thread

* Re: [PR PATCH] [Updated] gcc: update to 12.1.0
  2022-01-06  6:15 [PR PATCH] gcc: update to 11.2.1git20211128 Oreo639
                   ` (19 preceding siblings ...)
  2022-08-15  5:58 ` oreo639
@ 2022-08-15  8:14 ` oreo639
  2022-08-15  8:17 ` oreo639
                   ` (121 subsequent siblings)
  142 siblings, 0 replies; 144+ messages in thread
From: oreo639 @ 2022-08-15  8:14 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 2605 bytes --]

There is an updated pull request by oreo639 against master on the void-packages repository

https://github.com/oreo639/void-packages gcc11
https://github.com/void-linux/void-packages/pull/34902

gcc: update to 12.1.0
<!-- Uncomment relevant sections and delete options which are not applicable -->
[ci skip]

Edit: this PR had been updated for gcc 12.1.0

This PR depends on: https://github.com/void-linux/void-packages/pull/32330

I tested this PR with glibc and after updating glibc, it seems to work fine.
I also tested this PR with x86_64-musl, and it appears to run fine in a musl chroot, and recompiling and installing musl with gcc 12 doesn't appear to result in any issues. (more testing is needed)

Please let me know if there are any issues.

I compiled base-system to ensure that compiles and it appears to work fine.

I tested some of the cross compilers and after some debugging with the help of CameronNemo, we figured out the issue.
The cross compilers are built with `nopie=yes` (specified in environment/build-style), which causes issues with glibc 2.35+ which uses PIE by default.
gcc always builds itself as nopie.
I added a workaround to common/build-style/void-cross but if you have any other recommendations on how to handle it, feel free to let me know.

Also, keep in mind that the libgo musl patch here will need to be updated once musl is updated:
https://github.com/void-linux/void-packages/pull/34902/files#diff-1f42a95b93c9550178ff1fbccbef2f47a72711df15c24c9472e2550076978129R163-R176

This is the updated patch for reference:
https://github.com/alpinelinux/aports/blob/8acb21b8ee881e7ab1c812d9a66a17d2501b8730/main/gcc/0049-libgo-adjust-name-of-union-in-sigevent-struct.patch

#### Testing the changes
- I tested the changes in this PR: **briefly**

<!--
#### New package
- This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please [skip CI](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration)
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->

#### Local build testing
- I built this PR locally for my native architecture, (x86_64-glibc)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - x86_64-musl

A patch file from https://github.com/void-linux/void-packages/pull/34902.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-gcc11-34902.patch --]
[-- Type: text/x-diff, Size: 105042 bytes --]

From 089d015613e2b4fa8555f3bc80701a181d470a23 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 01:14:21 -0700
Subject: [PATCH 01/31] binutils: update to 2.39.

---
 ...e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch | 60 -----------------
 .../patches/ppc64-revert-gnu-attributes.patch | 66 +++++--------------
 srcpkgs/binutils/template                     |  9 +--
 3 files changed, 22 insertions(+), 113 deletions(-)
 delete mode 100644 srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch

diff --git a/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch b/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch
deleted file mode 100644
index a55432d83cff..000000000000
--- a/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff Mon Sep 17 00:00:00 2001
-From: "H.J. Lu" <hjl.tools@gmail.com>
-Date: Mon, 16 Nov 2020 06:37:53 -0800
-Subject: [PATCH] elf: Set rel_from_abs to 1 for __ehdr_start
-
-bfdlink.h has
-
-  /* Symbol will be converted from absolute to section-relative.  Set for
-     symbols defined by a script from "dot" (also SEGMENT_START or ORIGIN)
-     outside of an output section statement.  */
-  unsigned int rel_from_abs : 1;
-
-linker.c has
-
-.{* Return TRUE if the symbol described by a linker hash entry H
-.   is going to be absolute.  Linker-script defined symbols can be
-.   converted from absolute to section-relative ones late in the
-.   link.  Use this macro to correctly determine whether the symbol
-.   will actually end up absolute in output.  *}
-.#define bfd_is_abs_symbol(H) \
-.  (((H)->type == bfd_link_hash_defined \
-.    || (H)->type == bfd_link_hash_defweak) \
-.   && bfd_is_abs_section ((H)->u.def.section) \
-.   && !(H)->rel_from_abs)
-.
-
-Set rel_from_abs to 1 for __ehdr_start which will be converted from
-absolute to section-relative in assign_file_positions_for_load_sections.
-
-	PR ld/26869
-	* ldelf.c (ldelf_before_allocation): Set rel_from_abs to 1 for
-	__ehdr_start.
-	* testsuite/ld-i386/i386.exp: Run pr26869.
-	* testsuite/ld-i386/pr26869.d: New file.
-	* testsuite/ld-i386/pr26869.s: Likewise.
-
-(cherry picked from commit cbd5b99cce073273f668b154d4514e8e7e7ccc51)
----
- ld/ChangeLog                   |  9 +++++++++
- ld/ldelf.c                     |  2 ++
- ld/testsuite/ld-i386/i386.exp  |  1 +
- ld/testsuite/ld-i386/pr26869.d | 14 ++++++++++++++
- ld/testsuite/ld-i386/pr26869.s |  3 +++
- 5 files changed, 29 insertions(+)
- create mode 100644 ld/testsuite/ld-i386/pr26869.d
- create mode 100644 ld/testsuite/ld-i386/pr26869.s
-
-diff --git a/ld/ldelf.c b/ld/ldelf.c
-index bada3ade2d7..831d032fe56 100644
---- a/ld/ldelf.c
-+++ b/ld/ldelf.c
-@@ -1589,6 +1589,8 @@ ldelf_before_allocation (char *audit, char *depaudit,
- 		      (char *) &ehdr_start->u + sizeof ehdr_start->u.def.next,
- 		      sizeof ehdr_start_save_u);
- 	      ehdr_start->type = bfd_link_hash_defined;
-+	      /* It will be converted to section-relative later.  */
-+	      ehdr_start->rel_from_abs = 1;
- 	      ehdr_start->u.def.section = bfd_abs_section_ptr;
- 	      ehdr_start->u.def.value = 0;
- 	    }
diff --git a/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch b/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
index 5de937f4fcce..1c208dd8955c 100644
--- a/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
+++ b/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
@@ -1,39 +1,24 @@
-From b1faf99f3e546df2cd302bb1ad36a2078224fe8b Mon Sep 17 00:00:00 2001
+From bbf05b742fde518fb97c789b043fe0d3aaf549f0 Mon Sep 17 00:00:00 2001
 From: Ariadne Conill <ariadne@dereferenced.org>
-Date: Fri, 30 Oct 2020 16:59:48 -0600
+Date: Tue, 21 Sep 2021 14:53:13 +0000
 Subject: [PATCH] Revert "PR25882, .gnu.attributes are not checked for shared
  libraries"
 
+This revert is needed to avoid wrongly tagging objects with the incompatible
+IBM long double ABI, which is not supported by musl and will result in
+linking errors if used.
+
 This reverts commit a8acd6eeb6dc2cc5460ece90f90ebe36b56b20ba.
 ---
- bfd/ChangeLog     | 6 ------
- bfd/elf32-tic6x.c | 3 ---
- ld/ChangeLog      | 6 ------
- ld/ldlang.c       | 9 ++++-----
- 4 files changed, 4 insertions(+), 20 deletions(-)
+ bfd/elf32-tic6x.c |  3 ---
+ ld/ldlang.c       | 10 ++++------
+ 2 files changed, 4 insertions(+), 9 deletions(-)
 
-diff --git a/bfd/ChangeLog b/bfd/ChangeLog
-index 9fac12538a..b5461494e8 100644
---- a/bfd/ChangeLog
-+++ b/bfd/ChangeLog
-@@ -1422,12 +1422,6 @@
- 	accessing root.u.def of symbols.  Also check root.u.def.section
- 	is non-NULL.  Reverse tests so as to make the logic positive.
- 
--2020-05-01  Alan Modra  <amodra@gmail.com>
--
--	PR 25882
--	* elf32-tic6x.c (elf32_tic6x_merge_attributes): Don't transfer
--	Tag_ABI_PIC or Tag_ABI_PID from dynamic objects to the output.
--
- 2020-05-01  Alan Modra  <amodra@gmail.com>
- 
- 	PR 25882
 diff --git a/bfd/elf32-tic6x.c b/bfd/elf32-tic6x.c
-index b8b916bfd3..91bb6a10b1 100644
+index 5754f3cb860..3ad1d612749 100644
 --- a/bfd/elf32-tic6x.c
 +++ b/bfd/elf32-tic6x.c
-@@ -3748,9 +3748,6 @@ elf32_tic6x_merge_attributes (bfd *ibfd, struct bfd_link_info *info)
+@@ -3735,9 +3735,6 @@ elf32_tic6x_merge_attributes (bfd *ibfd, struct bfd_link_info *info)
  
  	case Tag_ABI_PIC:
  	case Tag_ABI_PID:
@@ -43,36 +28,20 @@ index b8b916bfd3..91bb6a10b1 100644
  	  if (out_attr[i].i > in_attr[i].i)
  	    out_attr[i].i = in_attr[i].i;
  	  break;
-diff --git a/ld/ChangeLog b/ld/ChangeLog
-index 4eec7d2977..b93452f70c 100644
---- a/ld/ChangeLog
-+++ b/ld/ChangeLog
-@@ -1319,12 +1319,6 @@
- 	* testsuite/ld-aarch64/farcall-group.d: New test driver.
- 	* testsuite/ld-aarch64/aarch64-elf.exp: Run the new test.
- 
--2020-05-01  Alan Modra  <amodra@gmail.com>
--
--	PR 25882
--	* ldlang.c (lang_check): Call bfd_merge_private_bfd_data for
--	shared libraries.
--
- 2020-05-01  Alan Modra  <amodra@gmail.com>
- 
- 	* po/BLD-POTFILES.in: Regenerate.
 diff --git a/ld/ldlang.c b/ld/ldlang.c
-index 9977195074..173d8ec349 100644
+index 37b64c89ee1..f13beaef9d9 100644
 --- a/ld/ldlang.c
 +++ b/ld/ldlang.c
-@@ -6972,12 +6972,11 @@ lang_check (void)
+@@ -7071,13 +7071,11 @@ lang_check (void)
  		   bfd_printable_name (input_bfd), input_bfd,
  		   bfd_printable_name (link_info.output_bfd));
  	}
 -
 -      /* If the input bfd has no contents, it shouldn't set the
 -	 private data of the output bfd.  */
--      else if ((input_bfd->flags & DYNAMIC) != 0
--	       || bfd_count_sections (input_bfd) != 0)
+-      else if (!file->flags.just_syms
+-	       && ((input_bfd->flags & DYNAMIC) != 0
+-		   || bfd_count_sections (input_bfd) != 0))
 +      else if (bfd_count_sections (input_bfd))
  	{
 +	  /* If the input bfd has no contents, it shouldn't set the
@@ -82,5 +51,4 @@ index 9977195074..173d8ec349 100644
  
  	  /* If we aren't supposed to warn about mismatched input
 -- 
-2.29.2
-
+2.33.0
diff --git a/srcpkgs/binutils/template b/srcpkgs/binutils/template
index 6270f8618c87..6eb4f1a5e829 100644
--- a/srcpkgs/binutils/template
+++ b/srcpkgs/binutils/template
@@ -1,19 +1,20 @@
 # Template file for 'binutils'
 pkgname=binutils
-version=2.35.1
-revision=4
+version=2.39
+revision=1
 bootstrap=yes
+hostmakedepends="pkg-config"
 makedepends="zlib-devel"
 short_desc="GNU binary utilities"
 maintainer="Enno Boland <gottox@voidlinux.org>"
 license="GPL-3.0-or-later"
 homepage="http://www.gnu.org/software/binutils/"
 distfiles="${GNU_SITE}/$pkgname/$pkgname-$version.tar.xz"
-checksum=3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
+checksum=645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
 
 subpackages="binutils-doc"
 if [ "$CHROOT_READY" ]; then
-	hostmakedepends="flex perl texinfo"
+	hostmakedepends+=" flex perl texinfo"
 	makedepends+=" elfutils-devel"
 	checkdepends="bc"
 	depends="binutils-doc"

From 5159209d72f3d4edff4978b823832d4000ce2b3a Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 06:26:59 -0700
Subject: [PATCH 02/31] gcc: update to 12.1.0.

---
 common/shlibs                                 |  10 +-
 srcpkgs/gcc/files/gccgo-musl.patch            |  74 +++--------
 srcpkgs/gcc/files/libgnarl-musl.patch         |  18 +--
 srcpkgs/gcc/files/libssp-musl.patch           |  10 +-
 ...c21f3f5726823e19728fdd1571a14aae0fb3.patch | 105 ++++++++++++++++
 ...08065bdd36fb1a9b6aad9666b1edb5e06474.patch | 115 ++++++++++++++++++
 ...65517a59565758107c5b1a51a5fa382f8d1a.patch |  32 +++++
 srcpkgs/gcc/patches/libffi_gnulinux.patch     |  11 --
 .../gcc/patches/libgcc-ibm128-no-tag.patch    |  10 +-
 srcpkgs/gcc/patches/mips-sgidefs_h.patch      |   3 +-
 srcpkgs/gcc/template                          |  25 ++--
 11 files changed, 305 insertions(+), 108 deletions(-)
 create mode 100644 srcpkgs/gcc/patches/3b21c21f3f5726823e19728fdd1571a14aae0fb3.patch
 create mode 100644 srcpkgs/gcc/patches/49d508065bdd36fb1a9b6aad9666b1edb5e06474.patch
 create mode 100644 srcpkgs/gcc/patches/f35d65517a59565758107c5b1a51a5fa382f8d1a.patch
 delete mode 100644 srcpkgs/gcc/patches/libffi_gnulinux.patch

diff --git a/common/shlibs b/common/shlibs
index 61924610cc52..c6400b566966 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -60,7 +60,7 @@ libcc1plugin.so.0 gcc-6.2.1_1
 libitm.so.1 libitm-4.7.3_1
 liblto_plugin.so.0 gcc-4.7.3_1
 libgcc_s.so.1 libgcc-4.4.0_1
-libgo.so.16 libgo-10.2.0_1
+libgo.so.21 libgo-12.1.0_1
 libgccjit.so.0 libgccjit-10.2.1pre1_1
 libperl.so.5.34 perl-5.34.0_1
 libgmp.so.10 gmp-5.0.1_1
@@ -849,8 +849,8 @@ libgdkmm-2.4.so.1 gtkmm2-2.24.0_1
 libgtkmm-2.4.so.1 gtkmm2-2.24.0_1
 libquadmath.so.0 libquadmath-4.4.0_1
 libgfortran.so.5 libgfortran-8.2.0_1
-libgnarl-10.so libada-10.2.0_1
-libgnat-10.so libada-10.2.0_1
+libgnarl-12.so libada-12.1.0_1
+libgnat-12.so libada-12.1.0_1
 libwebp.so.7 libwebp-0.6.0_1
 libwebpmux.so.3 libwebp-0.6.0_1
 libwebpdemux.so.2 libwebp-0.5.0_1
@@ -1701,8 +1701,8 @@ libextractor.so.3 libextractor-1.1_1
 libextractor_common.so.1 libextractor-1.1_1
 libpano13.so.3 libpano13-2.9.19_1
 libubsan.so.1 libsanitizer-8.2.0_1
-libtsan.so.0 libsanitizer-6.3.0_1
-libasan.so.6 libsanitizer-10.2.0_1
+libtsan.so.2 libsanitizer-12.1.0_1
+libasan.so.8 libsanitizer-12.1.0_1
 liblsan.so.0 libsanitizer-6.3.0_1
 libvtv.so.0 libvtv-6.3.0_1
 libatomic.so.1 libatomic-4.9.0_1
diff --git a/srcpkgs/gcc/files/gccgo-musl.patch b/srcpkgs/gcc/files/gccgo-musl.patch
index 9762739615af..632ef951097b 100644
--- a/srcpkgs/gcc/files/gccgo-musl.patch
+++ b/srcpkgs/gcc/files/gccgo-musl.patch
@@ -53,17 +53,6 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
  	p := sysMmap(addr, n, prot, flags, fd, off)
  	if uintptr(p) == _MAP_FAILED {
  		return nil, errno()
---- a/libgo/go/runtime/signal_gccgo.go
-+++ b/libgo/go/runtime/signal_gccgo.go
-@@ -111,7 +111,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")
 --- a/libgo/go/syscall/errstr.go
 +++ b/libgo/go/syscall/errstr.go
 @@ -5,7 +5,6 @@
@@ -140,55 +129,6 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
  		plwoff = &lwoff
  	}
  	n, err = splice(rfd, plroff, wfd, plwoff, len, flags)
---- 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
---- a/libgo/runtime/go-signal.c	2020-07-23 08:35:19.004402840 +0200
-+++ b/libgo/runtime/go-signal.c	2020-08-09 21:35:54.352886232 +0200
-@@ -224,7 +224,11 @@
- #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;
-+	#ifdef __PPC64__
-+		ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.gp_regs[32];
-+	#else
-+		ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.gregs[32];
-+	#endif
- #elif defined(__PPC__) && defined(_AIX)
- 	ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.jmp_context.iar;
- #elif defined(__aarch64__) && defined(__linux__)
-@@ -333,7 +337,7 @@
- 		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(__linux__) && defined(__GLIBC__)
- 	  {
- 		mcontext_t *m = &((ucontext_t*)(context))->uc_mcontext;
- 		int i;
 --- a/libgo/runtime/runtime.h
 +++ b/libgo/runtime/runtime.h
 @@ -500,10 +500,13 @@ int __go_setcontext(__go_context_t*);
@@ -220,3 +160,17 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
  #if defined(HAVE_SYS_UTSNAME_H)
  #include <sys/utsname.h>
  #endif
+--- a/libgo/go/runtime/os_linux.go
++++ a/libgo/go/runtime/os_linux.go
+@@ -363,9 +363,9 @@
+ 
+ 	var timerid int32
+ 	var sevp _sigevent
+-	sevp.sigev_notify = _SIGEV_THREAD_ID
++	sevp.sigev_notify = 4
+ 	sevp.sigev_signo = _SIGPROF
+-	*((*int32)(unsafe.Pointer(&sevp._sigev_un))) = int32(mp.procid)
++	*((*int32)(unsafe.Pointer(&sevp.sigev_notify_function))) = int32(mp.procid)
+ 	ret := timer_create(_CLOCK_THREAD_CPUTIME_ID, &sevp, &timerid)
+ 	if ret != 0 {
+ 		// If we cannot create a timer for this M, leave profileTimerValid false
diff --git a/srcpkgs/gcc/files/libgnarl-musl.patch b/srcpkgs/gcc/files/libgnarl-musl.patch
index 99a734c42c90..91c95949e0e9 100644
--- a/srcpkgs/gcc/files/libgnarl-musl.patch
+++ b/srcpkgs/gcc/files/libgnarl-musl.patch
@@ -5,7 +5,7 @@ Reason: Patch libgnarl to not use function missing from musl.
 diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/libgnarl/s-osinte__linux.ads
 --- a/gcc/ada/libgnarl/s-osinte__linux.ads	2018-01-11 00:55:25.000000000 -0800
 +++ b/gcc/ada/libgnarl/s-osinte__linux.ads	2018-11-01 16:16:23.372452951 -0700
-@@ -394,12 +394,6 @@ package System.OS_Interface is
+@@ -403,12 +403,6 @@ package System.OS_Interface is
     PTHREAD_RWLOCK_PREFER_WRITER_NP              : constant := 1;
     PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP : constant := 2;
  
@@ -18,7 +18,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/l
     function pthread_rwlock_init
       (mutex : access pthread_rwlock_t;
        attr  : access pthread_rwlockattr_t) return int;
-@@ -464,11 +458,6 @@ package System.OS_Interface is
+@@ -470,11 +464,6 @@ package System.OS_Interface is
        protocol : int) return int;
     pragma Import (C, pthread_mutexattr_setprotocol);
  
@@ -33,7 +33,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/l
 diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/libgnarl/s-taprop__linux.adb
 --- a/gcc/ada/libgnarl/s-taprop__linux.adb	2018-01-11 00:55:25.000000000 -0800
 +++ b/gcc/ada/libgnarl/s-taprop__linux.adb	2018-11-13 11:28:36.433964449 -0800
-@@ -202,9 +202,6 @@ package body System.Task_Primitives.Oper
+@@ -198,9 +198,6 @@ package body System.Task_Primitives.Oper
     pragma Import
       (C, GNAT_pthread_condattr_setup, "__gnat_pthread_condattr_setup");
  
@@ -43,7 +43,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
     --  We do not have pragma Linker_Options ("-lcap"); here, because this
     --  library is not present on many Linux systems. 'libcap' is the Linux
     --  "capabilities" library, called by __gnat_has_cap_sys_nice.
-@@ -214,38 +211,6 @@ package body System.Task_Primitives.Oper
+@@ -210,38 +207,6 @@ package body System.Task_Primitives.Oper
     --  Convert Ada priority to Linux priority. Priorities are 1 .. 99 on
     --  GNU/Linux, so we map 0 .. 98 to 1 .. 99.
  
@@ -76,13 +76,13 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
 -      return Ceiling_Support;
 -   end Get_Ceiling_Support;
 -
--   pragma Warnings (Off, "non-static call not allowed in preelaborated unit");
+-   pragma Warnings (Off, "non-preelaborable call not allowed*");
 -   Ceiling_Support : constant Boolean := Get_Ceiling_Support;
--   pragma Warnings (On, "non-static call not allowed in preelaborated unit");
+-   pragma Warnings (On, "non-preelaborable call not allowed*");
     --  True if the locking policy is Ceiling_Locking, and the current process
     --  has permission to use this policy. The process has permission if it is
     --  running as 'root', or if the capability was set by the setcap command,
-@@ -348,7 +313,9 @@ package body System.Task_Primitives.Oper
+@@ -344,7 +309,9 @@ package body System.Task_Primitives.Oper
     -- Init_Mutex --
     ----------------
  
@@ -92,7 +92,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
        Mutex_Attr : aliased pthread_mutexattr_t;
        Result, Result_2 : C.int;
  
-@@ -360,16 +327,7 @@ package body System.Task_Primitives.Oper
+@@ -356,16 +323,7 @@ package body System.Task_Primitives.Oper
           return Result;
        end if;
  
@@ -110,7 +110,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
           Result := pthread_mutexattr_setprotocol
             (Mutex_Attr'Access, PTHREAD_PRIO_INHERIT);
           pragma Assert (Result = 0);
-@@ -409,11 +367,6 @@ package body System.Task_Primitives.Oper
+@@ -405,11 +363,6 @@ package body System.Task_Primitives.Oper
              Result := pthread_rwlockattr_init (RWlock_Attr'Access);
              pragma Assert (Result = 0);
  
diff --git a/srcpkgs/gcc/files/libssp-musl.patch b/srcpkgs/gcc/files/libssp-musl.patch
index b21a2c29e57c..99f248401a1c 100644
--- a/srcpkgs/gcc/files/libssp-musl.patch
+++ b/srcpkgs/gcc/files/libssp-musl.patch
@@ -2,9 +2,9 @@ First part taken from Alpine.
 
 Second part added to prevent gccgo from thinking it can -fsplit-stack on musl.
 
---- a/gcc/gcc.c
-+++ b/gcc/gcc.c
-@@ -874,10 +874,15 @@ proper position among the other output files.  */
+--- a/gcc/gcc.cc
++++ b/gcc/gcc.cc
+@@ -984,10 +984,15 @@ proper position among the other output f
  #define LINK_GCC_C_SEQUENCE_SPEC "%G %{!nolibc:%L %G}"
  #endif
  
@@ -22,10 +22,10 @@ Second part added to prevent gccgo from thinking it can -fsplit-stack on musl.
  #else
  #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
  		       "|fstack-protector-strong|fstack-protector-explicit" \
-@@ -1155,7 +1160,7 @@ static const char *cc1_options =
+@@ -1280,7 +1285,7 @@ static const char *cc1_options =
   %{-version:--version}\
   %{-help=*:--help=%*}\
-  %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %b.s}}}\
+  %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %w%b.s}}}\
 - %{fsyntax-only:-o %j} %{-param*}\
 + %{fsyntax-only:-o %j} %{-param*} " NO_SSP_SPEC "\
   %{coverage:-fprofile-arcs -ftest-coverage}\
diff --git a/srcpkgs/gcc/patches/3b21c21f3f5726823e19728fdd1571a14aae0fb3.patch b/srcpkgs/gcc/patches/3b21c21f3f5726823e19728fdd1571a14aae0fb3.patch
new file mode 100644
index 000000000000..00929202a503
--- /dev/null
+++ b/srcpkgs/gcc/patches/3b21c21f3f5726823e19728fdd1571a14aae0fb3.patch
@@ -0,0 +1,105 @@
+From 3b21c21f3f5726823e19728fdd1571a14aae0fb3 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <siarheit@google.com>
+Date: Mon, 27 Jun 2022 13:27:24 +0100
+Subject: [PATCH] c++: avoid <memory> poisoning on musl [PR106102]
+
+On musl <pthread.h> uses calloc() (via <sched.h>). <memory> includes
+it indirectly and exposes use of poisoned calloc() when module code
+is built:
+
+    /build/build/./prev-gcc/xg++ ... ../../gcc-13-20220626/gcc/cp/mapper-resolver.cc
+        In file included from /<<NIX>>/musl-1.2.3-dev/include/pthread.h:30,
+                 from /build/build/prev-x86_64-unknown-linux-musl/libstdc++-v3/include/x86_64-unknown-linux-musl/bits/gthr-default.h:35,
+                 ....
+                 from /build/build/prev-x86_64-unknown-linux-musl/libstdc++-v3/include/memory:77,
+                 from ../../gcc-13-20220626/gcc/../libcody/cody.hh:24,
+                 from ../../gcc-13-20220626/gcc/cp/../../c++tools/resolver.h:25,
+                 from ../../gcc-13-20220626/gcc/cp/../../c++tools/resolver.cc:23,
+                 from ../../gcc-13-20220626/gcc/cp/mapper-resolver.cc:32:
+    /<<NIX>>/musl-1.2.3-dev/include/sched.h:84:7: error: attempt to use poisoned "calloc"
+       84 | void *calloc(size_t, size_t);
+          |       ^
+    /<<NIX>>/musl-1.2.3-dev/include/sched.h:124:36: error: attempt to use poisoned "calloc"
+      124 | #define CPU_ALLOC(n) ((cpu_set_t *)calloc(1,CPU_ALLOC_SIZE(n)))
+          |                                    ^
+
+gcc/cp/
+
+	PR c++/106102
+	* mapper-client.cc: Include <memory> via "system.h".
+	* mapper-resolver.cc: Ditto.
+	* module.cc: Ditto.
+
+libcc1/
+
+	PR c++/106102
+	* libcc1plugin.cc: Include <memory> via "system.h".
+	* libcp1plugin.cc: Ditto.
+---
+ gcc/cp/mapper-client.cc   | 1 +
+ gcc/cp/mapper-resolver.cc | 1 +
+ gcc/cp/module.cc          | 1 +
+ libcc1/libcc1plugin.cc    | 1 +
+ libcc1/libcp1plugin.cc    | 1 +
+ 5 files changed, 5 insertions(+)
+
+diff --git a/gcc/cp/mapper-client.cc b/gcc/cp/mapper-client.cc
+index 8603a886a099..fe9544b5ba43 100644
+--- a/gcc/cp/mapper-client.cc
++++ b/gcc/cp/mapper-client.cc
+@@ -27,6 +27,7 @@ along with GCC; see the file COPYING3.  If not see
+ #define INCLUDE_STRING
+ #define INCLUDE_VECTOR
+ #define INCLUDE_MAP
++#define INCLUDE_MEMORY
+ #include "system.h"
+ 
+ #include "line-map.h"
+diff --git a/gcc/cp/mapper-resolver.cc b/gcc/cp/mapper-resolver.cc
+index e3d29fb5ada1..e70d1b4ae2ca 100644
+--- a/gcc/cp/mapper-resolver.cc
++++ b/gcc/cp/mapper-resolver.cc
+@@ -25,6 +25,7 @@ along with GCC; see the file COPYING3.  If not see
+ #define INCLUDE_VECTOR
+ #define INCLUDE_ALGORITHM
+ #define INCLUDE_MAP
++#define INCLUDE_MEMORY
+ #include "system.h"
+ 
+ // We don't want or need to be aware of networking
+diff --git a/gcc/cp/module.cc b/gcc/cp/module.cc
+index 753963a4b246..8bb22c2b305a 100644
+--- a/gcc/cp/module.cc
++++ b/gcc/cp/module.cc
+@@ -206,6 +206,7 @@ Classes used:
+ 
+ #define _DEFAULT_SOURCE 1 /* To get TZ field of struct tm, if available.  */
+ #include "config.h"
++#define INCLUDE_MEMORY
+ #define INCLUDE_STRING
+ #define INCLUDE_VECTOR
+ #include "system.h"
+diff --git a/libcc1/libcc1plugin.cc b/libcc1/libcc1plugin.cc
+index 12ab5a57c8dd..bdd0bdabe77f 100644
+--- a/libcc1/libcc1plugin.cc
++++ b/libcc1/libcc1plugin.cc
+@@ -31,6 +31,7 @@
+ #undef PACKAGE_TARNAME
+ #undef PACKAGE_VERSION
+ 
++#define INCLUDE_MEMORY
+ #include "gcc-plugin.h"
+ #include "system.h"
+ #include "coretypes.h"
+diff --git a/libcc1/libcp1plugin.cc b/libcc1/libcp1plugin.cc
+index 83dab7f58b11..e2d5039a0a1f 100644
+--- a/libcc1/libcp1plugin.cc
++++ b/libcc1/libcp1plugin.cc
+@@ -32,6 +32,7 @@
+ #undef PACKAGE_TARNAME
+ #undef PACKAGE_VERSION
+ 
++#define INCLUDE_MEMORY
+ #include "gcc-plugin.h"
+ #include "system.h"
+ #include "coretypes.h"
diff --git a/srcpkgs/gcc/patches/49d508065bdd36fb1a9b6aad9666b1edb5e06474.patch b/srcpkgs/gcc/patches/49d508065bdd36fb1a9b6aad9666b1edb5e06474.patch
new file mode 100644
index 000000000000..89bd053d6d04
--- /dev/null
+++ b/srcpkgs/gcc/patches/49d508065bdd36fb1a9b6aad9666b1edb5e06474.patch
@@ -0,0 +1,115 @@
+From 49d508065bdd36fb1a9b6aad9666b1edb5e06474 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <siarheit@google.com>
+Date: Mon, 27 Jun 2022 23:42:44 +0100
+Subject: [PATCH] jit: avoid calloc() poisoning on musl [PR106102]
+
+On musl <pthread.h> uses calloc() (via <sched.h>). jit/ includes
+it directly and exposes use of poisoned calloc():
+
+    /build/build/./prev-gcc/xg++ ... ../../gcc-13-20220626/gcc/jit/jit-playback.cc
+    make[3]: *** [Makefile:1143: jit/libgccjit.o] Error 1
+    make[3]: *** Waiting for unfinished jobs....
+    In file included from /<<NIX>>/musl-1.2.3-dev/include/pthread.h:30,
+                     from ../../gcc-13-20220626/gcc/jit/jit-playback.cc:44:
+    /<<NIX>>/musl-1.2.3-dev/include/sched.h:84:7: error: attempt to use poisoned "calloc"
+       84 | void *calloc(size_t, size_t);
+          |       ^
+    /<<NIX>>/musl-1.2.3-dev/include/sched.h:124:36: error: attempt to use poisoned "calloc"
+      124 | #define CPU_ALLOC(n) ((cpu_set_t *)calloc(1,CPU_ALLOC_SIZE(n)))
+          |                                    ^
+
+The change moves <pthread.h> inclusion to "system.h" under new
+INCLUDE_PTHREAD_H guard and uses this mechanism in libgccjit.
+
+gcc/
+
+	PR c++/106102
+	* system.h: Introduce INCLUDE_PTHREAD_H macros to include <pthread.h>.
+
+gcc/jit/
+
+	PR c++/106102
+	* jit-playback.cc: Include <pthread.h> via "system.h" to avoid calloc()
+	poisoning.
+	* jit-recording.cc: Ditto.
+	* libgccjit.cc: Ditto.
+---
+ gcc/jit/jit-playback.cc  | 3 +--
+ gcc/jit/jit-recording.cc | 2 +-
+ gcc/jit/libgccjit.cc     | 2 +-
+ gcc/system.h             | 4 ++++
+ 4 files changed, 7 insertions(+), 4 deletions(-)
+
+diff --git a/gcc/jit/jit-playback.cc b/gcc/jit/jit-playback.cc
+index 6be6bdf8dea5..79714132b91a 100644
+--- a/gcc/jit/jit-playback.cc
++++ b/gcc/jit/jit-playback.cc
+@@ -19,6 +19,7 @@ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
++#define INCLUDE_PTHREAD_H
+ #include "system.h"
+ #include "coretypes.h"
+ #include "target.h"
+@@ -41,8 +42,6 @@ along with GCC; see the file COPYING3.  If not see
+ #include "diagnostic.h"
+ #include "stmt.h"
+ 
+-#include <pthread.h>
+-
+ #include "jit-playback.h"
+ #include "jit-result.h"
+ #include "jit-builtins.h"
+diff --git a/gcc/jit/jit-recording.cc b/gcc/jit/jit-recording.cc
+index 697dee66e733..f78daed2d71a 100644
+--- a/gcc/jit/jit-recording.cc
++++ b/gcc/jit/jit-recording.cc
+@@ -19,13 +19,13 @@ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
++#define INCLUDE_PTHREAD_H
+ #include "system.h"
+ #include "coretypes.h"
+ #include "tm.h"
+ #include "pretty-print.h"
+ #include "toplev.h"
+ 
+-#include <pthread.h>
+ 
+ #include "jit-builtins.h"
+ #include "jit-recording.h"
+diff --git a/gcc/jit/libgccjit.cc b/gcc/jit/libgccjit.cc
+index 0e76097b4bac..ca862662777e 100644
+--- a/gcc/jit/libgccjit.cc
++++ b/gcc/jit/libgccjit.cc
+@@ -19,12 +19,12 @@ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
++#define INCLUDE_PTHREAD_H
+ #include "system.h"
+ #include "coretypes.h"
+ #include "timevar.h"
+ #include "typed-splay-tree.h"
+ #include "cppbuiltin.h"
+-#include <pthread.h>
+ 
+ #include "libgccjit.h"
+ #include "jit-recording.h"
+diff --git a/gcc/system.h b/gcc/system.h
+index 67158b70c789..f8d42ff68150 100644
+--- a/gcc/system.h
++++ b/gcc/system.h
+@@ -753,6 +753,10 @@ extern int vsnprintf (char *, size_t, const char *, va_list);
+ #endif
+ #endif
+ 
++#ifdef INCLUDE_PTHREAD_H
++#include <pthread.h>
++#endif
++
+ #ifdef INCLUDE_ISL
+ #ifdef HAVE_isl
+ #include <isl/options.h>
diff --git a/srcpkgs/gcc/patches/f35d65517a59565758107c5b1a51a5fa382f8d1a.patch b/srcpkgs/gcc/patches/f35d65517a59565758107c5b1a51a5fa382f8d1a.patch
new file mode 100644
index 000000000000..044a4fc29514
--- /dev/null
+++ b/srcpkgs/gcc/patches/f35d65517a59565758107c5b1a51a5fa382f8d1a.patch
@@ -0,0 +1,32 @@
+From f35d65517a59565758107c5b1a51a5fa382f8d1a Mon Sep 17 00:00:00 2001
+From: Ian Lance Taylor <iant@golang.org>
+Date: Tue, 12 Jul 2022 19:42:43 -0700
+Subject: [PATCH] libgo: don't include <linux/fs.h> when building
+ gen-sysinfo.go
+
+Removing this doesn't change anything at least with glibc 2.33.
+The include was added in https://go.dev/cl/6100049 but it's not
+clear why.
+
+Fixes PR go/106266
+
+Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/417294
+---
+ gcc/go/gofrontend/MERGE | 2 +-
+ libgo/sysinfo.c         | 3 ---
+ 2 files changed, 1 insertion(+), 4 deletions(-)
+
+diff --git a/libgo/sysinfo.c b/libgo/sysinfo.c
+index a4259c02ded4..fc0210992faa 100644
+--- a/libgo/sysinfo.c
++++ b/libgo/sysinfo.c
+@@ -158,9 +158,6 @@
+ #if defined(HAVE_LINUX_ETHER_H)
+ #include <linux/ether.h>
+ #endif
+-#if defined(HAVE_LINUX_FS_H)
+-#include <linux/fs.h>
+-#endif
+ #if defined(HAVE_LINUX_REBOOT_H)
+ #include <linux/reboot.h>
+ #endif
diff --git a/srcpkgs/gcc/patches/libffi_gnulinux.patch b/srcpkgs/gcc/patches/libffi_gnulinux.patch
deleted file mode 100644
index 98245bd5be1a..000000000000
--- a/srcpkgs/gcc/patches/libffi_gnulinux.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/libffi/src/closures.c
-+++ b/libffi/src/closures.c
-@@ -34,7 +34,7 @@
- #include <ffi_common.h>
-
- #if !FFI_MMAP_EXEC_WRIT && !FFI_EXEC_TRAMPOLINE_TABLE
--# if __gnu_linux__ && !defined(__ANDROID__)
-+# if __linux__ && !defined(__ANDROID__)
- /* This macro indicates it may be forbidden to map anonymous memory
-    with both write and execute permission.  Code compiled when this
-    option is defined will attempt to map such pages once, but if it
diff --git a/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch b/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
index bdf5c75d917d..26d80356ad0d 100644
--- a/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
+++ b/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
@@ -29,10 +29,14 @@ diff --git a/libgcc/config/rs6000/t-linux b/libgcc/config/rs6000/t-linux
 index 4f6d4c4..fa93bb6 100644
 --- a/libgcc/config/rs6000/t-linux
 +++ b/libgcc/config/rs6000/t-linux
-@@ -1,3 +1,3 @@
+@@ -1,6 +1,6 @@
  SHLIB_MAPFILES += $(srcdir)/config/rs6000/libgcc-glibc.ver
  
--HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-minimal-toc
-+HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-gnu-attribute -mno-minimal-toc
+-HOST_LIBGCC2_CFLAGS += -mlong-double-128
++HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-gnu-attribute
+ 
+ # This is a way of selecting -mcmodel=small for ppc64, which gives
+ # smaller and faster libgcc code.  Directly specifying -mcmodel=small
+
 -- 
 2.24.0
diff --git a/srcpkgs/gcc/patches/mips-sgidefs_h.patch b/srcpkgs/gcc/patches/mips-sgidefs_h.patch
index dddfe10e8c06..78a2ce35875d 100644
--- a/srcpkgs/gcc/patches/mips-sgidefs_h.patch
+++ b/srcpkgs/gcc/patches/mips-sgidefs_h.patch
@@ -3,9 +3,10 @@
 @@ -42,7 +42,7 @@
  #define _MIPS_SIM_NABI32	2
  #define _MIPS_SIM_ABI64		3
- #elif !defined(__OpenBSD__)
+ #elif !defined(__OpenBSD__) && !defined(__FreeBSD__)
 -# include <sgidefs.h>
 +# include <asm/sgidefs.h>
  #endif
  
  #  ifndef _ABIN32
+
diff --git a/srcpkgs/gcc/template b/srcpkgs/gcc/template
index 09727ef34fb2..32ee79e32f0d 100644
--- a/srcpkgs/gcc/template
+++ b/srcpkgs/gcc/template
@@ -3,18 +3,15 @@
 # which use the version number.
 
 pkgname=gcc
-# we are using a 10-stable git snapshot alpine is using in order
-# to get regression fixes not yet incorporate into a stable release
-# it should be possible to switch back to stable with 10.3 or 11
-version=10.2.1pre1
-revision=3
+version=12.1.0
+revision=1
 _patchver="${version%pre*}"
 _minorver="${_patchver%.*}"
 _majorver="${_minorver%.*}"
-_gmp_version=6.2.0
+_gmp_version=6.2.1
 _mpfr_version=4.1.0
-_mpc_version=1.1.0
-_isl_version=0.21
+_mpc_version=1.2.1
+_isl_version=0.24
 wrksrc=gcc-${version/pre/_pre}
 short_desc="GNU Compiler Collection"
 maintainer="Enno Boland <gottox@voidlinux.org>"
@@ -22,16 +19,16 @@ homepage="http://gcc.gnu.org"
 license="GFDL-1.2-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
 # *-musl builders have issues fetching https://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz
 distfiles="
- https://dev.alpinelinux.org/~nenolod/gcc-${version/pre/_pre}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${version}/gcc-${version}.tar.xz
  https://gmplib.org/download/gmp/gmp-${_gmp_version}.tar.xz
  ${GNU_SITE}/mpfr/mpfr-${_mpfr_version}.tar.xz
  ${GNU_SITE}/mpc/mpc-${_mpc_version}.tar.gz
  ${SOURCEFORGE_SITE}/libisl/isl-${_isl_version}.tar.bz2"
-checksum="772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 258e6cd51b3fbdfc185c716d55f82c08aff57df0c6fbd143cf6ed561267a1526
+checksum="62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
+ fd4829912cddd12f84181c3451cc752be224643e87fac497b69edddadc49b4f2
  0c98a3f1732ff6ca4ea690552079da9c597872d30e96ec28414ee23c95558a7f
- 6985c538143c1208dcb1ac42cedad6ff52e267b47e5f970183a3e75125b43c2e
- d18ca11f8ad1a39ab6d03d3dcb3365ab416720fcb65b42d69f34f51bf0a0e859"
+ 17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459
+ fcf78dd9656c10eb8cf9fbd5f59a0b6b01386205fe1934b3b287a0a1898145c0"
 
 nopie=yes
 lib32disabled=yes
@@ -396,7 +393,7 @@ gcc-ada_package() {
 	depends="gcc>=${_minorver} libada-devel>=${_minorver}"
 	short_desc+=" - Ada compiler frontend"
 	pkg_install() {
-		for f in gnat{,bind,chop,clean,find,kr,link,ls,make,name,prep,xref}; do
+		for f in gnat{,bind,chop,clean,kr,link,ls,make,name,prep}; do
 			vmove usr/bin/${f}
 		done
 	}

From 00980754f4f23e46126a980f4b7e96e7406b01d4 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 06:27:47 -0700
Subject: [PATCH 03/31] libtool: update to 2.4.7.

---
 .../patches/0002-rename-with-sysroot.patch    | 34 +++++++++----------
 srcpkgs/libtool/template                      |  6 ++--
 2 files changed, 20 insertions(+), 20 deletions(-)

diff --git a/srcpkgs/libtool/patches/0002-rename-with-sysroot.patch b/srcpkgs/libtool/patches/0002-rename-with-sysroot.patch
index 960873c04e24..152aace96c41 100644
--- a/srcpkgs/libtool/patches/0002-rename-with-sysroot.patch
+++ b/srcpkgs/libtool/patches/0002-rename-with-sysroot.patch
@@ -13,16 +13,16 @@ Jürgen Buchmüller <pullmoll@t-online.de>
 
 --- a/configure	2015-02-15 17:14:34.000000000 +0100
 +++ b/configure	2015-10-20 13:25:12.684906339 +0200
-@@ -824,7 +824,7 @@
+@@ -832,7 +832,7 @@
  enable_fast_install
  with_aix_soname
  with_gnu_ld
 -with_sysroot
 +with_libtool_sysroot
  enable_libtool_lock
+ enable_cross_guesses
  '
-       ac_precious_vars='build_alias
-@@ -1487,7 +1487,8 @@
+@@ -1509,7 +1509,8 @@
                            shared library versioning (aka "SONAME") variant to
                            provide on AIX, [default=aix].
    --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
@@ -32,7 +32,7 @@ Jürgen Buchmüller <pullmoll@t-online.de>
                            compiler's sysroot if not specified).
  
  Some influential environment variables:
-@@ -7389,29 +7390,29 @@
+@@ -7610,29 +7611,29 @@
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
  $as_echo_n "checking for sysroot... " >&6; }
  
@@ -57,8 +57,8 @@ Jürgen Buchmüller <pullmoll@t-online.de>
     fi
     ;; #(
   /*)
--   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
-+   lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"`
+-   lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"`
++   lt_sysroot=`echo "$with_libtool_sysroot" | $SED -e "$sed_quote_subst"`
     ;; #(
   no|'')
     ;; #(
@@ -72,7 +72,7 @@ Jürgen Buchmüller <pullmoll@t-online.de>
  esac
 --- a/libltdl/configure	2015-02-15 17:15:15.000000000 +0100
 +++ b/libltdl/configure	2015-10-20 13:26:45.747914683 +0200
-@@ -775,7 +775,7 @@
+@@ -777,7 +777,7 @@
  with_aix_soname
  enable_dependency_tracking
  with_gnu_ld
@@ -81,7 +81,7 @@ Jürgen Buchmüller <pullmoll@t-online.de>
  enable_libtool_lock
  enable_ltdl_install
  '
-@@ -1429,7 +1429,8 @@
+@@ -1442,7 +1442,8 @@
                            shared library versioning (aka "SONAME") variant to
                            provide on AIX, [default=aix].
    --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
@@ -91,7 +91,7 @@ Jürgen Buchmüller <pullmoll@t-online.de>
                            compiler's sysroot if not specified).
  
  Some influential environment variables:
-@@ -6275,29 +6276,29 @@
+@@ -6397,29 +6398,29 @@
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
  $as_echo_n "checking for sysroot... " >&6; }
  
@@ -116,8 +116,8 @@ Jürgen Buchmüller <pullmoll@t-online.de>
     fi
     ;; #(
   /*)
--   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
-+   lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"`
+-   lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"`
++   lt_sysroot=`echo "$with_libtool_sysroot" | $SED -e "$sed_quote_subst"`
     ;; #(
   no|'')
     ;; #(
@@ -243,14 +243,14 @@ Jürgen Buchmüller <pullmoll@t-online.de>
  ]])
 --- a/m4/libtool.m4	2015-01-20 17:15:19.000000000 +0100
 +++ b/m4/libtool.m4	2015-10-20 15:40:04.020631813 +0200
-@@ -1245,29 +1245,29 @@
- # _LT_WITH_SYSROOT
+@@ -1243,29 +1243,29 @@
  # ----------------
  AC_DEFUN([_LT_WITH_SYSROOT],
--[AC_MSG_CHECKING([for sysroot])
+ [m4_require([_LT_DECL_SED])dnl
+-AC_MSG_CHECKING([for sysroot])
 -AC_ARG_WITH([sysroot],
 -[AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@],
-+[AC_MSG_CHECKING([for libtool-sysroot])
++AC_MSG_CHECKING([for libtool-sysroot])
 +AC_ARG_WITH([libtool-sysroot],
 +[AS_HELP_STRING([--with-libtool-sysroot@<:@=DIR@:>@],
    [Search for dependent libraries within DIR (or the compiler's sysroot
@@ -269,8 +269,8 @@ Jürgen Buchmüller <pullmoll@t-online.de>
     fi
     ;; #(
   /*)
--   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
-+   lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"`
+-   lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"`
++   lt_sysroot=`echo "$with_libtool_sysroot" | $SED -e "$sed_quote_subst"`
     ;; #(
   no|'')
     ;; #(
diff --git a/srcpkgs/libtool/template b/srcpkgs/libtool/template
index b9972df70341..08e35d466a44 100644
--- a/srcpkgs/libtool/template
+++ b/srcpkgs/libtool/template
@@ -1,7 +1,7 @@
 # Template file for 'libtool'
 pkgname=libtool
-version=2.4.6
-revision=6
+version=2.4.7
+revision=1
 build_style=gnu-configure
 hostmakedepends="texinfo perl automake help2man xz"
 depends="tar sed"
@@ -10,7 +10,7 @@ maintainer="Enno Boland <gottox@voidlinux.org>"
 license="GPL-2.0-or-later"
 homepage="http://www.gnu.org/software/libtool"
 distfiles="${GNU_SITE}/libtool/$pkgname-$version.tar.xz"
-checksum=7c87a8c2c8c0fc9cd5019e402bed4292462d00a718a7cd5f11218153bf28b26f
+checksum=4f7f217f057ce655ff22559ad221a0fd8ef84ad1fc5fcb6990cecc333aa1635d
 
 pre_configure() {
 	touch aclocal.m4 libltdl/aclocal.m4 Makefile.am libltdl/Makefile.am Makefile.in libltdl/Makefile.in

From be75af2647f4e539b2e90c9e6025980a8da09418 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 17:20:16 -0700
Subject: [PATCH 04/31] libiberty-devel: update to 20220713.

---
 srcpkgs/libiberty-devel/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/libiberty-devel/template b/srcpkgs/libiberty-devel/template
index 1a4e1ca3d594..b04268908c2e 100644
--- a/srcpkgs/libiberty-devel/template
+++ b/srcpkgs/libiberty-devel/template
@@ -1,6 +1,6 @@
 # Template file for 'libiberty-devel'
 pkgname=libiberty-devel
-version=20210106
+version=20220713
 revision=1
 wrksrc=libiberty-${version}
 build_wrksrc=libiberty
@@ -11,7 +11,7 @@ maintainer="q66 <daniel@octaforge.org>"
 license="GPL-3.0-or-later"
 homepage="http://gcc.gnu.org/"
 distfiles="http://deb.debian.org/debian/pool/main/libi/libiberty/libiberty_${version}.orig.tar.xz"
-checksum=9df153d69914c0f5a9145e0abbb248e72feebab6777c712a30f1c3b8c19047d4
+checksum=b59050f48c8a0f9c9e6fba5d17c7a4f11d1329de0c0dca7331b767a6d2bbe8d9
 conflicts="binutils-devel<=2.35.1_3"
 
 CFLAGS="-fPIC"

From c2c766aabce1472cea4d979dc86d631ec9aa52b9 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 23:31:45 -0700
Subject: [PATCH 05/31] glibc: update to 2.36.

---
 common/shlibs                                 |  60 ++--
 .../glibc/patches/glibc-c-utf8-locale.patch   | 286 ------------------
 srcpkgs/glibc/template                        |  62 ++--
 3 files changed, 55 insertions(+), 353 deletions(-)
 delete mode 100644 srcpkgs/glibc/patches/glibc-c-utf8-locale.patch

diff --git a/common/shlibs b/common/shlibs
index c6400b566966..65f4d1b62b61 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -17,38 +17,38 @@
 # one (order top->bottom) is preferred over the next ones.
 #
 libc.so musl-1.1.24_7
-libc.so.6 glibc-2.32_1
-libm.so.6 glibc-2.32_1
-libpthread.so.0 glibc-2.32_1
-librt.so.1 glibc-2.32_1
-libdl.so.2 glibc-2.32_1
-ld-linux-x86-64.so.2 glibc-2.32_1 x86_64
-ld-linux.so.2 glibc-2.32_1 i686
-ld-linux.so.3 glibc-2.32_1 armv5tel
-ld-linux-aarch64.so.1 glibc-2.32_1 aarch64
-ld64.so.2 glibc-2.32_1 ppc64
-ld.so.1 glibc-2.32_1 mips
-ld.so.1 glibc-2.32_1 ppc
-ld-linux-armhf.so.3 glibc-2.32_1
-libresolv.so.2 glibc-2.32_1
-libanl.so.1 glibc-2.32_1
-libthread_db.so.1 glibc-2.32_1
-libutil.so.1 glibc-2.32_1
-libnsl.so.1 glibc-2.32_1
-libnss_db.so.2 glibc-2.32_1
-libnss_files.so.2 glibc-2.32_1
-libnss_compat.so.2 glibc-2.32_1
-libnss_dns.so.2 glibc-2.32_1
-libnss_hesiod.so.2 glibc-2.32_1
-libcrypt.so.1 glibc-2.32_1
-libBrokenLocale.so.1 glibc-2.32_1
+libc.so.6 glibc-2.36_1
+libm.so.6 glibc-2.36_1
+libpthread.so.0 glibc-2.36_1
+librt.so.1 glibc-2.36_1
+libdl.so.2 glibc-2.36_1
+ld-linux-x86-64.so.2 glibc-2.36_1 x86_64
+ld-linux.so.2 glibc-2.36_1 i686
+ld-linux.so.3 glibc-2.36_1 armv5tel
+ld-linux-aarch64.so.1 glibc-2.36_1 aarch64
+ld64.so.2 glibc-2.36_1 ppc64
+ld.so.1 glibc-2.36_1 mips
+ld.so.1 glibc-2.36_1 ppc
+ld-linux-armhf.so.3 glibc-2.36_1
+libresolv.so.2 glibc-2.36_1
+libanl.so.1 glibc-2.36_1
+libthread_db.so.1 glibc-2.36_1
+libutil.so.1 glibc-2.36_1
+libnsl.so.1 glibc-2.36_1
+libnss_db.so.2 glibc-2.36_1
+libnss_files.so.2 glibc-2.36_1
+libnss_compat.so.2 glibc-2.36_1
+libnss_dns.so.2 glibc-2.36_1
+libnss_hesiod.so.2 glibc-2.36_1
+libcrypt.so.1 glibc-2.36_1
+libBrokenLocale.so.1 glibc-2.36_1
 libSimGearCore.so.2020.3.13 simgear-2020.3.13_1
 libSimGearScene.so.2020.3.13 simgear-2020.3.13_1
-libmemusage.so glibc-2.32_1
-libSegFault.so glibc-2.32_1
-libpcprofile.so glibc-2.32_1
-libcidn.so.1 glibc-2.32_1
-libmvec.so.1 glibc-2.32_1
+libmemusage.so glibc-2.36_1
+libSegFault.so glibc-2.36_1
+libpcprofile.so glibc-2.36_1
+libcidn.so.1 glibc-2.36_1
+libmvec.so.1 glibc-2.36_1
 libcddgmp.so.0 cddlib-0.94m_1
 libcdd.so.0 cddlib-0.94m_1
 libz.so.1 zlib-1.2.3_1
diff --git a/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch b/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch
deleted file mode 100644
index 7215e1558b62..000000000000
--- a/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch
+++ /dev/null
@@ -1,286 +0,0 @@
-Short description: Add C.UTF-8 support.
-Author(s): Fedora glibc team <glibc@lists.fedoraproject.org>
-Origin: PATCH
-Upstream status: not-submitted
-
-This patch needs to upstream as part of Carlos O'Donell
-<carlos@redhat.com>'s work on enabling upstream C.UTF-8 support. This
-work is currently blocked on cleaning up the test results to prove that
-full code-point sorting is working as intended.
-
-Note that this patch does not provide full code-point sorting as
-expected.
-
-This patch needs to upstream as soon as possible since it would be nice
-to have this in F29 and fixed.
-
-From 2eda7b462b415105f5a05c1323372d4e39d46439 Mon Sep 17 00:00:00 2001
-From: Mike FABIAN <mfabian@redhat.com>
-Date: Mon, 10 Aug 2015 15:58:12 +0200
-Subject: [PATCH] Add a C.UTF-8 locale
-
----
- localedata/SUPPORTED |   1 +
- localedata/locales/C | 238 +++++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 239 insertions(+)
- create mode 100644 localedata/locales/C
-
-diff --git a/localedata/SUPPORTED b/localedata/SUPPORTED
-index 8ca023e..2a78391 100644
---- a/localedata/SUPPORTED
-+++ b/localedata/SUPPORTED
-@@ -1,6 +1,7 @@
- # This file names the currently supported and somewhat tested locales.
- # If you have any additions please file a glibc bug report.
- SUPPORTED-LOCALES=\
-+C.UTF-8/UTF-8 \
- aa_DJ.UTF-8/UTF-8 \
- aa_DJ/ISO-8859-1 \
- aa_ER/UTF-8 \
-diff --git a/localedata/locales/C b/localedata/locales/C
-new file mode 100644
-index 0000000..fdf460e
---- /dev/null
-+++ b/localedata/locales/C
-@@ -0,0 +1,238 @@
-+escape_char /
-+comment_char %
-+% Locale for C locale in UTF-8
-+
-+LC_IDENTIFICATION
-+title      "C locale"
-+source     ""
-+address    ""
-+contact    ""
-+email      "mfabian@redhat.com"
-+tel        ""
-+fax        ""
-+language   "C"
-+territory  ""
-+revision   "1.0"
-+date       "2015-08-10"
-+%
-+category  "i18n:2012";LC_IDENTIFICATION
-+category  "i18n:2012";LC_CTYPE
-+category  "i18n:2012";LC_COLLATE
-+category  "i18n:2012";LC_TIME
-+category  "i18n:2012";LC_NUMERIC
-+category  "i18n:2012";LC_MONETARY
-+category  "i18n:2012";LC_MESSAGES
-+category  "i18n:2012";LC_PAPER
-+category  "i18n:2012";LC_NAME
-+category  "i18n:2012";LC_ADDRESS
-+category  "i18n:2012";LC_TELEPHONE
-+category  "i18n:2012";LC_MEASUREMENT
-+END LC_IDENTIFICATION
-+
-+LC_CTYPE
-+copy "i18n"
-+
-+translit_start
-+include "translit_combining";""
-+translit_end
-+
-+END LC_CTYPE
-+
-+LC_COLLATE
-+order_start forward
-+<U0000>
-+..
-+<UFFFF>
-+<U10000>
-+..
-+<U1FFFF>
-+<U20000>
-+..
-+<U2FFFF>
-+<UE0000>
-+..
-+<UEFFFF>
-+<UF0000>
-+..
-+<UFFFFF>
-+<U100000>
-+..
-+<U10FFFF>
-+UNDEFINED
-+order_end
-+END LC_COLLATE
-+
-+LC_MONETARY
-+% This is the 14652 i18n fdcc-set definition for
-+% the LC_MONETARY category
-+% (except for the int_curr_symbol and currency_symbol, they are empty in
-+% the 14652 i18n fdcc-set definition and also empty in
-+% glibc/locale/C-monetary.c. But localedef complains in that case).
-+%
-+% Using "USD" for int_curr_symbol. But maybe "XXX" would be better?
-+% XXX is "No currency" (https://en.wikipedia.org/wiki/ISO_4217)
-+int_curr_symbol     "<U0055><U0053><U0044><U0020>"
-+% Using "$" for currency_symbol. But maybe <U00A4> would be better?
-+% U+00A4 is the "generic currency symbol"
-+% (https://en.wikipedia.org/wiki/Currency_sign_%28typography%29)
-+currency_symbol     "<U0024>"
-+mon_decimal_point   "<U002E>"
-+mon_thousands_sep   ""
-+mon_grouping        -1
-+positive_sign       ""
-+negative_sign       "<U002D>"
-+int_frac_digits     -1
-+frac_digits         -1
-+p_cs_precedes       -1
-+int_p_sep_by_space  -1
-+p_sep_by_space      -1
-+n_cs_precedes       -1
-+int_n_sep_by_space  -1
-+n_sep_by_space      -1
-+p_sign_posn         -1
-+n_sign_posn         -1
-+%
-+END LC_MONETARY
-+
-+LC_NUMERIC
-+% This is the POSIX Locale definition for
-+% the LC_NUMERIC category.
-+%
-+decimal_point   "<U002E>"
-+thousands_sep   ""
-+grouping        -1
-+END LC_NUMERIC
-+
-+LC_TIME
-+% This is the POSIX Locale definition for
-+% the LC_TIME category.
-+%
-+% Abbreviated weekday names (%a)
-+abday       "<U0053><U0075><U006E>";"<U004D><U006F><U006E>";/
-+            "<U0054><U0075><U0065>";"<U0057><U0065><U0064>";/
-+            "<U0054><U0068><U0075>";"<U0046><U0072><U0069>";/
-+            "<U0053><U0061><U0074>"
-+
-+% Full weekday names (%A)
-+day         "<U0053><U0075><U006E><U0064><U0061><U0079>";/
-+            "<U004D><U006F><U006E><U0064><U0061><U0079>";/
-+            "<U0054><U0075><U0065><U0073><U0064><U0061><U0079>";/
-+            "<U0057><U0065><U0064><U006E><U0065><U0073><U0064><U0061><U0079>";/
-+            "<U0054><U0068><U0075><U0072><U0073><U0064><U0061><U0079>";/
-+            "<U0046><U0072><U0069><U0064><U0061><U0079>";/
-+            "<U0053><U0061><U0074><U0075><U0072><U0064><U0061><U0079>"
-+
-+% Abbreviated month names (%b)
-+abmon       "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
-+            "<U004D><U0061><U0072>";"<U0041><U0070><U0072>";/
-+            "<U004D><U0061><U0079>";"<U004A><U0075><U006E>";/
-+            "<U004A><U0075><U006C>";"<U0041><U0075><U0067>";/
-+            "<U0053><U0065><U0070>";"<U004F><U0063><U0074>";/
-+            "<U004E><U006F><U0076>";"<U0044><U0065><U0063>"
-+
-+% Full month names (%B)
-+mon         "<U004A><U0061><U006E><U0075><U0061><U0072><U0079>";/
-+            "<U0046><U0065><U0062><U0072><U0075><U0061><U0072><U0079>";/
-+            "<U004D><U0061><U0072><U0063><U0068>";/
-+            "<U0041><U0070><U0072><U0069><U006C>";/
-+            "<U004D><U0061><U0079>";/
-+            "<U004A><U0075><U006E><U0065>";/
-+            "<U004A><U0075><U006C><U0079>";/
-+            "<U0041><U0075><U0067><U0075><U0073><U0074>";/
-+            "<U0053><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";/
-+            "<U004F><U0063><U0074><U006F><U0062><U0065><U0072>";/
-+            "<U004E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/
-+            "<U0044><U0065><U0063><U0065><U006D><U0062><U0065><U0072>"
-+
-+% Week description, consists of three fields:
-+% 1. Number of days in a week.
-+% 2. Gregorian date that is a first weekday (19971130 for Sunday, 19971201 for Monday).
-+% 3. The weekday number to be contained in the first week of the year.
-+%
-+% ISO 8601 conforming applications should use the values 7, 19971201 (a
-+% Monday), and 4 (Thursday), respectively.
-+week    7;19971201;4
-+first_weekday	1
-+first_workday	1
-+
-+% Appropriate date and time representation (%c)
-+%	"%a %b %e %H:%M:%S %Y"
-+d_t_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0059>"
-+
-+% Appropriate date representation (%x)
-+%	"%m/%d/%y"
-+d_fmt   "<U0025><U006D><U002F><U0025><U0064><U002F><U0025><U0079>"
-+
-+% Appropriate time representation (%X)
-+%	"%H:%M:%S"
-+t_fmt   "<U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053>"
-+
-+% Appropriate AM/PM time representation (%r)
-+%	"%I:%M:%S %p"
-+t_fmt_ampm "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0070>"
-+
-+% Equivalent of AM/PM (%p)      "AM"/"PM"
-+%
-+am_pm	"<U0041><U004D>";"<U0050><U004D>"
-+
-+% Appropriate date representation (date(1))   "%a %b %e %H:%M:%S %Z %Y"
-+date_fmt	"<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U005A><U0020><U0025><U0059>"
-+END LC_TIME
-+
-+LC_MESSAGES
-+% This is the POSIX Locale definition for
-+% the LC_NUMERIC category.
-+%
-+yesexpr "<U005E><U005B><U0079><U0059><U005D>"
-+noexpr  "<U005E><U005B><U006E><U004E><U005D>"
-+yesstr  "<U0059><U0065><U0073>"
-+nostr   "<U004E><U006F>"
-+END LC_MESSAGES
-+
-+LC_PAPER
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_PAPER category.
-+% (A4 paper, this is also used in the built in C/POSIX
-+% locale in glibc/locale/C-paper.c)
-+height   297
-+width    210
-+END LC_PAPER
-+
-+LC_NAME
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_NAME category.
-+% "%p%t%g%t%m%t%f"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-name.c)
-+name_fmt    "<U0025><U0070><U0025><U0074><U0025><U0067><U0025><U0074>/
-+<U0025><U006D><U0025><U0074><U0025><U0066>"
-+END LC_NAME
-+
-+LC_ADDRESS
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_ADDRESS category.
-+% "%a%N%f%N%d%N%b%N%s %h %e %r%N%C-%z %T%N%c%N"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-address.c)
-+postal_fmt    "<U0025><U0061><U0025><U004E><U0025><U0066><U0025><U004E>/
-+<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
-+<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
-+<U004E><U0025><U0043><U002D><U0025><U007A><U0020><U0025><U0054><U0025>/
-+<U004E><U0025><U0063><U0025><U004E>"
-+END LC_ADDRESS
-+
-+LC_TELEPHONE
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_TELEPHONE category.
-+% "+%c %a %l"
-+tel_int_fmt    "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025>/
-+<U006C>"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-telephone.c)
-+END LC_TELEPHONE
-+
-+LC_MEASUREMENT
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_MEASUREMENT category.
-+% (same as in the built in C/POSIX locale in glibc/locale/C-measurement.c)
-+%metric
-+measurement    1
-+END LC_MEASUREMENT
-+
--- 
-2.4.3
-
diff --git a/srcpkgs/glibc/template b/srcpkgs/glibc/template
index c62a4d2aedf1..139aab865864 100644
--- a/srcpkgs/glibc/template
+++ b/srcpkgs/glibc/template
@@ -1,14 +1,14 @@
 # Template file for 'glibc'
 pkgname=glibc
-version=2.32
-revision=2
+version=2.36
+revision=1
 bootstrap=yes
 short_desc="GNU C library"
 maintainer="Enno Boland <gottox@voidlinux.org>"
 license="GPL-2.0-or-later, LGPL-2.1-or-later, BSD-3-Clause"
 homepage="http://www.gnu.org/software/libc"
 distfiles="${GNU_SITE}/glibc/glibc-${version}.tar.xz"
-checksum=1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum=1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
 # Do not strip these files, objcopy errors out.
 nostrip_files="
 	XBS5_ILP32_OFFBIG
@@ -20,27 +20,28 @@ nostrip_files="
 	POSIX_V6_LP64_OFF64
 	POSIX_V7_LP64_OFF64
 	XBS5_LP64_OFF64
-	ld-${version}.so
-	libdl-${version}.so
-	libanl-${version}.so
-	libcidn-${version}.so
-	libresolv-${version}.so
-	libcrypt-${version}.so
-	libpthread-${version}.so
-	libm-${version}.so
-	libutil-${version}.so
-	libthread_db-1.0.so
-	librt-${version}.so
-	libnsl-${version}.so
-	libc-${version}.so
-	libBrokenLocale-${version}.so
-	libnss_compat-${version}.so
-	libnss_db-${version}.so
-	libnss_dns-${version}.so
-	libnss_files-${version}.so
-	libnss_hesiod-${version}.so
-	libnss_nisplus-${version}.so
-	libnss_nis-${version}.so"
+	ld-linux-x86-64.so.2
+	ld-linux.so.2
+	ld-linux.so.3
+	ld-linux-aarch64.so.1
+	ld64.so.2
+	ld.so.1
+	ld-linux-armhf.so.3
+	libresolv.so.2
+	libcrypt.so.1
+	libm.so.6
+	libthread_db.so.1
+	libnsl.so.1
+	libc.so.6
+	libc_malloc_debug.so.0
+	libmemusage.so
+	libmvec.so.1
+	libBrokenLocale.so.1
+	libnss_compat.so.2
+	libnss_db.so.2
+	libnss_dns.so.2
+	libnss_files.so.2
+	libnss_hesiod.so.2"
 
 conf_files="
 	/etc/rpc
@@ -54,7 +55,6 @@ lib32files="/usr/lib/gconv/gconv-modules"
 lib32symlinks="ld-linux.so.2"
 # There's no point in building this for musl.
 archs="~*-musl"
-nopie=yes
 
 do_configure() {
 	mkdir build
@@ -163,18 +163,6 @@ do_install() {
 	rm -f ${DESTDIR}/usr/bin/z{dump,ic}
 
 	mv ${DESTDIR}/usr/sbin/* ${DESTDIR}/usr/bin
-
-	# Create xbps.d(5) arch override file for 32-bit architectures
-	# 32-bit userlands may be used with 64-bit kernels and then
-	# xbps will report an incorrect architecture by default
-	case "$XBPS_TARGET_MACHINE" in
-		i686|ppc|ppcle|armv*)
-			vmkdir usr/share/xbps.d
-			echo "architecture=${XBPS_TARGET_MACHINE}" > \
-				${DESTDIR}/usr/share/xbps.d/arch-32bit.conf
-			;;
-		*) ;;
-	esac
 }
 
 glibc-devel_package() {

From f8e0bd641b5216cecadb58d19e23c96f1b3745aa Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Sun, 14 Aug 2022 19:29:36 -0700
Subject: [PATCH 06/31] build-style/void-cross: Update flags for gcc12 and
 glibc 2.36

gcov can't be built without libc:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100289

glibc 2.35 ane newer uses -static-pie by default:
https://sourceware.org/pipermail/glibc-cvs/2021q4/075916.html
---
 common/build-style/void-cross.sh | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/common/build-style/void-cross.sh b/common/build-style/void-cross.sh
index 92f03f8130f5..24d02865b164 100644
--- a/common/build-style/void-cross.sh
+++ b/common/build-style/void-cross.sh
@@ -132,6 +132,7 @@ _void_cross_build_bootstrap_gcc() {
 		--disable-libssp \
 		--disable-libitm \
 		--disable-libatomic \
+		--disable-gcov \
 		--disable-threads \
 		--disable-sjlj-exceptions \
 		--enable-languages=c \
@@ -246,6 +247,15 @@ _void_cross_build_glibc() {
 	local tgt=$1
 	local ver=$2
 
+	# glibc 2.35 and newer uses -static-pie by default
+	# which does not work with -no-pie.
+	local oldcflags="${CFLAGS}"
+	local oldcxxflags="${CXXFLAGS}"
+	local oldldflags="${LDFLAGS}"
+	CFLAGS="${CFLAGS//"-fno-PIE"/}"
+	CXXFLAGS="${CXXFLAGS//"-fno-PIE"/}"
+	LDFLAGS="${LDFLAGS//"-no-pie"/}"
+
 	msg_normal "Building glibc for ${tgt}\n"
 
 	mkdir -p ${wrksrc}/glibc_build
@@ -279,6 +289,9 @@ _void_cross_build_glibc() {
 	make ${makejobs}
 	make install_root=${wrksrc}/build_root/usr/${tgt} install
 
+	CFLAGS="${oldcflags}"
+	CXXFLAGS="${oldcxxflags}"
+	LDFLAGS="${oldldflags}"
 	touch ${wrksrc}/.glibc_build_done
 }
 

From e988fa9835b5cd7d348c55edab39650dafc5aa7a Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 20:08:52 -0700
Subject: [PATCH 07/31] openssh: suppress werror on gcc12

---
 srcpkgs/openssh/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/openssh/template b/srcpkgs/openssh/template
index 02a2dec35f42..6e8e343a9dca 100644
--- a/srcpkgs/openssh/template
+++ b/srcpkgs/openssh/template
@@ -40,7 +40,7 @@ if [ "$build_option_ldns" -a -z "$build_option_ssl" ]; then
 	broken="option 'ldns' requires option 'ssl'"
 fi
 
-CFLAGS="-Wno-format-truncation -Wno-stringop-truncation"
+CFLAGS="-Wno-format-truncation -Wno-stringop-truncation -Wno-error=maybe-uninitialized"
 
 case $XBPS_TARGET_MACHINE in
 	i686-musl)

From 407b3fd8dba1c57cf3ed045c7e4442e82527691d Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 20:09:31 -0700
Subject: [PATCH 08/31] linux5.18: update dotconfigs for gcc12

---
 srcpkgs/linux5.18/files/x86_64-dotconfig | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/srcpkgs/linux5.18/files/x86_64-dotconfig b/srcpkgs/linux5.18/files/x86_64-dotconfig
index 4e73a3195d40..ea6204868e23 100644
--- a/srcpkgs/linux5.18/files/x86_64-dotconfig
+++ b/srcpkgs/linux5.18/files/x86_64-dotconfig
@@ -512,6 +512,7 @@ CONFIG_RETHUNK=y
 CONFIG_CPU_UNRET_ENTRY=y
 CONFIG_CPU_IBPB_ENTRY=y
 CONFIG_CPU_IBRS_ENTRY=y
+CONFIG_SLS=y
 CONFIG_ARCH_HAS_ADD_PAGES=y
 CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y
 
@@ -10060,8 +10061,11 @@ CONFIG_LSM="yama,loadpin,safesetid,integrity"
 # Memory initialization
 #
 CONFIG_INIT_STACK_NONE=y
+# CONFIG_INIT_STACK_ALL_PATTERN is not set
+# CONFIG_INIT_STACK_ALL_ZERO is not set
 CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
 # CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
+# CONFIG_ZERO_CALL_USED_REGS is not set
 # end of Memory initialization
 # end of Kernel hardening options
 # end of Security options
@@ -10538,6 +10542,7 @@ CONFIG_HAVE_ARCH_KGDB=y
 CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
 # CONFIG_UBSAN is not set
 CONFIG_HAVE_ARCH_KCSAN=y
+# CONFIG_KCSAN is not set
 # end of Generic Kernel Debugging Instruments
 
 #

From aae067274e632d0ae18cd8cf46f47e24d11d1554 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:54 -0700
Subject: [PATCH 09/31] cross-aarch64-linux-gnu: update to gcc 12.1.0.

---
 srcpkgs/cross-aarch64-linux-gnu/template | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/srcpkgs/cross-aarch64-linux-gnu/template b/srcpkgs/cross-aarch64-linux-gnu/template
index 18de21aa3ccd..cb7ae97e7efe 100644
--- a/srcpkgs/cross-aarch64-linux-gnu/template
+++ b/srcpkgs/cross-aarch64-linux-gnu/template
@@ -1,10 +1,10 @@
 # Template file for 'cross-aarch64-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.1.0
+_glibc_version=2.36
 _linux_version=5.10.4
 pkgname=cross-aarch64-linux-gnu
-version=0.34
+version=0.35
 revision=1
 build_style=void-cross
 configure_args="--with-arch=armv8-a"
@@ -17,12 +17,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
 homepage="https://www.voidlinux.org/"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
  ${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
 nocross=yes
 

From 80ca04e163990ed72378b1dd8995bb8c142ee8b9 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:54 -0700
Subject: [PATCH 10/31] cross-aarch64-linux-musl: update to gcc 12.1.0.

---
 srcpkgs/cross-aarch64-linux-musl/template | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/srcpkgs/cross-aarch64-linux-musl/template b/srcpkgs/cross-aarch64-linux-musl/template
index bb6a770afb79..4fa950f334d4 100644
--- a/srcpkgs/cross-aarch64-linux-musl/template
+++ b/srcpkgs/cross-aarch64-linux-musl/template
@@ -1,12 +1,12 @@
 # Template file for 'cross-aarch64-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.1.0
 _musl_version=1.1.24
 _linux_version=5.10.4
 _libucontext_version=1.0
 pkgname=cross-aarch64-linux-musl
-version=0.34
-revision=4
+version=0.35
+revision=1
 build_style=void-cross
 configure_args="--with-arch=armv8-a"
 hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
@@ -18,12 +18,12 @@ homepage="https://www.voidlinux.org/"
 license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
  https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
  https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
  1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
  23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"

From 705d5d10eaf9b3f8c55690169edab6b9d26211af Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:54 -0700
Subject: [PATCH 11/31] cross-arm-linux-gnueabi: update to gcc 12.1.0.

---
 srcpkgs/cross-arm-linux-gnueabi/template | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/srcpkgs/cross-arm-linux-gnueabi/template b/srcpkgs/cross-arm-linux-gnueabi/template
index a3aba72aa93a..194c0ab774b7 100644
--- a/srcpkgs/cross-arm-linux-gnueabi/template
+++ b/srcpkgs/cross-arm-linux-gnueabi/template
@@ -1,10 +1,10 @@
 # Template file for 'cross-arm-linux-gnueabi'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.1.0
+_glibc_version=2.36
 _linux_version=5.10.4
 pkgname=cross-arm-linux-gnueabi
-version=0.34
+version=0.35
 revision=1
 build_style=void-cross
 configure_args="--with-arch=armv5te --with-float=soft"
@@ -17,12 +17,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
 homepage="https://www.voidlinux.org/"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
  ${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
 nocross=yes
 

From f11f02cceb2db3c3d1b3c37271f397aa2dfb6993 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:55 -0700
Subject: [PATCH 12/31] cross-arm-linux-gnueabihf: update to gcc 12.1.0.

---
 srcpkgs/cross-arm-linux-gnueabihf/template | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/srcpkgs/cross-arm-linux-gnueabihf/template b/srcpkgs/cross-arm-linux-gnueabihf/template
index d9ab86cf2ecc..3f3242b85b07 100644
--- a/srcpkgs/cross-arm-linux-gnueabihf/template
+++ b/srcpkgs/cross-arm-linux-gnueabihf/template
@@ -1,10 +1,10 @@
 # Template file for 'cross-arm-linux-gnueabihf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.1.0
+_glibc_version=2.36
 _linux_version=5.10.4
 pkgname=cross-arm-linux-gnueabihf
-version=0.34
+version=0.35
 revision=1
 build_style=void-cross
 configure_args="--with-arch=armv6 --with-fpu=vfp --with-float=hard"
@@ -17,12 +17,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
 homepage="https://www.voidlinux.org/"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
  ${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
 nocross=yes
 

From 9ed38a7006eb817c196096d398eb04e6fcb4567b Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:55 -0700
Subject: [PATCH 13/31] cross-arm-linux-musleabi: update to gcc 12.1.0.

---
 srcpkgs/cross-arm-linux-musleabi/template | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/srcpkgs/cross-arm-linux-musleabi/template b/srcpkgs/cross-arm-linux-musleabi/template
index 6692d891e1bd..b0cdade60a6d 100644
--- a/srcpkgs/cross-arm-linux-musleabi/template
+++ b/srcpkgs/cross-arm-linux-musleabi/template
@@ -1,12 +1,12 @@
 # Template file for 'cross-arm-linux-musleabi'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.1.0
 _musl_version=1.1.24
 _linux_version=5.10.4
 _libucontext_version=1.0
 pkgname=cross-arm-linux-musleabi
-version=0.34
-revision=4
+version=0.35
+revision=1
 build_style=void-cross
 configure_args="--with-arch=armv5te --with-float=soft"
 hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
@@ -18,12 +18,12 @@ homepage="https://www.voidlinux.org/"
 license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
  https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
  https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
  1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
  23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"

From e4e6df8cedcd9df54c58d334d9bddf255acae7f1 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:55 -0700
Subject: [PATCH 14/31] cross-arm-linux-musleabihf: update to gcc 12.1.0.

---
 srcpkgs/cross-arm-linux-musleabihf/template | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/srcpkgs/cross-arm-linux-musleabihf/template b/srcpkgs/cross-arm-linux-musleabihf/template
index bb62bd5ebc55..1924be24d483 100644
--- a/srcpkgs/cross-arm-linux-musleabihf/template
+++ b/srcpkgs/cross-arm-linux-musleabihf/template
@@ -1,12 +1,12 @@
 # Template file for 'cross-arm-linux-musleabihf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.1.0
 _musl_version=1.1.24
 _linux_version=5.10.4
 _libucontext_version=1.0
 pkgname=cross-arm-linux-musleabihf
-version=0.34
-revision=4
+version=0.35
+revision=1
 build_style=void-cross
 configure_args="--with-arch=armv6 --with-fpu=vfp --with-float=hard"
 hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
@@ -18,12 +18,12 @@ homepage="https://www.voidlinux.org/"
 license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
  https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
  https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
  1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
  23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"

From 7afca911df0f1c59c488389623f233a864aa703b Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:55 -0700
Subject: [PATCH 15/31] cross-armv7l-linux-gnueabihf: update to gcc 12.1.0.

---
 srcpkgs/cross-armv7l-linux-gnueabihf/template | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/srcpkgs/cross-armv7l-linux-gnueabihf/template b/srcpkgs/cross-armv7l-linux-gnueabihf/template
index 30c89b6294ef..a7997d6db937 100644
--- a/srcpkgs/cross-armv7l-linux-gnueabihf/template
+++ b/srcpkgs/cross-armv7l-linux-gnueabihf/template
@@ -1,10 +1,10 @@
 # Template file for 'cross-armv7l-linux-gnueabihf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.1.0
+_glibc_version=2.36
 _linux_version=5.10.4
 pkgname=cross-armv7l-linux-gnueabihf
-version=0.34
+version=0.35
 revision=1
 build_style=void-cross
 configure_args="--with-arch=armv7-a --with-fpu=vfpv3 --with-float=hard"
@@ -17,12 +17,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
 homepage="https://www.voidlinux.org/"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
  ${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
 nocross=yes
 

From f4276b1cf752a503c98d0bfed9c0b0234cf13d07 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:55 -0700
Subject: [PATCH 16/31] cross-armv7l-linux-musleabihf: update to gcc 12.1.0.

---
 srcpkgs/cross-armv7l-linux-musleabihf/template | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/srcpkgs/cross-armv7l-linux-musleabihf/template b/srcpkgs/cross-armv7l-linux-musleabihf/template
index 0a588cdf1a58..aaa7040fbfef 100644
--- a/srcpkgs/cross-armv7l-linux-musleabihf/template
+++ b/srcpkgs/cross-armv7l-linux-musleabihf/template
@@ -1,12 +1,12 @@
 # Template file for 'cross-armv7l-linux-musleabihf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.1.0
 _musl_version=1.1.24
 _linux_version=5.10.4
 _libucontext_version=1.0
 pkgname=cross-armv7l-linux-musleabihf
-version=0.34
-revision=4
+version=0.35
+revision=1
 build_style=void-cross
 configure_args="--with-arch=armv7-a --with-fpu=vfpv3 --with-float=hard"
 hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
@@ -18,12 +18,12 @@ homepage="https://www.voidlinux.org/"
 license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
  https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
  https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
  1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
  23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"

From 4c7e5ae9fe15df6e027fdf16c6de2b96890bfc62 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:55 -0700
Subject: [PATCH 17/31] cross-i686-pc-linux-gnu: update to gcc 12.1.0.

---
 srcpkgs/cross-i686-pc-linux-gnu/template | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/srcpkgs/cross-i686-pc-linux-gnu/template b/srcpkgs/cross-i686-pc-linux-gnu/template
index 263a43f7a7b8..765cf675e95c 100644
--- a/srcpkgs/cross-i686-pc-linux-gnu/template
+++ b/srcpkgs/cross-i686-pc-linux-gnu/template
@@ -1,10 +1,10 @@
 # Template file for 'cross-i686-pc-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.1.0
+_glibc_version=2.36
 _linux_version=5.10.4
 pkgname=cross-i686-pc-linux-gnu
-version=0.34
+version=0.35
 revision=1
 build_style=void-cross
 hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
@@ -16,12 +16,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
 homepage="https://www.voidlinux.org/"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
  ${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
 nocross=yes
 

From a1dc60cb5bd22ea51c2a6823fc3df4f1c664f673 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:55 -0700
Subject: [PATCH 18/31] cross-mips-linux-musl: update to gcc 12.1.0.

---
 srcpkgs/cross-mips-linux-musl/template | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/srcpkgs/cross-mips-linux-musl/template b/srcpkgs/cross-mips-linux-musl/template
index 9b5d5819b1a0..b6cf50add587 100644
--- a/srcpkgs/cross-mips-linux-musl/template
+++ b/srcpkgs/cross-mips-linux-musl/template
@@ -1,10 +1,10 @@
 # Template file for 'cross-mips-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.1.0
 _musl_version=1.1.24
 _linux_version=5.10.4
 pkgname=cross-mips-linux-musl
-version=0.34
+version=0.35
 revision=3
 build_style=void-cross
 configure_args="--with-arch=mips32r2 --with-float=soft
@@ -18,11 +18,11 @@ homepage="https://www.voidlinux.org/"
 license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
- https://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
+ https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
  1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
 nocross=yes

From 0fe96b4d1d00d74257ee0006aef89753479db703 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:55 -0700
Subject: [PATCH 19/31] cross-mips-linux-muslhf: update to gcc 12.1.0.

---
 srcpkgs/cross-mips-linux-muslhf/template | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/srcpkgs/cross-mips-linux-muslhf/template b/srcpkgs/cross-mips-linux-muslhf/template
index d7590af9ec03..fe74faf15d55 100644
--- a/srcpkgs/cross-mips-linux-muslhf/template
+++ b/srcpkgs/cross-mips-linux-muslhf/template
@@ -1,11 +1,11 @@
 # Template file for 'cross-mips-linux-muslhf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.1.0
 _musl_version=1.1.24
 _linux_version=5.10.4
 pkgname=cross-mips-linux-muslhf
-version=0.34
-revision=3
+version=0.35
+revision=1
 build_style=void-cross
 configure_args="--with-arch=mips32r2 --with-float=hard
  --with-linker-hash-style=sysv"
@@ -18,11 +18,11 @@ homepage="https://www.voidlinux.org/"
 license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
- https://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
+ https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
  1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
 nocross=yes

From 7da29dd104a3109097f766c587410ef88a9498d0 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:55 -0700
Subject: [PATCH 20/31] cross-mipsel-linux-musl: update to gcc 12.1.0.

---
 srcpkgs/cross-mipsel-linux-musl/template | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/srcpkgs/cross-mipsel-linux-musl/template b/srcpkgs/cross-mipsel-linux-musl/template
index 1acba7016dbc..aa74d0b1acc7 100644
--- a/srcpkgs/cross-mipsel-linux-musl/template
+++ b/srcpkgs/cross-mipsel-linux-musl/template
@@ -1,11 +1,11 @@
 # Template file for 'cross-mipsel-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_musl_version=1.1.24
+_binutils_version=2.39
+_gcc_version=12.1.0
+_glibc_version=2.36
 _linux_version=5.10.4
 pkgname=cross-mipsel-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
 build_style=void-cross
 configure_args="--with-arch=mips32r2 --with-float=soft
  --with-linker-hash-style=sysv"
@@ -18,12 +18,12 @@ homepage="https://www.voidlinux.org/"
 license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
- https://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
 nocross=yes
 

From 30a66421affb9355bfe11a9799579b17094dbde2 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:55 -0700
Subject: [PATCH 21/31] cross-mipsel-linux-muslhf: update to gcc 12.1.0.

---
 srcpkgs/cross-mipsel-linux-muslhf/template | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/srcpkgs/cross-mipsel-linux-muslhf/template b/srcpkgs/cross-mipsel-linux-muslhf/template
index e4a55f028bc4..83ab7f187085 100644
--- a/srcpkgs/cross-mipsel-linux-muslhf/template
+++ b/srcpkgs/cross-mipsel-linux-muslhf/template
@@ -1,11 +1,11 @@
 # Template file for 'cross-mipsel-linux-muslhf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_musl_version=1.1.24
+_binutils_version=2.39
+_gcc_version=12.1.0
+_glibc_version=2.36
 _linux_version=5.10.4
 pkgname=cross-mipsel-linux-muslhf
-version=0.34
-revision=3
+version=0.35
+revision=1
 build_style=void-cross
 configure_args="--with-arch=mips32r2 --with-float=hard
  --with-linker-hash-style=sysv"
@@ -18,12 +18,12 @@ homepage="https://www.voidlinux.org/"
 license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
- https://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
 nocross=yes
 

From 0c02419f83befa5f867ca7157fb5aed5f4137b2e Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:55 -0700
Subject: [PATCH 22/31] cross-powerpc-linux-gnu: update to gcc 12.1.0.

---
 srcpkgs/cross-powerpc-linux-gnu/template | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/srcpkgs/cross-powerpc-linux-gnu/template b/srcpkgs/cross-powerpc-linux-gnu/template
index b97a21d0d72e..3ab1a4ea40fa 100644
--- a/srcpkgs/cross-powerpc-linux-gnu/template
+++ b/srcpkgs/cross-powerpc-linux-gnu/template
@@ -1,10 +1,10 @@
 # Template file for 'cross-powerpc-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.1.0
+_glibc_version=2.36
 _linux_version=5.10.4
 pkgname=cross-powerpc-linux-gnu
-version=0.34
+version=0.35
 revision=1
 build_style=void-cross
 configure_args="--enable-secureplt --disable-vtable-verify"
@@ -17,12 +17,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
 homepage="https://www.voidlinux.org/"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
  ${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
 nocross=yes
 

From c09a18550fc007be19c6d9bac1972f781ad3b95d Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:55 -0700
Subject: [PATCH 23/31] cross-powerpc-linux-musl: update to gcc 12.1.0.

---
 srcpkgs/cross-powerpc-linux-musl/template | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/srcpkgs/cross-powerpc-linux-musl/template b/srcpkgs/cross-powerpc-linux-musl/template
index f9b22f0610d3..af5586cacc77 100644
--- a/srcpkgs/cross-powerpc-linux-musl/template
+++ b/srcpkgs/cross-powerpc-linux-musl/template
@@ -1,11 +1,11 @@
 # Template file for 'cross-powerpc-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.1.0
 _musl_version=1.1.24
 _linux_version=5.10.4
 pkgname=cross-powerpc-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
 build_style=void-cross
 configure_args="--enable-secureplt --disable-vtable-verify
  --disable-decimal-float"
@@ -18,11 +18,11 @@ homepage="https://www.voidlinux.org/"
 license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
  https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
  1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
 nocross=yes

From 692530b11302a0169ba3286997105e9136a65425 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:55 -0700
Subject: [PATCH 24/31] cross-powerpc64-linux-gnu: update to gcc 12.1.0.

---
 srcpkgs/cross-powerpc64-linux-gnu/template | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/srcpkgs/cross-powerpc64-linux-gnu/template b/srcpkgs/cross-powerpc64-linux-gnu/template
index 35cfcaa6f02e..2604b268046b 100644
--- a/srcpkgs/cross-powerpc64-linux-gnu/template
+++ b/srcpkgs/cross-powerpc64-linux-gnu/template
@@ -1,10 +1,10 @@
 # Template file for 'cross-powerpc64-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.1.0
+_glibc_version=2.36
 _linux_version=5.10.4
 pkgname=cross-powerpc64-linux-gnu
-version=0.34
+version=0.35
 revision=1
 build_style=void-cross
 configure_args="--enable-secureplt --disable-vtable-verify --with-abi=elfv2
@@ -18,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
 homepage="https://www.voidlinux.org/"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
  ${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
 nocross=yes
 

From eefe74c38fc46e31f9db88d8c47c82ae1e12dec4 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:55 -0700
Subject: [PATCH 25/31] cross-powerpc64-linux-musl: update to gcc 12.1.0.

---
 srcpkgs/cross-powerpc64-linux-musl/template | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/srcpkgs/cross-powerpc64-linux-musl/template b/srcpkgs/cross-powerpc64-linux-musl/template
index 1ebd0fb2048d..c7894721b900 100644
--- a/srcpkgs/cross-powerpc64-linux-musl/template
+++ b/srcpkgs/cross-powerpc64-linux-musl/template
@@ -1,12 +1,12 @@
 # Template file for 'cross-powerpc64-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.1.0
 _musl_version=1.1.24
 _linux_version=5.10.4
 _libucontext_version=1.0
 pkgname=cross-powerpc64-linux-musl
-version=0.34
-revision=4
+version=0.35
+revision=1
 build_style=void-cross
 configure_args="--enable-secureplt --disable-vtable-verify
  --disable-decimal-float --with-abi=elfv2 --enable-targets=powerpc-linux"
@@ -19,12 +19,12 @@ homepage="https://www.voidlinux.org/"
 license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
  https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
  https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
  1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
  23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"

From ad83cbdacb73a1866d1b09583e3fcfb71a40d7dd Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:56 -0700
Subject: [PATCH 26/31] cross-powerpc64le-linux-gnu: update to gcc 12.1.0.

---
 srcpkgs/cross-powerpc64le-linux-gnu/template | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/srcpkgs/cross-powerpc64le-linux-gnu/template b/srcpkgs/cross-powerpc64le-linux-gnu/template
index 733f5851da5c..618235468970 100644
--- a/srcpkgs/cross-powerpc64le-linux-gnu/template
+++ b/srcpkgs/cross-powerpc64le-linux-gnu/template
@@ -1,10 +1,10 @@
 # Template file for 'cross-powerpc64le-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.1.0
+_musl_version=1.1.24
 _linux_version=5.10.4
 pkgname=cross-powerpc64le-linux-gnu
-version=0.34
+version=0.35
 revision=1
 build_style=void-cross
 configure_args="--enable-secureplt --disable-vtable-verify --with-abi=elfv2
@@ -18,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
 homepage="https://www.voidlinux.org/"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
- ${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
+ https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
+ 1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
 nocross=yes
 

From 41c50692eb50cc2be104c2d634dcef36ab25ef7e Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:56 -0700
Subject: [PATCH 27/31] cross-powerpc64le-linux-musl: update to gcc 12.1.0.

---
 srcpkgs/cross-powerpc64le-linux-musl/template | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/cross-powerpc64le-linux-musl/template b/srcpkgs/cross-powerpc64le-linux-musl/template
index 76a70aa1d6db..ae847b296366 100644
--- a/srcpkgs/cross-powerpc64le-linux-musl/template
+++ b/srcpkgs/cross-powerpc64le-linux-musl/template
@@ -1,6 +1,6 @@
 # Template file for 'cross-powerpc64le-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.1.0
 _musl_version=1.1.24
 _linux_version=5.10.4
 _libucontext_version=1.0
@@ -19,12 +19,12 @@ homepage="https://www.voidlinux.org/"
 license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
  https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
  https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
  1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
  23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"

From 8cf42ec7a72a18fcefb694dc347a7594582e64eb Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:56 -0700
Subject: [PATCH 28/31] cross-powerpcle-linux-gnu: update to gcc 12.1.0.

---
 srcpkgs/cross-powerpcle-linux-gnu/template | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/srcpkgs/cross-powerpcle-linux-gnu/template b/srcpkgs/cross-powerpcle-linux-gnu/template
index 347b8fcf4f55..cc10b7cbd88b 100644
--- a/srcpkgs/cross-powerpcle-linux-gnu/template
+++ b/srcpkgs/cross-powerpcle-linux-gnu/template
@@ -1,10 +1,10 @@
 # Template file for 'cross-powerpcle-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.1.0
+_glibc_version=2.36
 _linux_version=5.10.4
 pkgname=cross-powerpcle-linux-gnu
-version=0.34
+version=0.35
 revision=1
 build_style=void-cross
 configure_args="--enable-secureplt --disable-vtable-verify"
@@ -17,12 +17,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
 homepage="https://www.voidlinux.org/"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
  ${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
 nocross=yes
 

From 42cdab1c79234e50fefa5753221b5f55db4ccd3b Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:56 -0700
Subject: [PATCH 29/31] cross-powerpcle-linux-musl: update to gcc 12.1.0.

---
 srcpkgs/cross-powerpcle-linux-musl/template | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/srcpkgs/cross-powerpcle-linux-musl/template b/srcpkgs/cross-powerpcle-linux-musl/template
index ec9324ddaa99..1d38a3fa3559 100644
--- a/srcpkgs/cross-powerpcle-linux-musl/template
+++ b/srcpkgs/cross-powerpcle-linux-musl/template
@@ -1,11 +1,11 @@
 # Template file for 'cross-powerpcle-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.1.0
 _musl_version=1.1.24
 _linux_version=5.10.4
 pkgname=cross-powerpcle-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
 build_style=void-cross
 configure_args="--enable-secureplt --disable-vtable-verify
  --disable-decimal-float"
@@ -18,11 +18,11 @@ homepage="https://www.voidlinux.org/"
 license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
  https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
  1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
 nocross=yes

From 688974cd95af523ff7c3741a597b691cb54971f9 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:56 -0700
Subject: [PATCH 30/31] cross-x86_64-linux-gnu: update to gcc 12.1.0.

---
 srcpkgs/cross-x86_64-linux-gnu/template | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/srcpkgs/cross-x86_64-linux-gnu/template b/srcpkgs/cross-x86_64-linux-gnu/template
index 0078fbe7224b..9f740b00a80c 100644
--- a/srcpkgs/cross-x86_64-linux-gnu/template
+++ b/srcpkgs/cross-x86_64-linux-gnu/template
@@ -1,10 +1,10 @@
 # Template file for 'cross-x86_64-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.1.0
+_glibc_version=2.36
 _linux_version=5.10.4
 pkgname=cross-x86_64-linux-gnu
-version=0.34
+version=0.35
 revision=1
 build_style=void-cross
 hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
@@ -16,12 +16,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
 homepage="https://www.voidlinux.org/"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
  ${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
 nocross=yes
 

From 3bf2def0b623534deb14aa43c1fd928bbaad9ccb Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:56 -0700
Subject: [PATCH 31/31] cross-x86_64-linux-musl: update to gcc 12.1.0.

---
 srcpkgs/cross-x86_64-linux-musl/template | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/srcpkgs/cross-x86_64-linux-musl/template b/srcpkgs/cross-x86_64-linux-musl/template
index a941e7e02f6f..19e13f3818e9 100644
--- a/srcpkgs/cross-x86_64-linux-musl/template
+++ b/srcpkgs/cross-x86_64-linux-musl/template
@@ -1,12 +1,12 @@
 # Template file for 'cross-x86_64-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.1.0
 _musl_version=1.1.24
 _linux_version=5.10.4
 _libucontext_version=1.0
 pkgname=cross-x86_64-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
 build_style=void-cross
 hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
 makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
@@ -17,12 +17,12 @@ homepage="https://www.voidlinux.org/"
 license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
  https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
  https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
  1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
  23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"

^ permalink raw reply	[flat|nested] 144+ messages in thread

* Re: [PR PATCH] [Updated] gcc: update to 12.1.0
  2022-01-06  6:15 [PR PATCH] gcc: update to 11.2.1git20211128 Oreo639
                   ` (20 preceding siblings ...)
  2022-08-15  8:14 ` oreo639
@ 2022-08-15  8:17 ` oreo639
  2022-08-15  8:20 ` oreo639
                   ` (120 subsequent siblings)
  142 siblings, 0 replies; 144+ messages in thread
From: oreo639 @ 2022-08-15  8:17 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 2605 bytes --]

There is an updated pull request by oreo639 against master on the void-packages repository

https://github.com/oreo639/void-packages gcc11
https://github.com/void-linux/void-packages/pull/34902

gcc: update to 12.1.0
<!-- Uncomment relevant sections and delete options which are not applicable -->
[ci skip]

Edit: this PR had been updated for gcc 12.1.0

This PR depends on: https://github.com/void-linux/void-packages/pull/32330

I tested this PR with glibc and after updating glibc, it seems to work fine.
I also tested this PR with x86_64-musl, and it appears to run fine in a musl chroot, and recompiling and installing musl with gcc 12 doesn't appear to result in any issues. (more testing is needed)

Please let me know if there are any issues.

I compiled base-system to ensure that compiles and it appears to work fine.

I tested some of the cross compilers and after some debugging with the help of CameronNemo, we figured out the issue.
The cross compilers are built with `nopie=yes` (specified in environment/build-style), which causes issues with glibc 2.35+ which uses PIE by default.
gcc always builds itself as nopie.
I added a workaround to common/build-style/void-cross but if you have any other recommendations on how to handle it, feel free to let me know.

Also, keep in mind that the libgo musl patch here will need to be updated once musl is updated:
https://github.com/void-linux/void-packages/pull/34902/files#diff-1f42a95b93c9550178ff1fbccbef2f47a72711df15c24c9472e2550076978129R163-R176

This is the updated patch for reference:
https://github.com/alpinelinux/aports/blob/8acb21b8ee881e7ab1c812d9a66a17d2501b8730/main/gcc/0049-libgo-adjust-name-of-union-in-sigevent-struct.patch

#### Testing the changes
- I tested the changes in this PR: **briefly**

<!--
#### New package
- This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please [skip CI](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration)
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->

#### Local build testing
- I built this PR locally for my native architecture, (x86_64-glibc)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - x86_64-musl

A patch file from https://github.com/void-linux/void-packages/pull/34902.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-gcc11-34902.patch --]
[-- Type: text/x-diff, Size: 105299 bytes --]

From 089d015613e2b4fa8555f3bc80701a181d470a23 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 01:14:21 -0700
Subject: [PATCH 01/31] binutils: update to 2.39.

---
 ...e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch | 60 -----------------
 .../patches/ppc64-revert-gnu-attributes.patch | 66 +++++--------------
 srcpkgs/binutils/template                     |  9 +--
 3 files changed, 22 insertions(+), 113 deletions(-)
 delete mode 100644 srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch

diff --git a/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch b/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch
deleted file mode 100644
index a55432d83cff..000000000000
--- a/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff Mon Sep 17 00:00:00 2001
-From: "H.J. Lu" <hjl.tools@gmail.com>
-Date: Mon, 16 Nov 2020 06:37:53 -0800
-Subject: [PATCH] elf: Set rel_from_abs to 1 for __ehdr_start
-
-bfdlink.h has
-
-  /* Symbol will be converted from absolute to section-relative.  Set for
-     symbols defined by a script from "dot" (also SEGMENT_START or ORIGIN)
-     outside of an output section statement.  */
-  unsigned int rel_from_abs : 1;
-
-linker.c has
-
-.{* Return TRUE if the symbol described by a linker hash entry H
-.   is going to be absolute.  Linker-script defined symbols can be
-.   converted from absolute to section-relative ones late in the
-.   link.  Use this macro to correctly determine whether the symbol
-.   will actually end up absolute in output.  *}
-.#define bfd_is_abs_symbol(H) \
-.  (((H)->type == bfd_link_hash_defined \
-.    || (H)->type == bfd_link_hash_defweak) \
-.   && bfd_is_abs_section ((H)->u.def.section) \
-.   && !(H)->rel_from_abs)
-.
-
-Set rel_from_abs to 1 for __ehdr_start which will be converted from
-absolute to section-relative in assign_file_positions_for_load_sections.
-
-	PR ld/26869
-	* ldelf.c (ldelf_before_allocation): Set rel_from_abs to 1 for
-	__ehdr_start.
-	* testsuite/ld-i386/i386.exp: Run pr26869.
-	* testsuite/ld-i386/pr26869.d: New file.
-	* testsuite/ld-i386/pr26869.s: Likewise.
-
-(cherry picked from commit cbd5b99cce073273f668b154d4514e8e7e7ccc51)
----
- ld/ChangeLog                   |  9 +++++++++
- ld/ldelf.c                     |  2 ++
- ld/testsuite/ld-i386/i386.exp  |  1 +
- ld/testsuite/ld-i386/pr26869.d | 14 ++++++++++++++
- ld/testsuite/ld-i386/pr26869.s |  3 +++
- 5 files changed, 29 insertions(+)
- create mode 100644 ld/testsuite/ld-i386/pr26869.d
- create mode 100644 ld/testsuite/ld-i386/pr26869.s
-
-diff --git a/ld/ldelf.c b/ld/ldelf.c
-index bada3ade2d7..831d032fe56 100644
---- a/ld/ldelf.c
-+++ b/ld/ldelf.c
-@@ -1589,6 +1589,8 @@ ldelf_before_allocation (char *audit, char *depaudit,
- 		      (char *) &ehdr_start->u + sizeof ehdr_start->u.def.next,
- 		      sizeof ehdr_start_save_u);
- 	      ehdr_start->type = bfd_link_hash_defined;
-+	      /* It will be converted to section-relative later.  */
-+	      ehdr_start->rel_from_abs = 1;
- 	      ehdr_start->u.def.section = bfd_abs_section_ptr;
- 	      ehdr_start->u.def.value = 0;
- 	    }
diff --git a/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch b/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
index 5de937f4fcce..1c208dd8955c 100644
--- a/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
+++ b/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
@@ -1,39 +1,24 @@
-From b1faf99f3e546df2cd302bb1ad36a2078224fe8b Mon Sep 17 00:00:00 2001
+From bbf05b742fde518fb97c789b043fe0d3aaf549f0 Mon Sep 17 00:00:00 2001
 From: Ariadne Conill <ariadne@dereferenced.org>
-Date: Fri, 30 Oct 2020 16:59:48 -0600
+Date: Tue, 21 Sep 2021 14:53:13 +0000
 Subject: [PATCH] Revert "PR25882, .gnu.attributes are not checked for shared
  libraries"
 
+This revert is needed to avoid wrongly tagging objects with the incompatible
+IBM long double ABI, which is not supported by musl and will result in
+linking errors if used.
+
 This reverts commit a8acd6eeb6dc2cc5460ece90f90ebe36b56b20ba.
 ---
- bfd/ChangeLog     | 6 ------
- bfd/elf32-tic6x.c | 3 ---
- ld/ChangeLog      | 6 ------
- ld/ldlang.c       | 9 ++++-----
- 4 files changed, 4 insertions(+), 20 deletions(-)
+ bfd/elf32-tic6x.c |  3 ---
+ ld/ldlang.c       | 10 ++++------
+ 2 files changed, 4 insertions(+), 9 deletions(-)
 
-diff --git a/bfd/ChangeLog b/bfd/ChangeLog
-index 9fac12538a..b5461494e8 100644
---- a/bfd/ChangeLog
-+++ b/bfd/ChangeLog
-@@ -1422,12 +1422,6 @@
- 	accessing root.u.def of symbols.  Also check root.u.def.section
- 	is non-NULL.  Reverse tests so as to make the logic positive.
- 
--2020-05-01  Alan Modra  <amodra@gmail.com>
--
--	PR 25882
--	* elf32-tic6x.c (elf32_tic6x_merge_attributes): Don't transfer
--	Tag_ABI_PIC or Tag_ABI_PID from dynamic objects to the output.
--
- 2020-05-01  Alan Modra  <amodra@gmail.com>
- 
- 	PR 25882
 diff --git a/bfd/elf32-tic6x.c b/bfd/elf32-tic6x.c
-index b8b916bfd3..91bb6a10b1 100644
+index 5754f3cb860..3ad1d612749 100644
 --- a/bfd/elf32-tic6x.c
 +++ b/bfd/elf32-tic6x.c
-@@ -3748,9 +3748,6 @@ elf32_tic6x_merge_attributes (bfd *ibfd, struct bfd_link_info *info)
+@@ -3735,9 +3735,6 @@ elf32_tic6x_merge_attributes (bfd *ibfd, struct bfd_link_info *info)
  
  	case Tag_ABI_PIC:
  	case Tag_ABI_PID:
@@ -43,36 +28,20 @@ index b8b916bfd3..91bb6a10b1 100644
  	  if (out_attr[i].i > in_attr[i].i)
  	    out_attr[i].i = in_attr[i].i;
  	  break;
-diff --git a/ld/ChangeLog b/ld/ChangeLog
-index 4eec7d2977..b93452f70c 100644
---- a/ld/ChangeLog
-+++ b/ld/ChangeLog
-@@ -1319,12 +1319,6 @@
- 	* testsuite/ld-aarch64/farcall-group.d: New test driver.
- 	* testsuite/ld-aarch64/aarch64-elf.exp: Run the new test.
- 
--2020-05-01  Alan Modra  <amodra@gmail.com>
--
--	PR 25882
--	* ldlang.c (lang_check): Call bfd_merge_private_bfd_data for
--	shared libraries.
--
- 2020-05-01  Alan Modra  <amodra@gmail.com>
- 
- 	* po/BLD-POTFILES.in: Regenerate.
 diff --git a/ld/ldlang.c b/ld/ldlang.c
-index 9977195074..173d8ec349 100644
+index 37b64c89ee1..f13beaef9d9 100644
 --- a/ld/ldlang.c
 +++ b/ld/ldlang.c
-@@ -6972,12 +6972,11 @@ lang_check (void)
+@@ -7071,13 +7071,11 @@ lang_check (void)
  		   bfd_printable_name (input_bfd), input_bfd,
  		   bfd_printable_name (link_info.output_bfd));
  	}
 -
 -      /* If the input bfd has no contents, it shouldn't set the
 -	 private data of the output bfd.  */
--      else if ((input_bfd->flags & DYNAMIC) != 0
--	       || bfd_count_sections (input_bfd) != 0)
+-      else if (!file->flags.just_syms
+-	       && ((input_bfd->flags & DYNAMIC) != 0
+-		   || bfd_count_sections (input_bfd) != 0))
 +      else if (bfd_count_sections (input_bfd))
  	{
 +	  /* If the input bfd has no contents, it shouldn't set the
@@ -82,5 +51,4 @@ index 9977195074..173d8ec349 100644
  
  	  /* If we aren't supposed to warn about mismatched input
 -- 
-2.29.2
-
+2.33.0
diff --git a/srcpkgs/binutils/template b/srcpkgs/binutils/template
index 6270f8618c87..6eb4f1a5e829 100644
--- a/srcpkgs/binutils/template
+++ b/srcpkgs/binutils/template
@@ -1,19 +1,20 @@
 # Template file for 'binutils'
 pkgname=binutils
-version=2.35.1
-revision=4
+version=2.39
+revision=1
 bootstrap=yes
+hostmakedepends="pkg-config"
 makedepends="zlib-devel"
 short_desc="GNU binary utilities"
 maintainer="Enno Boland <gottox@voidlinux.org>"
 license="GPL-3.0-or-later"
 homepage="http://www.gnu.org/software/binutils/"
 distfiles="${GNU_SITE}/$pkgname/$pkgname-$version.tar.xz"
-checksum=3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
+checksum=645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
 
 subpackages="binutils-doc"
 if [ "$CHROOT_READY" ]; then
-	hostmakedepends="flex perl texinfo"
+	hostmakedepends+=" flex perl texinfo"
 	makedepends+=" elfutils-devel"
 	checkdepends="bc"
 	depends="binutils-doc"

From 5159209d72f3d4edff4978b823832d4000ce2b3a Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 06:26:59 -0700
Subject: [PATCH 02/31] gcc: update to 12.1.0.

---
 common/shlibs                                 |  10 +-
 srcpkgs/gcc/files/gccgo-musl.patch            |  74 +++--------
 srcpkgs/gcc/files/libgnarl-musl.patch         |  18 +--
 srcpkgs/gcc/files/libssp-musl.patch           |  10 +-
 ...c21f3f5726823e19728fdd1571a14aae0fb3.patch | 105 ++++++++++++++++
 ...08065bdd36fb1a9b6aad9666b1edb5e06474.patch | 115 ++++++++++++++++++
 ...65517a59565758107c5b1a51a5fa382f8d1a.patch |  32 +++++
 srcpkgs/gcc/patches/libffi_gnulinux.patch     |  11 --
 .../gcc/patches/libgcc-ibm128-no-tag.patch    |  10 +-
 srcpkgs/gcc/patches/mips-sgidefs_h.patch      |   3 +-
 srcpkgs/gcc/template                          |  25 ++--
 11 files changed, 305 insertions(+), 108 deletions(-)
 create mode 100644 srcpkgs/gcc/patches/3b21c21f3f5726823e19728fdd1571a14aae0fb3.patch
 create mode 100644 srcpkgs/gcc/patches/49d508065bdd36fb1a9b6aad9666b1edb5e06474.patch
 create mode 100644 srcpkgs/gcc/patches/f35d65517a59565758107c5b1a51a5fa382f8d1a.patch
 delete mode 100644 srcpkgs/gcc/patches/libffi_gnulinux.patch

diff --git a/common/shlibs b/common/shlibs
index 61924610cc52..c6400b566966 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -60,7 +60,7 @@ libcc1plugin.so.0 gcc-6.2.1_1
 libitm.so.1 libitm-4.7.3_1
 liblto_plugin.so.0 gcc-4.7.3_1
 libgcc_s.so.1 libgcc-4.4.0_1
-libgo.so.16 libgo-10.2.0_1
+libgo.so.21 libgo-12.1.0_1
 libgccjit.so.0 libgccjit-10.2.1pre1_1
 libperl.so.5.34 perl-5.34.0_1
 libgmp.so.10 gmp-5.0.1_1
@@ -849,8 +849,8 @@ libgdkmm-2.4.so.1 gtkmm2-2.24.0_1
 libgtkmm-2.4.so.1 gtkmm2-2.24.0_1
 libquadmath.so.0 libquadmath-4.4.0_1
 libgfortran.so.5 libgfortran-8.2.0_1
-libgnarl-10.so libada-10.2.0_1
-libgnat-10.so libada-10.2.0_1
+libgnarl-12.so libada-12.1.0_1
+libgnat-12.so libada-12.1.0_1
 libwebp.so.7 libwebp-0.6.0_1
 libwebpmux.so.3 libwebp-0.6.0_1
 libwebpdemux.so.2 libwebp-0.5.0_1
@@ -1701,8 +1701,8 @@ libextractor.so.3 libextractor-1.1_1
 libextractor_common.so.1 libextractor-1.1_1
 libpano13.so.3 libpano13-2.9.19_1
 libubsan.so.1 libsanitizer-8.2.0_1
-libtsan.so.0 libsanitizer-6.3.0_1
-libasan.so.6 libsanitizer-10.2.0_1
+libtsan.so.2 libsanitizer-12.1.0_1
+libasan.so.8 libsanitizer-12.1.0_1
 liblsan.so.0 libsanitizer-6.3.0_1
 libvtv.so.0 libvtv-6.3.0_1
 libatomic.so.1 libatomic-4.9.0_1
diff --git a/srcpkgs/gcc/files/gccgo-musl.patch b/srcpkgs/gcc/files/gccgo-musl.patch
index 9762739615af..632ef951097b 100644
--- a/srcpkgs/gcc/files/gccgo-musl.patch
+++ b/srcpkgs/gcc/files/gccgo-musl.patch
@@ -53,17 +53,6 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
  	p := sysMmap(addr, n, prot, flags, fd, off)
  	if uintptr(p) == _MAP_FAILED {
  		return nil, errno()
---- a/libgo/go/runtime/signal_gccgo.go
-+++ b/libgo/go/runtime/signal_gccgo.go
-@@ -111,7 +111,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")
 --- a/libgo/go/syscall/errstr.go
 +++ b/libgo/go/syscall/errstr.go
 @@ -5,7 +5,6 @@
@@ -140,55 +129,6 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
  		plwoff = &lwoff
  	}
  	n, err = splice(rfd, plroff, wfd, plwoff, len, flags)
---- 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
---- a/libgo/runtime/go-signal.c	2020-07-23 08:35:19.004402840 +0200
-+++ b/libgo/runtime/go-signal.c	2020-08-09 21:35:54.352886232 +0200
-@@ -224,7 +224,11 @@
- #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;
-+	#ifdef __PPC64__
-+		ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.gp_regs[32];
-+	#else
-+		ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.gregs[32];
-+	#endif
- #elif defined(__PPC__) && defined(_AIX)
- 	ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.jmp_context.iar;
- #elif defined(__aarch64__) && defined(__linux__)
-@@ -333,7 +337,7 @@
- 		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(__linux__) && defined(__GLIBC__)
- 	  {
- 		mcontext_t *m = &((ucontext_t*)(context))->uc_mcontext;
- 		int i;
 --- a/libgo/runtime/runtime.h
 +++ b/libgo/runtime/runtime.h
 @@ -500,10 +500,13 @@ int __go_setcontext(__go_context_t*);
@@ -220,3 +160,17 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
  #if defined(HAVE_SYS_UTSNAME_H)
  #include <sys/utsname.h>
  #endif
+--- a/libgo/go/runtime/os_linux.go
++++ a/libgo/go/runtime/os_linux.go
+@@ -363,9 +363,9 @@
+ 
+ 	var timerid int32
+ 	var sevp _sigevent
+-	sevp.sigev_notify = _SIGEV_THREAD_ID
++	sevp.sigev_notify = 4
+ 	sevp.sigev_signo = _SIGPROF
+-	*((*int32)(unsafe.Pointer(&sevp._sigev_un))) = int32(mp.procid)
++	*((*int32)(unsafe.Pointer(&sevp.sigev_notify_function))) = int32(mp.procid)
+ 	ret := timer_create(_CLOCK_THREAD_CPUTIME_ID, &sevp, &timerid)
+ 	if ret != 0 {
+ 		// If we cannot create a timer for this M, leave profileTimerValid false
diff --git a/srcpkgs/gcc/files/libgnarl-musl.patch b/srcpkgs/gcc/files/libgnarl-musl.patch
index 99a734c42c90..91c95949e0e9 100644
--- a/srcpkgs/gcc/files/libgnarl-musl.patch
+++ b/srcpkgs/gcc/files/libgnarl-musl.patch
@@ -5,7 +5,7 @@ Reason: Patch libgnarl to not use function missing from musl.
 diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/libgnarl/s-osinte__linux.ads
 --- a/gcc/ada/libgnarl/s-osinte__linux.ads	2018-01-11 00:55:25.000000000 -0800
 +++ b/gcc/ada/libgnarl/s-osinte__linux.ads	2018-11-01 16:16:23.372452951 -0700
-@@ -394,12 +394,6 @@ package System.OS_Interface is
+@@ -403,12 +403,6 @@ package System.OS_Interface is
     PTHREAD_RWLOCK_PREFER_WRITER_NP              : constant := 1;
     PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP : constant := 2;
  
@@ -18,7 +18,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/l
     function pthread_rwlock_init
       (mutex : access pthread_rwlock_t;
        attr  : access pthread_rwlockattr_t) return int;
-@@ -464,11 +458,6 @@ package System.OS_Interface is
+@@ -470,11 +464,6 @@ package System.OS_Interface is
        protocol : int) return int;
     pragma Import (C, pthread_mutexattr_setprotocol);
  
@@ -33,7 +33,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/l
 diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/libgnarl/s-taprop__linux.adb
 --- a/gcc/ada/libgnarl/s-taprop__linux.adb	2018-01-11 00:55:25.000000000 -0800
 +++ b/gcc/ada/libgnarl/s-taprop__linux.adb	2018-11-13 11:28:36.433964449 -0800
-@@ -202,9 +202,6 @@ package body System.Task_Primitives.Oper
+@@ -198,9 +198,6 @@ package body System.Task_Primitives.Oper
     pragma Import
       (C, GNAT_pthread_condattr_setup, "__gnat_pthread_condattr_setup");
  
@@ -43,7 +43,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
     --  We do not have pragma Linker_Options ("-lcap"); here, because this
     --  library is not present on many Linux systems. 'libcap' is the Linux
     --  "capabilities" library, called by __gnat_has_cap_sys_nice.
-@@ -214,38 +211,6 @@ package body System.Task_Primitives.Oper
+@@ -210,38 +207,6 @@ package body System.Task_Primitives.Oper
     --  Convert Ada priority to Linux priority. Priorities are 1 .. 99 on
     --  GNU/Linux, so we map 0 .. 98 to 1 .. 99.
  
@@ -76,13 +76,13 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
 -      return Ceiling_Support;
 -   end Get_Ceiling_Support;
 -
--   pragma Warnings (Off, "non-static call not allowed in preelaborated unit");
+-   pragma Warnings (Off, "non-preelaborable call not allowed*");
 -   Ceiling_Support : constant Boolean := Get_Ceiling_Support;
--   pragma Warnings (On, "non-static call not allowed in preelaborated unit");
+-   pragma Warnings (On, "non-preelaborable call not allowed*");
     --  True if the locking policy is Ceiling_Locking, and the current process
     --  has permission to use this policy. The process has permission if it is
     --  running as 'root', or if the capability was set by the setcap command,
-@@ -348,7 +313,9 @@ package body System.Task_Primitives.Oper
+@@ -344,7 +309,9 @@ package body System.Task_Primitives.Oper
     -- Init_Mutex --
     ----------------
  
@@ -92,7 +92,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
        Mutex_Attr : aliased pthread_mutexattr_t;
        Result, Result_2 : C.int;
  
-@@ -360,16 +327,7 @@ package body System.Task_Primitives.Oper
+@@ -356,16 +323,7 @@ package body System.Task_Primitives.Oper
           return Result;
        end if;
  
@@ -110,7 +110,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
           Result := pthread_mutexattr_setprotocol
             (Mutex_Attr'Access, PTHREAD_PRIO_INHERIT);
           pragma Assert (Result = 0);
-@@ -409,11 +367,6 @@ package body System.Task_Primitives.Oper
+@@ -405,11 +363,6 @@ package body System.Task_Primitives.Oper
              Result := pthread_rwlockattr_init (RWlock_Attr'Access);
              pragma Assert (Result = 0);
  
diff --git a/srcpkgs/gcc/files/libssp-musl.patch b/srcpkgs/gcc/files/libssp-musl.patch
index b21a2c29e57c..99f248401a1c 100644
--- a/srcpkgs/gcc/files/libssp-musl.patch
+++ b/srcpkgs/gcc/files/libssp-musl.patch
@@ -2,9 +2,9 @@ First part taken from Alpine.
 
 Second part added to prevent gccgo from thinking it can -fsplit-stack on musl.
 
---- a/gcc/gcc.c
-+++ b/gcc/gcc.c
-@@ -874,10 +874,15 @@ proper position among the other output files.  */
+--- a/gcc/gcc.cc
++++ b/gcc/gcc.cc
+@@ -984,10 +984,15 @@ proper position among the other output f
  #define LINK_GCC_C_SEQUENCE_SPEC "%G %{!nolibc:%L %G}"
  #endif
  
@@ -22,10 +22,10 @@ Second part added to prevent gccgo from thinking it can -fsplit-stack on musl.
  #else
  #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
  		       "|fstack-protector-strong|fstack-protector-explicit" \
-@@ -1155,7 +1160,7 @@ static const char *cc1_options =
+@@ -1280,7 +1285,7 @@ static const char *cc1_options =
   %{-version:--version}\
   %{-help=*:--help=%*}\
-  %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %b.s}}}\
+  %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %w%b.s}}}\
 - %{fsyntax-only:-o %j} %{-param*}\
 + %{fsyntax-only:-o %j} %{-param*} " NO_SSP_SPEC "\
   %{coverage:-fprofile-arcs -ftest-coverage}\
diff --git a/srcpkgs/gcc/patches/3b21c21f3f5726823e19728fdd1571a14aae0fb3.patch b/srcpkgs/gcc/patches/3b21c21f3f5726823e19728fdd1571a14aae0fb3.patch
new file mode 100644
index 000000000000..00929202a503
--- /dev/null
+++ b/srcpkgs/gcc/patches/3b21c21f3f5726823e19728fdd1571a14aae0fb3.patch
@@ -0,0 +1,105 @@
+From 3b21c21f3f5726823e19728fdd1571a14aae0fb3 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <siarheit@google.com>
+Date: Mon, 27 Jun 2022 13:27:24 +0100
+Subject: [PATCH] c++: avoid <memory> poisoning on musl [PR106102]
+
+On musl <pthread.h> uses calloc() (via <sched.h>). <memory> includes
+it indirectly and exposes use of poisoned calloc() when module code
+is built:
+
+    /build/build/./prev-gcc/xg++ ... ../../gcc-13-20220626/gcc/cp/mapper-resolver.cc
+        In file included from /<<NIX>>/musl-1.2.3-dev/include/pthread.h:30,
+                 from /build/build/prev-x86_64-unknown-linux-musl/libstdc++-v3/include/x86_64-unknown-linux-musl/bits/gthr-default.h:35,
+                 ....
+                 from /build/build/prev-x86_64-unknown-linux-musl/libstdc++-v3/include/memory:77,
+                 from ../../gcc-13-20220626/gcc/../libcody/cody.hh:24,
+                 from ../../gcc-13-20220626/gcc/cp/../../c++tools/resolver.h:25,
+                 from ../../gcc-13-20220626/gcc/cp/../../c++tools/resolver.cc:23,
+                 from ../../gcc-13-20220626/gcc/cp/mapper-resolver.cc:32:
+    /<<NIX>>/musl-1.2.3-dev/include/sched.h:84:7: error: attempt to use poisoned "calloc"
+       84 | void *calloc(size_t, size_t);
+          |       ^
+    /<<NIX>>/musl-1.2.3-dev/include/sched.h:124:36: error: attempt to use poisoned "calloc"
+      124 | #define CPU_ALLOC(n) ((cpu_set_t *)calloc(1,CPU_ALLOC_SIZE(n)))
+          |                                    ^
+
+gcc/cp/
+
+	PR c++/106102
+	* mapper-client.cc: Include <memory> via "system.h".
+	* mapper-resolver.cc: Ditto.
+	* module.cc: Ditto.
+
+libcc1/
+
+	PR c++/106102
+	* libcc1plugin.cc: Include <memory> via "system.h".
+	* libcp1plugin.cc: Ditto.
+---
+ gcc/cp/mapper-client.cc   | 1 +
+ gcc/cp/mapper-resolver.cc | 1 +
+ gcc/cp/module.cc          | 1 +
+ libcc1/libcc1plugin.cc    | 1 +
+ libcc1/libcp1plugin.cc    | 1 +
+ 5 files changed, 5 insertions(+)
+
+diff --git a/gcc/cp/mapper-client.cc b/gcc/cp/mapper-client.cc
+index 8603a886a099..fe9544b5ba43 100644
+--- a/gcc/cp/mapper-client.cc
++++ b/gcc/cp/mapper-client.cc
+@@ -27,6 +27,7 @@ along with GCC; see the file COPYING3.  If not see
+ #define INCLUDE_STRING
+ #define INCLUDE_VECTOR
+ #define INCLUDE_MAP
++#define INCLUDE_MEMORY
+ #include "system.h"
+ 
+ #include "line-map.h"
+diff --git a/gcc/cp/mapper-resolver.cc b/gcc/cp/mapper-resolver.cc
+index e3d29fb5ada1..e70d1b4ae2ca 100644
+--- a/gcc/cp/mapper-resolver.cc
++++ b/gcc/cp/mapper-resolver.cc
+@@ -25,6 +25,7 @@ along with GCC; see the file COPYING3.  If not see
+ #define INCLUDE_VECTOR
+ #define INCLUDE_ALGORITHM
+ #define INCLUDE_MAP
++#define INCLUDE_MEMORY
+ #include "system.h"
+ 
+ // We don't want or need to be aware of networking
+diff --git a/gcc/cp/module.cc b/gcc/cp/module.cc
+index 753963a4b246..8bb22c2b305a 100644
+--- a/gcc/cp/module.cc
++++ b/gcc/cp/module.cc
+@@ -206,6 +206,7 @@ Classes used:
+ 
+ #define _DEFAULT_SOURCE 1 /* To get TZ field of struct tm, if available.  */
+ #include "config.h"
++#define INCLUDE_MEMORY
+ #define INCLUDE_STRING
+ #define INCLUDE_VECTOR
+ #include "system.h"
+diff --git a/libcc1/libcc1plugin.cc b/libcc1/libcc1plugin.cc
+index 12ab5a57c8dd..bdd0bdabe77f 100644
+--- a/libcc1/libcc1plugin.cc
++++ b/libcc1/libcc1plugin.cc
+@@ -31,6 +31,7 @@
+ #undef PACKAGE_TARNAME
+ #undef PACKAGE_VERSION
+ 
++#define INCLUDE_MEMORY
+ #include "gcc-plugin.h"
+ #include "system.h"
+ #include "coretypes.h"
+diff --git a/libcc1/libcp1plugin.cc b/libcc1/libcp1plugin.cc
+index 83dab7f58b11..e2d5039a0a1f 100644
+--- a/libcc1/libcp1plugin.cc
++++ b/libcc1/libcp1plugin.cc
+@@ -32,6 +32,7 @@
+ #undef PACKAGE_TARNAME
+ #undef PACKAGE_VERSION
+ 
++#define INCLUDE_MEMORY
+ #include "gcc-plugin.h"
+ #include "system.h"
+ #include "coretypes.h"
diff --git a/srcpkgs/gcc/patches/49d508065bdd36fb1a9b6aad9666b1edb5e06474.patch b/srcpkgs/gcc/patches/49d508065bdd36fb1a9b6aad9666b1edb5e06474.patch
new file mode 100644
index 000000000000..89bd053d6d04
--- /dev/null
+++ b/srcpkgs/gcc/patches/49d508065bdd36fb1a9b6aad9666b1edb5e06474.patch
@@ -0,0 +1,115 @@
+From 49d508065bdd36fb1a9b6aad9666b1edb5e06474 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <siarheit@google.com>
+Date: Mon, 27 Jun 2022 23:42:44 +0100
+Subject: [PATCH] jit: avoid calloc() poisoning on musl [PR106102]
+
+On musl <pthread.h> uses calloc() (via <sched.h>). jit/ includes
+it directly and exposes use of poisoned calloc():
+
+    /build/build/./prev-gcc/xg++ ... ../../gcc-13-20220626/gcc/jit/jit-playback.cc
+    make[3]: *** [Makefile:1143: jit/libgccjit.o] Error 1
+    make[3]: *** Waiting for unfinished jobs....
+    In file included from /<<NIX>>/musl-1.2.3-dev/include/pthread.h:30,
+                     from ../../gcc-13-20220626/gcc/jit/jit-playback.cc:44:
+    /<<NIX>>/musl-1.2.3-dev/include/sched.h:84:7: error: attempt to use poisoned "calloc"
+       84 | void *calloc(size_t, size_t);
+          |       ^
+    /<<NIX>>/musl-1.2.3-dev/include/sched.h:124:36: error: attempt to use poisoned "calloc"
+      124 | #define CPU_ALLOC(n) ((cpu_set_t *)calloc(1,CPU_ALLOC_SIZE(n)))
+          |                                    ^
+
+The change moves <pthread.h> inclusion to "system.h" under new
+INCLUDE_PTHREAD_H guard and uses this mechanism in libgccjit.
+
+gcc/
+
+	PR c++/106102
+	* system.h: Introduce INCLUDE_PTHREAD_H macros to include <pthread.h>.
+
+gcc/jit/
+
+	PR c++/106102
+	* jit-playback.cc: Include <pthread.h> via "system.h" to avoid calloc()
+	poisoning.
+	* jit-recording.cc: Ditto.
+	* libgccjit.cc: Ditto.
+---
+ gcc/jit/jit-playback.cc  | 3 +--
+ gcc/jit/jit-recording.cc | 2 +-
+ gcc/jit/libgccjit.cc     | 2 +-
+ gcc/system.h             | 4 ++++
+ 4 files changed, 7 insertions(+), 4 deletions(-)
+
+diff --git a/gcc/jit/jit-playback.cc b/gcc/jit/jit-playback.cc
+index 6be6bdf8dea5..79714132b91a 100644
+--- a/gcc/jit/jit-playback.cc
++++ b/gcc/jit/jit-playback.cc
+@@ -19,6 +19,7 @@ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
++#define INCLUDE_PTHREAD_H
+ #include "system.h"
+ #include "coretypes.h"
+ #include "target.h"
+@@ -41,8 +42,6 @@ along with GCC; see the file COPYING3.  If not see
+ #include "diagnostic.h"
+ #include "stmt.h"
+ 
+-#include <pthread.h>
+-
+ #include "jit-playback.h"
+ #include "jit-result.h"
+ #include "jit-builtins.h"
+diff --git a/gcc/jit/jit-recording.cc b/gcc/jit/jit-recording.cc
+index 697dee66e733..f78daed2d71a 100644
+--- a/gcc/jit/jit-recording.cc
++++ b/gcc/jit/jit-recording.cc
+@@ -19,13 +19,13 @@ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
++#define INCLUDE_PTHREAD_H
+ #include "system.h"
+ #include "coretypes.h"
+ #include "tm.h"
+ #include "pretty-print.h"
+ #include "toplev.h"
+ 
+-#include <pthread.h>
+ 
+ #include "jit-builtins.h"
+ #include "jit-recording.h"
+diff --git a/gcc/jit/libgccjit.cc b/gcc/jit/libgccjit.cc
+index 0e76097b4bac..ca862662777e 100644
+--- a/gcc/jit/libgccjit.cc
++++ b/gcc/jit/libgccjit.cc
+@@ -19,12 +19,12 @@ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
++#define INCLUDE_PTHREAD_H
+ #include "system.h"
+ #include "coretypes.h"
+ #include "timevar.h"
+ #include "typed-splay-tree.h"
+ #include "cppbuiltin.h"
+-#include <pthread.h>
+ 
+ #include "libgccjit.h"
+ #include "jit-recording.h"
+diff --git a/gcc/system.h b/gcc/system.h
+index 67158b70c789..f8d42ff68150 100644
+--- a/gcc/system.h
++++ b/gcc/system.h
+@@ -753,6 +753,10 @@ extern int vsnprintf (char *, size_t, const char *, va_list);
+ #endif
+ #endif
+ 
++#ifdef INCLUDE_PTHREAD_H
++#include <pthread.h>
++#endif
++
+ #ifdef INCLUDE_ISL
+ #ifdef HAVE_isl
+ #include <isl/options.h>
diff --git a/srcpkgs/gcc/patches/f35d65517a59565758107c5b1a51a5fa382f8d1a.patch b/srcpkgs/gcc/patches/f35d65517a59565758107c5b1a51a5fa382f8d1a.patch
new file mode 100644
index 000000000000..044a4fc29514
--- /dev/null
+++ b/srcpkgs/gcc/patches/f35d65517a59565758107c5b1a51a5fa382f8d1a.patch
@@ -0,0 +1,32 @@
+From f35d65517a59565758107c5b1a51a5fa382f8d1a Mon Sep 17 00:00:00 2001
+From: Ian Lance Taylor <iant@golang.org>
+Date: Tue, 12 Jul 2022 19:42:43 -0700
+Subject: [PATCH] libgo: don't include <linux/fs.h> when building
+ gen-sysinfo.go
+
+Removing this doesn't change anything at least with glibc 2.33.
+The include was added in https://go.dev/cl/6100049 but it's not
+clear why.
+
+Fixes PR go/106266
+
+Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/417294
+---
+ gcc/go/gofrontend/MERGE | 2 +-
+ libgo/sysinfo.c         | 3 ---
+ 2 files changed, 1 insertion(+), 4 deletions(-)
+
+diff --git a/libgo/sysinfo.c b/libgo/sysinfo.c
+index a4259c02ded4..fc0210992faa 100644
+--- a/libgo/sysinfo.c
++++ b/libgo/sysinfo.c
+@@ -158,9 +158,6 @@
+ #if defined(HAVE_LINUX_ETHER_H)
+ #include <linux/ether.h>
+ #endif
+-#if defined(HAVE_LINUX_FS_H)
+-#include <linux/fs.h>
+-#endif
+ #if defined(HAVE_LINUX_REBOOT_H)
+ #include <linux/reboot.h>
+ #endif
diff --git a/srcpkgs/gcc/patches/libffi_gnulinux.patch b/srcpkgs/gcc/patches/libffi_gnulinux.patch
deleted file mode 100644
index 98245bd5be1a..000000000000
--- a/srcpkgs/gcc/patches/libffi_gnulinux.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/libffi/src/closures.c
-+++ b/libffi/src/closures.c
-@@ -34,7 +34,7 @@
- #include <ffi_common.h>
-
- #if !FFI_MMAP_EXEC_WRIT && !FFI_EXEC_TRAMPOLINE_TABLE
--# if __gnu_linux__ && !defined(__ANDROID__)
-+# if __linux__ && !defined(__ANDROID__)
- /* This macro indicates it may be forbidden to map anonymous memory
-    with both write and execute permission.  Code compiled when this
-    option is defined will attempt to map such pages once, but if it
diff --git a/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch b/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
index bdf5c75d917d..26d80356ad0d 100644
--- a/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
+++ b/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
@@ -29,10 +29,14 @@ diff --git a/libgcc/config/rs6000/t-linux b/libgcc/config/rs6000/t-linux
 index 4f6d4c4..fa93bb6 100644
 --- a/libgcc/config/rs6000/t-linux
 +++ b/libgcc/config/rs6000/t-linux
-@@ -1,3 +1,3 @@
+@@ -1,6 +1,6 @@
  SHLIB_MAPFILES += $(srcdir)/config/rs6000/libgcc-glibc.ver
  
--HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-minimal-toc
-+HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-gnu-attribute -mno-minimal-toc
+-HOST_LIBGCC2_CFLAGS += -mlong-double-128
++HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-gnu-attribute
+ 
+ # This is a way of selecting -mcmodel=small for ppc64, which gives
+ # smaller and faster libgcc code.  Directly specifying -mcmodel=small
+
 -- 
 2.24.0
diff --git a/srcpkgs/gcc/patches/mips-sgidefs_h.patch b/srcpkgs/gcc/patches/mips-sgidefs_h.patch
index dddfe10e8c06..78a2ce35875d 100644
--- a/srcpkgs/gcc/patches/mips-sgidefs_h.patch
+++ b/srcpkgs/gcc/patches/mips-sgidefs_h.patch
@@ -3,9 +3,10 @@
 @@ -42,7 +42,7 @@
  #define _MIPS_SIM_NABI32	2
  #define _MIPS_SIM_ABI64		3
- #elif !defined(__OpenBSD__)
+ #elif !defined(__OpenBSD__) && !defined(__FreeBSD__)
 -# include <sgidefs.h>
 +# include <asm/sgidefs.h>
  #endif
  
  #  ifndef _ABIN32
+
diff --git a/srcpkgs/gcc/template b/srcpkgs/gcc/template
index 09727ef34fb2..32ee79e32f0d 100644
--- a/srcpkgs/gcc/template
+++ b/srcpkgs/gcc/template
@@ -3,18 +3,15 @@
 # which use the version number.
 
 pkgname=gcc
-# we are using a 10-stable git snapshot alpine is using in order
-# to get regression fixes not yet incorporate into a stable release
-# it should be possible to switch back to stable with 10.3 or 11
-version=10.2.1pre1
-revision=3
+version=12.1.0
+revision=1
 _patchver="${version%pre*}"
 _minorver="${_patchver%.*}"
 _majorver="${_minorver%.*}"
-_gmp_version=6.2.0
+_gmp_version=6.2.1
 _mpfr_version=4.1.0
-_mpc_version=1.1.0
-_isl_version=0.21
+_mpc_version=1.2.1
+_isl_version=0.24
 wrksrc=gcc-${version/pre/_pre}
 short_desc="GNU Compiler Collection"
 maintainer="Enno Boland <gottox@voidlinux.org>"
@@ -22,16 +19,16 @@ homepage="http://gcc.gnu.org"
 license="GFDL-1.2-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
 # *-musl builders have issues fetching https://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz
 distfiles="
- https://dev.alpinelinux.org/~nenolod/gcc-${version/pre/_pre}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${version}/gcc-${version}.tar.xz
  https://gmplib.org/download/gmp/gmp-${_gmp_version}.tar.xz
  ${GNU_SITE}/mpfr/mpfr-${_mpfr_version}.tar.xz
  ${GNU_SITE}/mpc/mpc-${_mpc_version}.tar.gz
  ${SOURCEFORGE_SITE}/libisl/isl-${_isl_version}.tar.bz2"
-checksum="772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 258e6cd51b3fbdfc185c716d55f82c08aff57df0c6fbd143cf6ed561267a1526
+checksum="62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
+ fd4829912cddd12f84181c3451cc752be224643e87fac497b69edddadc49b4f2
  0c98a3f1732ff6ca4ea690552079da9c597872d30e96ec28414ee23c95558a7f
- 6985c538143c1208dcb1ac42cedad6ff52e267b47e5f970183a3e75125b43c2e
- d18ca11f8ad1a39ab6d03d3dcb3365ab416720fcb65b42d69f34f51bf0a0e859"
+ 17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459
+ fcf78dd9656c10eb8cf9fbd5f59a0b6b01386205fe1934b3b287a0a1898145c0"
 
 nopie=yes
 lib32disabled=yes
@@ -396,7 +393,7 @@ gcc-ada_package() {
 	depends="gcc>=${_minorver} libada-devel>=${_minorver}"
 	short_desc+=" - Ada compiler frontend"
 	pkg_install() {
-		for f in gnat{,bind,chop,clean,find,kr,link,ls,make,name,prep,xref}; do
+		for f in gnat{,bind,chop,clean,kr,link,ls,make,name,prep}; do
 			vmove usr/bin/${f}
 		done
 	}

From 00980754f4f23e46126a980f4b7e96e7406b01d4 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 06:27:47 -0700
Subject: [PATCH 03/31] libtool: update to 2.4.7.

---
 .../patches/0002-rename-with-sysroot.patch    | 34 +++++++++----------
 srcpkgs/libtool/template                      |  6 ++--
 2 files changed, 20 insertions(+), 20 deletions(-)

diff --git a/srcpkgs/libtool/patches/0002-rename-with-sysroot.patch b/srcpkgs/libtool/patches/0002-rename-with-sysroot.patch
index 960873c04e24..152aace96c41 100644
--- a/srcpkgs/libtool/patches/0002-rename-with-sysroot.patch
+++ b/srcpkgs/libtool/patches/0002-rename-with-sysroot.patch
@@ -13,16 +13,16 @@ Jürgen Buchmüller <pullmoll@t-online.de>
 
 --- a/configure	2015-02-15 17:14:34.000000000 +0100
 +++ b/configure	2015-10-20 13:25:12.684906339 +0200
-@@ -824,7 +824,7 @@
+@@ -832,7 +832,7 @@
  enable_fast_install
  with_aix_soname
  with_gnu_ld
 -with_sysroot
 +with_libtool_sysroot
  enable_libtool_lock
+ enable_cross_guesses
  '
-       ac_precious_vars='build_alias
-@@ -1487,7 +1487,8 @@
+@@ -1509,7 +1509,8 @@
                            shared library versioning (aka "SONAME") variant to
                            provide on AIX, [default=aix].
    --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
@@ -32,7 +32,7 @@ Jürgen Buchmüller <pullmoll@t-online.de>
                            compiler's sysroot if not specified).
  
  Some influential environment variables:
-@@ -7389,29 +7390,29 @@
+@@ -7610,29 +7611,29 @@
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
  $as_echo_n "checking for sysroot... " >&6; }
  
@@ -57,8 +57,8 @@ Jürgen Buchmüller <pullmoll@t-online.de>
     fi
     ;; #(
   /*)
--   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
-+   lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"`
+-   lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"`
++   lt_sysroot=`echo "$with_libtool_sysroot" | $SED -e "$sed_quote_subst"`
     ;; #(
   no|'')
     ;; #(
@@ -72,7 +72,7 @@ Jürgen Buchmüller <pullmoll@t-online.de>
  esac
 --- a/libltdl/configure	2015-02-15 17:15:15.000000000 +0100
 +++ b/libltdl/configure	2015-10-20 13:26:45.747914683 +0200
-@@ -775,7 +775,7 @@
+@@ -777,7 +777,7 @@
  with_aix_soname
  enable_dependency_tracking
  with_gnu_ld
@@ -81,7 +81,7 @@ Jürgen Buchmüller <pullmoll@t-online.de>
  enable_libtool_lock
  enable_ltdl_install
  '
-@@ -1429,7 +1429,8 @@
+@@ -1442,7 +1442,8 @@
                            shared library versioning (aka "SONAME") variant to
                            provide on AIX, [default=aix].
    --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
@@ -91,7 +91,7 @@ Jürgen Buchmüller <pullmoll@t-online.de>
                            compiler's sysroot if not specified).
  
  Some influential environment variables:
-@@ -6275,29 +6276,29 @@
+@@ -6397,29 +6398,29 @@
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
  $as_echo_n "checking for sysroot... " >&6; }
  
@@ -116,8 +116,8 @@ Jürgen Buchmüller <pullmoll@t-online.de>
     fi
     ;; #(
   /*)
--   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
-+   lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"`
+-   lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"`
++   lt_sysroot=`echo "$with_libtool_sysroot" | $SED -e "$sed_quote_subst"`
     ;; #(
   no|'')
     ;; #(
@@ -243,14 +243,14 @@ Jürgen Buchmüller <pullmoll@t-online.de>
  ]])
 --- a/m4/libtool.m4	2015-01-20 17:15:19.000000000 +0100
 +++ b/m4/libtool.m4	2015-10-20 15:40:04.020631813 +0200
-@@ -1245,29 +1245,29 @@
- # _LT_WITH_SYSROOT
+@@ -1243,29 +1243,29 @@
  # ----------------
  AC_DEFUN([_LT_WITH_SYSROOT],
--[AC_MSG_CHECKING([for sysroot])
+ [m4_require([_LT_DECL_SED])dnl
+-AC_MSG_CHECKING([for sysroot])
 -AC_ARG_WITH([sysroot],
 -[AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@],
-+[AC_MSG_CHECKING([for libtool-sysroot])
++AC_MSG_CHECKING([for libtool-sysroot])
 +AC_ARG_WITH([libtool-sysroot],
 +[AS_HELP_STRING([--with-libtool-sysroot@<:@=DIR@:>@],
    [Search for dependent libraries within DIR (or the compiler's sysroot
@@ -269,8 +269,8 @@ Jürgen Buchmüller <pullmoll@t-online.de>
     fi
     ;; #(
   /*)
--   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
-+   lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"`
+-   lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"`
++   lt_sysroot=`echo "$with_libtool_sysroot" | $SED -e "$sed_quote_subst"`
     ;; #(
   no|'')
     ;; #(
diff --git a/srcpkgs/libtool/template b/srcpkgs/libtool/template
index b9972df70341..08e35d466a44 100644
--- a/srcpkgs/libtool/template
+++ b/srcpkgs/libtool/template
@@ -1,7 +1,7 @@
 # Template file for 'libtool'
 pkgname=libtool
-version=2.4.6
-revision=6
+version=2.4.7
+revision=1
 build_style=gnu-configure
 hostmakedepends="texinfo perl automake help2man xz"
 depends="tar sed"
@@ -10,7 +10,7 @@ maintainer="Enno Boland <gottox@voidlinux.org>"
 license="GPL-2.0-or-later"
 homepage="http://www.gnu.org/software/libtool"
 distfiles="${GNU_SITE}/libtool/$pkgname-$version.tar.xz"
-checksum=7c87a8c2c8c0fc9cd5019e402bed4292462d00a718a7cd5f11218153bf28b26f
+checksum=4f7f217f057ce655ff22559ad221a0fd8ef84ad1fc5fcb6990cecc333aa1635d
 
 pre_configure() {
 	touch aclocal.m4 libltdl/aclocal.m4 Makefile.am libltdl/Makefile.am Makefile.in libltdl/Makefile.in

From be75af2647f4e539b2e90c9e6025980a8da09418 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 17:20:16 -0700
Subject: [PATCH 04/31] libiberty-devel: update to 20220713.

---
 srcpkgs/libiberty-devel/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/libiberty-devel/template b/srcpkgs/libiberty-devel/template
index 1a4e1ca3d594..b04268908c2e 100644
--- a/srcpkgs/libiberty-devel/template
+++ b/srcpkgs/libiberty-devel/template
@@ -1,6 +1,6 @@
 # Template file for 'libiberty-devel'
 pkgname=libiberty-devel
-version=20210106
+version=20220713
 revision=1
 wrksrc=libiberty-${version}
 build_wrksrc=libiberty
@@ -11,7 +11,7 @@ maintainer="q66 <daniel@octaforge.org>"
 license="GPL-3.0-or-later"
 homepage="http://gcc.gnu.org/"
 distfiles="http://deb.debian.org/debian/pool/main/libi/libiberty/libiberty_${version}.orig.tar.xz"
-checksum=9df153d69914c0f5a9145e0abbb248e72feebab6777c712a30f1c3b8c19047d4
+checksum=b59050f48c8a0f9c9e6fba5d17c7a4f11d1329de0c0dca7331b767a6d2bbe8d9
 conflicts="binutils-devel<=2.35.1_3"
 
 CFLAGS="-fPIC"

From c2c766aabce1472cea4d979dc86d631ec9aa52b9 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 23:31:45 -0700
Subject: [PATCH 05/31] glibc: update to 2.36.

---
 common/shlibs                                 |  60 ++--
 .../glibc/patches/glibc-c-utf8-locale.patch   | 286 ------------------
 srcpkgs/glibc/template                        |  62 ++--
 3 files changed, 55 insertions(+), 353 deletions(-)
 delete mode 100644 srcpkgs/glibc/patches/glibc-c-utf8-locale.patch

diff --git a/common/shlibs b/common/shlibs
index c6400b566966..65f4d1b62b61 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -17,38 +17,38 @@
 # one (order top->bottom) is preferred over the next ones.
 #
 libc.so musl-1.1.24_7
-libc.so.6 glibc-2.32_1
-libm.so.6 glibc-2.32_1
-libpthread.so.0 glibc-2.32_1
-librt.so.1 glibc-2.32_1
-libdl.so.2 glibc-2.32_1
-ld-linux-x86-64.so.2 glibc-2.32_1 x86_64
-ld-linux.so.2 glibc-2.32_1 i686
-ld-linux.so.3 glibc-2.32_1 armv5tel
-ld-linux-aarch64.so.1 glibc-2.32_1 aarch64
-ld64.so.2 glibc-2.32_1 ppc64
-ld.so.1 glibc-2.32_1 mips
-ld.so.1 glibc-2.32_1 ppc
-ld-linux-armhf.so.3 glibc-2.32_1
-libresolv.so.2 glibc-2.32_1
-libanl.so.1 glibc-2.32_1
-libthread_db.so.1 glibc-2.32_1
-libutil.so.1 glibc-2.32_1
-libnsl.so.1 glibc-2.32_1
-libnss_db.so.2 glibc-2.32_1
-libnss_files.so.2 glibc-2.32_1
-libnss_compat.so.2 glibc-2.32_1
-libnss_dns.so.2 glibc-2.32_1
-libnss_hesiod.so.2 glibc-2.32_1
-libcrypt.so.1 glibc-2.32_1
-libBrokenLocale.so.1 glibc-2.32_1
+libc.so.6 glibc-2.36_1
+libm.so.6 glibc-2.36_1
+libpthread.so.0 glibc-2.36_1
+librt.so.1 glibc-2.36_1
+libdl.so.2 glibc-2.36_1
+ld-linux-x86-64.so.2 glibc-2.36_1 x86_64
+ld-linux.so.2 glibc-2.36_1 i686
+ld-linux.so.3 glibc-2.36_1 armv5tel
+ld-linux-aarch64.so.1 glibc-2.36_1 aarch64
+ld64.so.2 glibc-2.36_1 ppc64
+ld.so.1 glibc-2.36_1 mips
+ld.so.1 glibc-2.36_1 ppc
+ld-linux-armhf.so.3 glibc-2.36_1
+libresolv.so.2 glibc-2.36_1
+libanl.so.1 glibc-2.36_1
+libthread_db.so.1 glibc-2.36_1
+libutil.so.1 glibc-2.36_1
+libnsl.so.1 glibc-2.36_1
+libnss_db.so.2 glibc-2.36_1
+libnss_files.so.2 glibc-2.36_1
+libnss_compat.so.2 glibc-2.36_1
+libnss_dns.so.2 glibc-2.36_1
+libnss_hesiod.so.2 glibc-2.36_1
+libcrypt.so.1 glibc-2.36_1
+libBrokenLocale.so.1 glibc-2.36_1
 libSimGearCore.so.2020.3.13 simgear-2020.3.13_1
 libSimGearScene.so.2020.3.13 simgear-2020.3.13_1
-libmemusage.so glibc-2.32_1
-libSegFault.so glibc-2.32_1
-libpcprofile.so glibc-2.32_1
-libcidn.so.1 glibc-2.32_1
-libmvec.so.1 glibc-2.32_1
+libmemusage.so glibc-2.36_1
+libSegFault.so glibc-2.36_1
+libpcprofile.so glibc-2.36_1
+libcidn.so.1 glibc-2.36_1
+libmvec.so.1 glibc-2.36_1
 libcddgmp.so.0 cddlib-0.94m_1
 libcdd.so.0 cddlib-0.94m_1
 libz.so.1 zlib-1.2.3_1
diff --git a/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch b/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch
deleted file mode 100644
index 7215e1558b62..000000000000
--- a/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch
+++ /dev/null
@@ -1,286 +0,0 @@
-Short description: Add C.UTF-8 support.
-Author(s): Fedora glibc team <glibc@lists.fedoraproject.org>
-Origin: PATCH
-Upstream status: not-submitted
-
-This patch needs to upstream as part of Carlos O'Donell
-<carlos@redhat.com>'s work on enabling upstream C.UTF-8 support. This
-work is currently blocked on cleaning up the test results to prove that
-full code-point sorting is working as intended.
-
-Note that this patch does not provide full code-point sorting as
-expected.
-
-This patch needs to upstream as soon as possible since it would be nice
-to have this in F29 and fixed.
-
-From 2eda7b462b415105f5a05c1323372d4e39d46439 Mon Sep 17 00:00:00 2001
-From: Mike FABIAN <mfabian@redhat.com>
-Date: Mon, 10 Aug 2015 15:58:12 +0200
-Subject: [PATCH] Add a C.UTF-8 locale
-
----
- localedata/SUPPORTED |   1 +
- localedata/locales/C | 238 +++++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 239 insertions(+)
- create mode 100644 localedata/locales/C
-
-diff --git a/localedata/SUPPORTED b/localedata/SUPPORTED
-index 8ca023e..2a78391 100644
---- a/localedata/SUPPORTED
-+++ b/localedata/SUPPORTED
-@@ -1,6 +1,7 @@
- # This file names the currently supported and somewhat tested locales.
- # If you have any additions please file a glibc bug report.
- SUPPORTED-LOCALES=\
-+C.UTF-8/UTF-8 \
- aa_DJ.UTF-8/UTF-8 \
- aa_DJ/ISO-8859-1 \
- aa_ER/UTF-8 \
-diff --git a/localedata/locales/C b/localedata/locales/C
-new file mode 100644
-index 0000000..fdf460e
---- /dev/null
-+++ b/localedata/locales/C
-@@ -0,0 +1,238 @@
-+escape_char /
-+comment_char %
-+% Locale for C locale in UTF-8
-+
-+LC_IDENTIFICATION
-+title      "C locale"
-+source     ""
-+address    ""
-+contact    ""
-+email      "mfabian@redhat.com"
-+tel        ""
-+fax        ""
-+language   "C"
-+territory  ""
-+revision   "1.0"
-+date       "2015-08-10"
-+%
-+category  "i18n:2012";LC_IDENTIFICATION
-+category  "i18n:2012";LC_CTYPE
-+category  "i18n:2012";LC_COLLATE
-+category  "i18n:2012";LC_TIME
-+category  "i18n:2012";LC_NUMERIC
-+category  "i18n:2012";LC_MONETARY
-+category  "i18n:2012";LC_MESSAGES
-+category  "i18n:2012";LC_PAPER
-+category  "i18n:2012";LC_NAME
-+category  "i18n:2012";LC_ADDRESS
-+category  "i18n:2012";LC_TELEPHONE
-+category  "i18n:2012";LC_MEASUREMENT
-+END LC_IDENTIFICATION
-+
-+LC_CTYPE
-+copy "i18n"
-+
-+translit_start
-+include "translit_combining";""
-+translit_end
-+
-+END LC_CTYPE
-+
-+LC_COLLATE
-+order_start forward
-+<U0000>
-+..
-+<UFFFF>
-+<U10000>
-+..
-+<U1FFFF>
-+<U20000>
-+..
-+<U2FFFF>
-+<UE0000>
-+..
-+<UEFFFF>
-+<UF0000>
-+..
-+<UFFFFF>
-+<U100000>
-+..
-+<U10FFFF>
-+UNDEFINED
-+order_end
-+END LC_COLLATE
-+
-+LC_MONETARY
-+% This is the 14652 i18n fdcc-set definition for
-+% the LC_MONETARY category
-+% (except for the int_curr_symbol and currency_symbol, they are empty in
-+% the 14652 i18n fdcc-set definition and also empty in
-+% glibc/locale/C-monetary.c. But localedef complains in that case).
-+%
-+% Using "USD" for int_curr_symbol. But maybe "XXX" would be better?
-+% XXX is "No currency" (https://en.wikipedia.org/wiki/ISO_4217)
-+int_curr_symbol     "<U0055><U0053><U0044><U0020>"
-+% Using "$" for currency_symbol. But maybe <U00A4> would be better?
-+% U+00A4 is the "generic currency symbol"
-+% (https://en.wikipedia.org/wiki/Currency_sign_%28typography%29)
-+currency_symbol     "<U0024>"
-+mon_decimal_point   "<U002E>"
-+mon_thousands_sep   ""
-+mon_grouping        -1
-+positive_sign       ""
-+negative_sign       "<U002D>"
-+int_frac_digits     -1
-+frac_digits         -1
-+p_cs_precedes       -1
-+int_p_sep_by_space  -1
-+p_sep_by_space      -1
-+n_cs_precedes       -1
-+int_n_sep_by_space  -1
-+n_sep_by_space      -1
-+p_sign_posn         -1
-+n_sign_posn         -1
-+%
-+END LC_MONETARY
-+
-+LC_NUMERIC
-+% This is the POSIX Locale definition for
-+% the LC_NUMERIC category.
-+%
-+decimal_point   "<U002E>"
-+thousands_sep   ""
-+grouping        -1
-+END LC_NUMERIC
-+
-+LC_TIME
-+% This is the POSIX Locale definition for
-+% the LC_TIME category.
-+%
-+% Abbreviated weekday names (%a)
-+abday       "<U0053><U0075><U006E>";"<U004D><U006F><U006E>";/
-+            "<U0054><U0075><U0065>";"<U0057><U0065><U0064>";/
-+            "<U0054><U0068><U0075>";"<U0046><U0072><U0069>";/
-+            "<U0053><U0061><U0074>"
-+
-+% Full weekday names (%A)
-+day         "<U0053><U0075><U006E><U0064><U0061><U0079>";/
-+            "<U004D><U006F><U006E><U0064><U0061><U0079>";/
-+            "<U0054><U0075><U0065><U0073><U0064><U0061><U0079>";/
-+            "<U0057><U0065><U0064><U006E><U0065><U0073><U0064><U0061><U0079>";/
-+            "<U0054><U0068><U0075><U0072><U0073><U0064><U0061><U0079>";/
-+            "<U0046><U0072><U0069><U0064><U0061><U0079>";/
-+            "<U0053><U0061><U0074><U0075><U0072><U0064><U0061><U0079>"
-+
-+% Abbreviated month names (%b)
-+abmon       "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
-+            "<U004D><U0061><U0072>";"<U0041><U0070><U0072>";/
-+            "<U004D><U0061><U0079>";"<U004A><U0075><U006E>";/
-+            "<U004A><U0075><U006C>";"<U0041><U0075><U0067>";/
-+            "<U0053><U0065><U0070>";"<U004F><U0063><U0074>";/
-+            "<U004E><U006F><U0076>";"<U0044><U0065><U0063>"
-+
-+% Full month names (%B)
-+mon         "<U004A><U0061><U006E><U0075><U0061><U0072><U0079>";/
-+            "<U0046><U0065><U0062><U0072><U0075><U0061><U0072><U0079>";/
-+            "<U004D><U0061><U0072><U0063><U0068>";/
-+            "<U0041><U0070><U0072><U0069><U006C>";/
-+            "<U004D><U0061><U0079>";/
-+            "<U004A><U0075><U006E><U0065>";/
-+            "<U004A><U0075><U006C><U0079>";/
-+            "<U0041><U0075><U0067><U0075><U0073><U0074>";/
-+            "<U0053><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";/
-+            "<U004F><U0063><U0074><U006F><U0062><U0065><U0072>";/
-+            "<U004E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/
-+            "<U0044><U0065><U0063><U0065><U006D><U0062><U0065><U0072>"
-+
-+% Week description, consists of three fields:
-+% 1. Number of days in a week.
-+% 2. Gregorian date that is a first weekday (19971130 for Sunday, 19971201 for Monday).
-+% 3. The weekday number to be contained in the first week of the year.
-+%
-+% ISO 8601 conforming applications should use the values 7, 19971201 (a
-+% Monday), and 4 (Thursday), respectively.
-+week    7;19971201;4
-+first_weekday	1
-+first_workday	1
-+
-+% Appropriate date and time representation (%c)
-+%	"%a %b %e %H:%M:%S %Y"
-+d_t_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0059>"
-+
-+% Appropriate date representation (%x)
-+%	"%m/%d/%y"
-+d_fmt   "<U0025><U006D><U002F><U0025><U0064><U002F><U0025><U0079>"
-+
-+% Appropriate time representation (%X)
-+%	"%H:%M:%S"
-+t_fmt   "<U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053>"
-+
-+% Appropriate AM/PM time representation (%r)
-+%	"%I:%M:%S %p"
-+t_fmt_ampm "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0070>"
-+
-+% Equivalent of AM/PM (%p)      "AM"/"PM"
-+%
-+am_pm	"<U0041><U004D>";"<U0050><U004D>"
-+
-+% Appropriate date representation (date(1))   "%a %b %e %H:%M:%S %Z %Y"
-+date_fmt	"<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U005A><U0020><U0025><U0059>"
-+END LC_TIME
-+
-+LC_MESSAGES
-+% This is the POSIX Locale definition for
-+% the LC_NUMERIC category.
-+%
-+yesexpr "<U005E><U005B><U0079><U0059><U005D>"
-+noexpr  "<U005E><U005B><U006E><U004E><U005D>"
-+yesstr  "<U0059><U0065><U0073>"
-+nostr   "<U004E><U006F>"
-+END LC_MESSAGES
-+
-+LC_PAPER
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_PAPER category.
-+% (A4 paper, this is also used in the built in C/POSIX
-+% locale in glibc/locale/C-paper.c)
-+height   297
-+width    210
-+END LC_PAPER
-+
-+LC_NAME
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_NAME category.
-+% "%p%t%g%t%m%t%f"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-name.c)
-+name_fmt    "<U0025><U0070><U0025><U0074><U0025><U0067><U0025><U0074>/
-+<U0025><U006D><U0025><U0074><U0025><U0066>"
-+END LC_NAME
-+
-+LC_ADDRESS
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_ADDRESS category.
-+% "%a%N%f%N%d%N%b%N%s %h %e %r%N%C-%z %T%N%c%N"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-address.c)
-+postal_fmt    "<U0025><U0061><U0025><U004E><U0025><U0066><U0025><U004E>/
-+<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
-+<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
-+<U004E><U0025><U0043><U002D><U0025><U007A><U0020><U0025><U0054><U0025>/
-+<U004E><U0025><U0063><U0025><U004E>"
-+END LC_ADDRESS
-+
-+LC_TELEPHONE
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_TELEPHONE category.
-+% "+%c %a %l"
-+tel_int_fmt    "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025>/
-+<U006C>"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-telephone.c)
-+END LC_TELEPHONE
-+
-+LC_MEASUREMENT
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_MEASUREMENT category.
-+% (same as in the built in C/POSIX locale in glibc/locale/C-measurement.c)
-+%metric
-+measurement    1
-+END LC_MEASUREMENT
-+
--- 
-2.4.3
-
diff --git a/srcpkgs/glibc/template b/srcpkgs/glibc/template
index c62a4d2aedf1..139aab865864 100644
--- a/srcpkgs/glibc/template
+++ b/srcpkgs/glibc/template
@@ -1,14 +1,14 @@
 # Template file for 'glibc'
 pkgname=glibc
-version=2.32
-revision=2
+version=2.36
+revision=1
 bootstrap=yes
 short_desc="GNU C library"
 maintainer="Enno Boland <gottox@voidlinux.org>"
 license="GPL-2.0-or-later, LGPL-2.1-or-later, BSD-3-Clause"
 homepage="http://www.gnu.org/software/libc"
 distfiles="${GNU_SITE}/glibc/glibc-${version}.tar.xz"
-checksum=1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum=1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
 # Do not strip these files, objcopy errors out.
 nostrip_files="
 	XBS5_ILP32_OFFBIG
@@ -20,27 +20,28 @@ nostrip_files="
 	POSIX_V6_LP64_OFF64
 	POSIX_V7_LP64_OFF64
 	XBS5_LP64_OFF64
-	ld-${version}.so
-	libdl-${version}.so
-	libanl-${version}.so
-	libcidn-${version}.so
-	libresolv-${version}.so
-	libcrypt-${version}.so
-	libpthread-${version}.so
-	libm-${version}.so
-	libutil-${version}.so
-	libthread_db-1.0.so
-	librt-${version}.so
-	libnsl-${version}.so
-	libc-${version}.so
-	libBrokenLocale-${version}.so
-	libnss_compat-${version}.so
-	libnss_db-${version}.so
-	libnss_dns-${version}.so
-	libnss_files-${version}.so
-	libnss_hesiod-${version}.so
-	libnss_nisplus-${version}.so
-	libnss_nis-${version}.so"
+	ld-linux-x86-64.so.2
+	ld-linux.so.2
+	ld-linux.so.3
+	ld-linux-aarch64.so.1
+	ld64.so.2
+	ld.so.1
+	ld-linux-armhf.so.3
+	libresolv.so.2
+	libcrypt.so.1
+	libm.so.6
+	libthread_db.so.1
+	libnsl.so.1
+	libc.so.6
+	libc_malloc_debug.so.0
+	libmemusage.so
+	libmvec.so.1
+	libBrokenLocale.so.1
+	libnss_compat.so.2
+	libnss_db.so.2
+	libnss_dns.so.2
+	libnss_files.so.2
+	libnss_hesiod.so.2"
 
 conf_files="
 	/etc/rpc
@@ -54,7 +55,6 @@ lib32files="/usr/lib/gconv/gconv-modules"
 lib32symlinks="ld-linux.so.2"
 # There's no point in building this for musl.
 archs="~*-musl"
-nopie=yes
 
 do_configure() {
 	mkdir build
@@ -163,18 +163,6 @@ do_install() {
 	rm -f ${DESTDIR}/usr/bin/z{dump,ic}
 
 	mv ${DESTDIR}/usr/sbin/* ${DESTDIR}/usr/bin
-
-	# Create xbps.d(5) arch override file for 32-bit architectures
-	# 32-bit userlands may be used with 64-bit kernels and then
-	# xbps will report an incorrect architecture by default
-	case "$XBPS_TARGET_MACHINE" in
-		i686|ppc|ppcle|armv*)
-			vmkdir usr/share/xbps.d
-			echo "architecture=${XBPS_TARGET_MACHINE}" > \
-				${DESTDIR}/usr/share/xbps.d/arch-32bit.conf
-			;;
-		*) ;;
-	esac
 }
 
 glibc-devel_package() {

From f8e0bd641b5216cecadb58d19e23c96f1b3745aa Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Sun, 14 Aug 2022 19:29:36 -0700
Subject: [PATCH 06/31] build-style/void-cross: Update flags for gcc12 and
 glibc 2.36

gcov can't be built without libc:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100289

glibc 2.35 ane newer uses -static-pie by default:
https://sourceware.org/pipermail/glibc-cvs/2021q4/075916.html
---
 common/build-style/void-cross.sh | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/common/build-style/void-cross.sh b/common/build-style/void-cross.sh
index 92f03f8130f5..24d02865b164 100644
--- a/common/build-style/void-cross.sh
+++ b/common/build-style/void-cross.sh
@@ -132,6 +132,7 @@ _void_cross_build_bootstrap_gcc() {
 		--disable-libssp \
 		--disable-libitm \
 		--disable-libatomic \
+		--disable-gcov \
 		--disable-threads \
 		--disable-sjlj-exceptions \
 		--enable-languages=c \
@@ -246,6 +247,15 @@ _void_cross_build_glibc() {
 	local tgt=$1
 	local ver=$2
 
+	# glibc 2.35 and newer uses -static-pie by default
+	# which does not work with -no-pie.
+	local oldcflags="${CFLAGS}"
+	local oldcxxflags="${CXXFLAGS}"
+	local oldldflags="${LDFLAGS}"
+	CFLAGS="${CFLAGS//"-fno-PIE"/}"
+	CXXFLAGS="${CXXFLAGS//"-fno-PIE"/}"
+	LDFLAGS="${LDFLAGS//"-no-pie"/}"
+
 	msg_normal "Building glibc for ${tgt}\n"
 
 	mkdir -p ${wrksrc}/glibc_build
@@ -279,6 +289,9 @@ _void_cross_build_glibc() {
 	make ${makejobs}
 	make install_root=${wrksrc}/build_root/usr/${tgt} install
 
+	CFLAGS="${oldcflags}"
+	CXXFLAGS="${oldcxxflags}"
+	LDFLAGS="${oldldflags}"
 	touch ${wrksrc}/.glibc_build_done
 }
 

From e988fa9835b5cd7d348c55edab39650dafc5aa7a Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 20:08:52 -0700
Subject: [PATCH 07/31] openssh: suppress werror on gcc12

---
 srcpkgs/openssh/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/openssh/template b/srcpkgs/openssh/template
index 02a2dec35f42..6e8e343a9dca 100644
--- a/srcpkgs/openssh/template
+++ b/srcpkgs/openssh/template
@@ -40,7 +40,7 @@ if [ "$build_option_ldns" -a -z "$build_option_ssl" ]; then
 	broken="option 'ldns' requires option 'ssl'"
 fi
 
-CFLAGS="-Wno-format-truncation -Wno-stringop-truncation"
+CFLAGS="-Wno-format-truncation -Wno-stringop-truncation -Wno-error=maybe-uninitialized"
 
 case $XBPS_TARGET_MACHINE in
 	i686-musl)

From 407b3fd8dba1c57cf3ed045c7e4442e82527691d Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 20:09:31 -0700
Subject: [PATCH 08/31] linux5.18: update dotconfigs for gcc12

---
 srcpkgs/linux5.18/files/x86_64-dotconfig | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/srcpkgs/linux5.18/files/x86_64-dotconfig b/srcpkgs/linux5.18/files/x86_64-dotconfig
index 4e73a3195d40..ea6204868e23 100644
--- a/srcpkgs/linux5.18/files/x86_64-dotconfig
+++ b/srcpkgs/linux5.18/files/x86_64-dotconfig
@@ -512,6 +512,7 @@ CONFIG_RETHUNK=y
 CONFIG_CPU_UNRET_ENTRY=y
 CONFIG_CPU_IBPB_ENTRY=y
 CONFIG_CPU_IBRS_ENTRY=y
+CONFIG_SLS=y
 CONFIG_ARCH_HAS_ADD_PAGES=y
 CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y
 
@@ -10060,8 +10061,11 @@ CONFIG_LSM="yama,loadpin,safesetid,integrity"
 # Memory initialization
 #
 CONFIG_INIT_STACK_NONE=y
+# CONFIG_INIT_STACK_ALL_PATTERN is not set
+# CONFIG_INIT_STACK_ALL_ZERO is not set
 CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
 # CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
+# CONFIG_ZERO_CALL_USED_REGS is not set
 # end of Memory initialization
 # end of Kernel hardening options
 # end of Security options
@@ -10538,6 +10542,7 @@ CONFIG_HAVE_ARCH_KGDB=y
 CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
 # CONFIG_UBSAN is not set
 CONFIG_HAVE_ARCH_KCSAN=y
+# CONFIG_KCSAN is not set
 # end of Generic Kernel Debugging Instruments
 
 #

From aae067274e632d0ae18cd8cf46f47e24d11d1554 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:54 -0700
Subject: [PATCH 09/31] cross-aarch64-linux-gnu: update to gcc 12.1.0.

---
 srcpkgs/cross-aarch64-linux-gnu/template | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/srcpkgs/cross-aarch64-linux-gnu/template b/srcpkgs/cross-aarch64-linux-gnu/template
index 18de21aa3ccd..cb7ae97e7efe 100644
--- a/srcpkgs/cross-aarch64-linux-gnu/template
+++ b/srcpkgs/cross-aarch64-linux-gnu/template
@@ -1,10 +1,10 @@
 # Template file for 'cross-aarch64-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.1.0
+_glibc_version=2.36
 _linux_version=5.10.4
 pkgname=cross-aarch64-linux-gnu
-version=0.34
+version=0.35
 revision=1
 build_style=void-cross
 configure_args="--with-arch=armv8-a"
@@ -17,12 +17,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
 homepage="https://www.voidlinux.org/"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
  ${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
 nocross=yes
 

From 80ca04e163990ed72378b1dd8995bb8c142ee8b9 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:54 -0700
Subject: [PATCH 10/31] cross-aarch64-linux-musl: update to gcc 12.1.0.

---
 srcpkgs/cross-aarch64-linux-musl/template | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/srcpkgs/cross-aarch64-linux-musl/template b/srcpkgs/cross-aarch64-linux-musl/template
index bb6a770afb79..4fa950f334d4 100644
--- a/srcpkgs/cross-aarch64-linux-musl/template
+++ b/srcpkgs/cross-aarch64-linux-musl/template
@@ -1,12 +1,12 @@
 # Template file for 'cross-aarch64-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.1.0
 _musl_version=1.1.24
 _linux_version=5.10.4
 _libucontext_version=1.0
 pkgname=cross-aarch64-linux-musl
-version=0.34
-revision=4
+version=0.35
+revision=1
 build_style=void-cross
 configure_args="--with-arch=armv8-a"
 hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
@@ -18,12 +18,12 @@ homepage="https://www.voidlinux.org/"
 license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
  https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
  https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
  1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
  23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"

From 705d5d10eaf9b3f8c55690169edab6b9d26211af Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:54 -0700
Subject: [PATCH 11/31] cross-arm-linux-gnueabi: update to gcc 12.1.0.

---
 srcpkgs/cross-arm-linux-gnueabi/template | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/srcpkgs/cross-arm-linux-gnueabi/template b/srcpkgs/cross-arm-linux-gnueabi/template
index a3aba72aa93a..194c0ab774b7 100644
--- a/srcpkgs/cross-arm-linux-gnueabi/template
+++ b/srcpkgs/cross-arm-linux-gnueabi/template
@@ -1,10 +1,10 @@
 # Template file for 'cross-arm-linux-gnueabi'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.1.0
+_glibc_version=2.36
 _linux_version=5.10.4
 pkgname=cross-arm-linux-gnueabi
-version=0.34
+version=0.35
 revision=1
 build_style=void-cross
 configure_args="--with-arch=armv5te --with-float=soft"
@@ -17,12 +17,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
 homepage="https://www.voidlinux.org/"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
  ${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
 nocross=yes
 

From f11f02cceb2db3c3d1b3c37271f397aa2dfb6993 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:55 -0700
Subject: [PATCH 12/31] cross-arm-linux-gnueabihf: update to gcc 12.1.0.

---
 srcpkgs/cross-arm-linux-gnueabihf/template | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/srcpkgs/cross-arm-linux-gnueabihf/template b/srcpkgs/cross-arm-linux-gnueabihf/template
index d9ab86cf2ecc..3f3242b85b07 100644
--- a/srcpkgs/cross-arm-linux-gnueabihf/template
+++ b/srcpkgs/cross-arm-linux-gnueabihf/template
@@ -1,10 +1,10 @@
 # Template file for 'cross-arm-linux-gnueabihf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.1.0
+_glibc_version=2.36
 _linux_version=5.10.4
 pkgname=cross-arm-linux-gnueabihf
-version=0.34
+version=0.35
 revision=1
 build_style=void-cross
 configure_args="--with-arch=armv6 --with-fpu=vfp --with-float=hard"
@@ -17,12 +17,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
 homepage="https://www.voidlinux.org/"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
  ${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
 nocross=yes
 

From 9ed38a7006eb817c196096d398eb04e6fcb4567b Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:55 -0700
Subject: [PATCH 13/31] cross-arm-linux-musleabi: update to gcc 12.1.0.

---
 srcpkgs/cross-arm-linux-musleabi/template | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/srcpkgs/cross-arm-linux-musleabi/template b/srcpkgs/cross-arm-linux-musleabi/template
index 6692d891e1bd..b0cdade60a6d 100644
--- a/srcpkgs/cross-arm-linux-musleabi/template
+++ b/srcpkgs/cross-arm-linux-musleabi/template
@@ -1,12 +1,12 @@
 # Template file for 'cross-arm-linux-musleabi'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.1.0
 _musl_version=1.1.24
 _linux_version=5.10.4
 _libucontext_version=1.0
 pkgname=cross-arm-linux-musleabi
-version=0.34
-revision=4
+version=0.35
+revision=1
 build_style=void-cross
 configure_args="--with-arch=armv5te --with-float=soft"
 hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
@@ -18,12 +18,12 @@ homepage="https://www.voidlinux.org/"
 license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
  https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
  https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
  1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
  23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"

From e4e6df8cedcd9df54c58d334d9bddf255acae7f1 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:55 -0700
Subject: [PATCH 14/31] cross-arm-linux-musleabihf: update to gcc 12.1.0.

---
 srcpkgs/cross-arm-linux-musleabihf/template | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/srcpkgs/cross-arm-linux-musleabihf/template b/srcpkgs/cross-arm-linux-musleabihf/template
index bb62bd5ebc55..1924be24d483 100644
--- a/srcpkgs/cross-arm-linux-musleabihf/template
+++ b/srcpkgs/cross-arm-linux-musleabihf/template
@@ -1,12 +1,12 @@
 # Template file for 'cross-arm-linux-musleabihf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.1.0
 _musl_version=1.1.24
 _linux_version=5.10.4
 _libucontext_version=1.0
 pkgname=cross-arm-linux-musleabihf
-version=0.34
-revision=4
+version=0.35
+revision=1
 build_style=void-cross
 configure_args="--with-arch=armv6 --with-fpu=vfp --with-float=hard"
 hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
@@ -18,12 +18,12 @@ homepage="https://www.voidlinux.org/"
 license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
  https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
  https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
  1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
  23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"

From 7afca911df0f1c59c488389623f233a864aa703b Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:55 -0700
Subject: [PATCH 15/31] cross-armv7l-linux-gnueabihf: update to gcc 12.1.0.

---
 srcpkgs/cross-armv7l-linux-gnueabihf/template | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/srcpkgs/cross-armv7l-linux-gnueabihf/template b/srcpkgs/cross-armv7l-linux-gnueabihf/template
index 30c89b6294ef..a7997d6db937 100644
--- a/srcpkgs/cross-armv7l-linux-gnueabihf/template
+++ b/srcpkgs/cross-armv7l-linux-gnueabihf/template
@@ -1,10 +1,10 @@
 # Template file for 'cross-armv7l-linux-gnueabihf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.1.0
+_glibc_version=2.36
 _linux_version=5.10.4
 pkgname=cross-armv7l-linux-gnueabihf
-version=0.34
+version=0.35
 revision=1
 build_style=void-cross
 configure_args="--with-arch=armv7-a --with-fpu=vfpv3 --with-float=hard"
@@ -17,12 +17,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
 homepage="https://www.voidlinux.org/"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
  ${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
 nocross=yes
 

From f4276b1cf752a503c98d0bfed9c0b0234cf13d07 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:55 -0700
Subject: [PATCH 16/31] cross-armv7l-linux-musleabihf: update to gcc 12.1.0.

---
 srcpkgs/cross-armv7l-linux-musleabihf/template | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/srcpkgs/cross-armv7l-linux-musleabihf/template b/srcpkgs/cross-armv7l-linux-musleabihf/template
index 0a588cdf1a58..aaa7040fbfef 100644
--- a/srcpkgs/cross-armv7l-linux-musleabihf/template
+++ b/srcpkgs/cross-armv7l-linux-musleabihf/template
@@ -1,12 +1,12 @@
 # Template file for 'cross-armv7l-linux-musleabihf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.1.0
 _musl_version=1.1.24
 _linux_version=5.10.4
 _libucontext_version=1.0
 pkgname=cross-armv7l-linux-musleabihf
-version=0.34
-revision=4
+version=0.35
+revision=1
 build_style=void-cross
 configure_args="--with-arch=armv7-a --with-fpu=vfpv3 --with-float=hard"
 hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
@@ -18,12 +18,12 @@ homepage="https://www.voidlinux.org/"
 license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
  https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
  https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
  1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
  23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"

From 4c7e5ae9fe15df6e027fdf16c6de2b96890bfc62 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:55 -0700
Subject: [PATCH 17/31] cross-i686-pc-linux-gnu: update to gcc 12.1.0.

---
 srcpkgs/cross-i686-pc-linux-gnu/template | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/srcpkgs/cross-i686-pc-linux-gnu/template b/srcpkgs/cross-i686-pc-linux-gnu/template
index 263a43f7a7b8..765cf675e95c 100644
--- a/srcpkgs/cross-i686-pc-linux-gnu/template
+++ b/srcpkgs/cross-i686-pc-linux-gnu/template
@@ -1,10 +1,10 @@
 # Template file for 'cross-i686-pc-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.1.0
+_glibc_version=2.36
 _linux_version=5.10.4
 pkgname=cross-i686-pc-linux-gnu
-version=0.34
+version=0.35
 revision=1
 build_style=void-cross
 hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
@@ -16,12 +16,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
 homepage="https://www.voidlinux.org/"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
  ${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
 nocross=yes
 

From a1dc60cb5bd22ea51c2a6823fc3df4f1c664f673 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:55 -0700
Subject: [PATCH 18/31] cross-mips-linux-musl: update to gcc 12.1.0.

---
 srcpkgs/cross-mips-linux-musl/template | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/srcpkgs/cross-mips-linux-musl/template b/srcpkgs/cross-mips-linux-musl/template
index 9b5d5819b1a0..b6cf50add587 100644
--- a/srcpkgs/cross-mips-linux-musl/template
+++ b/srcpkgs/cross-mips-linux-musl/template
@@ -1,10 +1,10 @@
 # Template file for 'cross-mips-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.1.0
 _musl_version=1.1.24
 _linux_version=5.10.4
 pkgname=cross-mips-linux-musl
-version=0.34
+version=0.35
 revision=3
 build_style=void-cross
 configure_args="--with-arch=mips32r2 --with-float=soft
@@ -18,11 +18,11 @@ homepage="https://www.voidlinux.org/"
 license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
- https://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
+ https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
  1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
 nocross=yes

From 0fe96b4d1d00d74257ee0006aef89753479db703 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:55 -0700
Subject: [PATCH 19/31] cross-mips-linux-muslhf: update to gcc 12.1.0.

---
 srcpkgs/cross-mips-linux-muslhf/template | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/srcpkgs/cross-mips-linux-muslhf/template b/srcpkgs/cross-mips-linux-muslhf/template
index d7590af9ec03..fe74faf15d55 100644
--- a/srcpkgs/cross-mips-linux-muslhf/template
+++ b/srcpkgs/cross-mips-linux-muslhf/template
@@ -1,11 +1,11 @@
 # Template file for 'cross-mips-linux-muslhf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.1.0
 _musl_version=1.1.24
 _linux_version=5.10.4
 pkgname=cross-mips-linux-muslhf
-version=0.34
-revision=3
+version=0.35
+revision=1
 build_style=void-cross
 configure_args="--with-arch=mips32r2 --with-float=hard
  --with-linker-hash-style=sysv"
@@ -18,11 +18,11 @@ homepage="https://www.voidlinux.org/"
 license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
- https://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
+ https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
  1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
 nocross=yes

From 7da29dd104a3109097f766c587410ef88a9498d0 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:55 -0700
Subject: [PATCH 20/31] cross-mipsel-linux-musl: update to gcc 12.1.0.

---
 srcpkgs/cross-mipsel-linux-musl/template | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/srcpkgs/cross-mipsel-linux-musl/template b/srcpkgs/cross-mipsel-linux-musl/template
index 1acba7016dbc..aa74d0b1acc7 100644
--- a/srcpkgs/cross-mipsel-linux-musl/template
+++ b/srcpkgs/cross-mipsel-linux-musl/template
@@ -1,11 +1,11 @@
 # Template file for 'cross-mipsel-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_musl_version=1.1.24
+_binutils_version=2.39
+_gcc_version=12.1.0
+_glibc_version=2.36
 _linux_version=5.10.4
 pkgname=cross-mipsel-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
 build_style=void-cross
 configure_args="--with-arch=mips32r2 --with-float=soft
  --with-linker-hash-style=sysv"
@@ -18,12 +18,12 @@ homepage="https://www.voidlinux.org/"
 license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
- https://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
 nocross=yes
 

From 30a66421affb9355bfe11a9799579b17094dbde2 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:55 -0700
Subject: [PATCH 21/31] cross-mipsel-linux-muslhf: update to gcc 12.1.0.

---
 srcpkgs/cross-mipsel-linux-muslhf/template | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/srcpkgs/cross-mipsel-linux-muslhf/template b/srcpkgs/cross-mipsel-linux-muslhf/template
index e4a55f028bc4..83ab7f187085 100644
--- a/srcpkgs/cross-mipsel-linux-muslhf/template
+++ b/srcpkgs/cross-mipsel-linux-muslhf/template
@@ -1,11 +1,11 @@
 # Template file for 'cross-mipsel-linux-muslhf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_musl_version=1.1.24
+_binutils_version=2.39
+_gcc_version=12.1.0
+_glibc_version=2.36
 _linux_version=5.10.4
 pkgname=cross-mipsel-linux-muslhf
-version=0.34
-revision=3
+version=0.35
+revision=1
 build_style=void-cross
 configure_args="--with-arch=mips32r2 --with-float=hard
  --with-linker-hash-style=sysv"
@@ -18,12 +18,12 @@ homepage="https://www.voidlinux.org/"
 license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
- https://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
 nocross=yes
 

From 0c02419f83befa5f867ca7157fb5aed5f4137b2e Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:55 -0700
Subject: [PATCH 22/31] cross-powerpc-linux-gnu: update to gcc 12.1.0.

---
 srcpkgs/cross-powerpc-linux-gnu/template | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/srcpkgs/cross-powerpc-linux-gnu/template b/srcpkgs/cross-powerpc-linux-gnu/template
index b97a21d0d72e..3ab1a4ea40fa 100644
--- a/srcpkgs/cross-powerpc-linux-gnu/template
+++ b/srcpkgs/cross-powerpc-linux-gnu/template
@@ -1,10 +1,10 @@
 # Template file for 'cross-powerpc-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.1.0
+_glibc_version=2.36
 _linux_version=5.10.4
 pkgname=cross-powerpc-linux-gnu
-version=0.34
+version=0.35
 revision=1
 build_style=void-cross
 configure_args="--enable-secureplt --disable-vtable-verify"
@@ -17,12 +17,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
 homepage="https://www.voidlinux.org/"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
  ${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
 nocross=yes
 

From c09a18550fc007be19c6d9bac1972f781ad3b95d Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:55 -0700
Subject: [PATCH 23/31] cross-powerpc-linux-musl: update to gcc 12.1.0.

---
 srcpkgs/cross-powerpc-linux-musl/template | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/srcpkgs/cross-powerpc-linux-musl/template b/srcpkgs/cross-powerpc-linux-musl/template
index f9b22f0610d3..af5586cacc77 100644
--- a/srcpkgs/cross-powerpc-linux-musl/template
+++ b/srcpkgs/cross-powerpc-linux-musl/template
@@ -1,11 +1,11 @@
 # Template file for 'cross-powerpc-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.1.0
 _musl_version=1.1.24
 _linux_version=5.10.4
 pkgname=cross-powerpc-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
 build_style=void-cross
 configure_args="--enable-secureplt --disable-vtable-verify
  --disable-decimal-float"
@@ -18,11 +18,11 @@ homepage="https://www.voidlinux.org/"
 license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
  https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
  1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
 nocross=yes

From 692530b11302a0169ba3286997105e9136a65425 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:55 -0700
Subject: [PATCH 24/31] cross-powerpc64-linux-gnu: update to gcc 12.1.0.

---
 srcpkgs/cross-powerpc64-linux-gnu/template | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/srcpkgs/cross-powerpc64-linux-gnu/template b/srcpkgs/cross-powerpc64-linux-gnu/template
index 35cfcaa6f02e..2604b268046b 100644
--- a/srcpkgs/cross-powerpc64-linux-gnu/template
+++ b/srcpkgs/cross-powerpc64-linux-gnu/template
@@ -1,10 +1,10 @@
 # Template file for 'cross-powerpc64-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.1.0
+_glibc_version=2.36
 _linux_version=5.10.4
 pkgname=cross-powerpc64-linux-gnu
-version=0.34
+version=0.35
 revision=1
 build_style=void-cross
 configure_args="--enable-secureplt --disable-vtable-verify --with-abi=elfv2
@@ -18,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
 homepage="https://www.voidlinux.org/"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
  ${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
 nocross=yes
 

From eefe74c38fc46e31f9db88d8c47c82ae1e12dec4 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:55 -0700
Subject: [PATCH 25/31] cross-powerpc64-linux-musl: update to gcc 12.1.0.

---
 srcpkgs/cross-powerpc64-linux-musl/template | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/srcpkgs/cross-powerpc64-linux-musl/template b/srcpkgs/cross-powerpc64-linux-musl/template
index 1ebd0fb2048d..c7894721b900 100644
--- a/srcpkgs/cross-powerpc64-linux-musl/template
+++ b/srcpkgs/cross-powerpc64-linux-musl/template
@@ -1,12 +1,12 @@
 # Template file for 'cross-powerpc64-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.1.0
 _musl_version=1.1.24
 _linux_version=5.10.4
 _libucontext_version=1.0
 pkgname=cross-powerpc64-linux-musl
-version=0.34
-revision=4
+version=0.35
+revision=1
 build_style=void-cross
 configure_args="--enable-secureplt --disable-vtable-verify
  --disable-decimal-float --with-abi=elfv2 --enable-targets=powerpc-linux"
@@ -19,12 +19,12 @@ homepage="https://www.voidlinux.org/"
 license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
  https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
  https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
  1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
  23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"

From ad83cbdacb73a1866d1b09583e3fcfb71a40d7dd Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:56 -0700
Subject: [PATCH 26/31] cross-powerpc64le-linux-gnu: update to gcc 12.1.0.

---
 srcpkgs/cross-powerpc64le-linux-gnu/template | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/srcpkgs/cross-powerpc64le-linux-gnu/template b/srcpkgs/cross-powerpc64le-linux-gnu/template
index 733f5851da5c..618235468970 100644
--- a/srcpkgs/cross-powerpc64le-linux-gnu/template
+++ b/srcpkgs/cross-powerpc64le-linux-gnu/template
@@ -1,10 +1,10 @@
 # Template file for 'cross-powerpc64le-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.1.0
+_musl_version=1.1.24
 _linux_version=5.10.4
 pkgname=cross-powerpc64le-linux-gnu
-version=0.34
+version=0.35
 revision=1
 build_style=void-cross
 configure_args="--enable-secureplt --disable-vtable-verify --with-abi=elfv2
@@ -18,12 +18,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
 homepage="https://www.voidlinux.org/"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
- ${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
+ https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
+ 1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
 nocross=yes
 

From cd6338bd4b7e2617513986a2169fd733db14df0c Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:56 -0700
Subject: [PATCH 27/31] cross-powerpc64le-linux-musl: update to gcc 12.1.0.

---
 srcpkgs/cross-powerpc64le-linux-musl/template | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/srcpkgs/cross-powerpc64le-linux-musl/template b/srcpkgs/cross-powerpc64le-linux-musl/template
index 76a70aa1d6db..7edf9605e60d 100644
--- a/srcpkgs/cross-powerpc64le-linux-musl/template
+++ b/srcpkgs/cross-powerpc64le-linux-musl/template
@@ -1,12 +1,12 @@
 # Template file for 'cross-powerpc64le-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.1.0
 _musl_version=1.1.24
 _linux_version=5.10.4
 _libucontext_version=1.0
 pkgname=cross-powerpc64le-linux-musl
-version=0.34
-revision=4
+version=0.35
+revision=1
 build_style=void-cross
 configure_args="--enable-secureplt --disable-vtable-verify
  --disable-decimal-float --with-abi=elfv2 --enable-targets=powerpcle-linux"
@@ -19,12 +19,12 @@ homepage="https://www.voidlinux.org/"
 license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
  https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
  https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
  1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
  23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"

From df8c58086499b811db8c5927691f562680948722 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:56 -0700
Subject: [PATCH 28/31] cross-powerpcle-linux-gnu: update to gcc 12.1.0.

---
 srcpkgs/cross-powerpcle-linux-gnu/template | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/srcpkgs/cross-powerpcle-linux-gnu/template b/srcpkgs/cross-powerpcle-linux-gnu/template
index 347b8fcf4f55..cc10b7cbd88b 100644
--- a/srcpkgs/cross-powerpcle-linux-gnu/template
+++ b/srcpkgs/cross-powerpcle-linux-gnu/template
@@ -1,10 +1,10 @@
 # Template file for 'cross-powerpcle-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.1.0
+_glibc_version=2.36
 _linux_version=5.10.4
 pkgname=cross-powerpcle-linux-gnu
-version=0.34
+version=0.35
 revision=1
 build_style=void-cross
 configure_args="--enable-secureplt --disable-vtable-verify"
@@ -17,12 +17,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
 homepage="https://www.voidlinux.org/"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
  ${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
 nocross=yes
 

From 3b027fb769771cf1989ed642106459bf1fe8c6a7 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:56 -0700
Subject: [PATCH 29/31] cross-powerpcle-linux-musl: update to gcc 12.1.0.

---
 srcpkgs/cross-powerpcle-linux-musl/template | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/srcpkgs/cross-powerpcle-linux-musl/template b/srcpkgs/cross-powerpcle-linux-musl/template
index ec9324ddaa99..1d38a3fa3559 100644
--- a/srcpkgs/cross-powerpcle-linux-musl/template
+++ b/srcpkgs/cross-powerpcle-linux-musl/template
@@ -1,11 +1,11 @@
 # Template file for 'cross-powerpcle-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.1.0
 _musl_version=1.1.24
 _linux_version=5.10.4
 pkgname=cross-powerpcle-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
 build_style=void-cross
 configure_args="--enable-secureplt --disable-vtable-verify
  --disable-decimal-float"
@@ -18,11 +18,11 @@ homepage="https://www.voidlinux.org/"
 license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
  https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
  1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
 nocross=yes

From a9fcf1ca911862006ad780e170f18b1a9681b061 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:56 -0700
Subject: [PATCH 30/31] cross-x86_64-linux-gnu: update to gcc 12.1.0.

---
 srcpkgs/cross-x86_64-linux-gnu/template | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/srcpkgs/cross-x86_64-linux-gnu/template b/srcpkgs/cross-x86_64-linux-gnu/template
index 0078fbe7224b..9f740b00a80c 100644
--- a/srcpkgs/cross-x86_64-linux-gnu/template
+++ b/srcpkgs/cross-x86_64-linux-gnu/template
@@ -1,10 +1,10 @@
 # Template file for 'cross-x86_64-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.1.0
+_glibc_version=2.36
 _linux_version=5.10.4
 pkgname=cross-x86_64-linux-gnu
-version=0.34
+version=0.35
 revision=1
 build_style=void-cross
 hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
@@ -16,12 +16,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
 homepage="https://www.voidlinux.org/"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
  ${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
 nocross=yes
 

From 6b4d9b1f4e46fe9abba9f16bc0d44e75ee46fb9f Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:56 -0700
Subject: [PATCH 31/31] cross-x86_64-linux-musl: update to gcc 12.1.0.

---
 srcpkgs/cross-x86_64-linux-musl/template | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/srcpkgs/cross-x86_64-linux-musl/template b/srcpkgs/cross-x86_64-linux-musl/template
index a941e7e02f6f..19e13f3818e9 100644
--- a/srcpkgs/cross-x86_64-linux-musl/template
+++ b/srcpkgs/cross-x86_64-linux-musl/template
@@ -1,12 +1,12 @@
 # Template file for 'cross-x86_64-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.1.0
 _musl_version=1.1.24
 _linux_version=5.10.4
 _libucontext_version=1.0
 pkgname=cross-x86_64-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
 build_style=void-cross
 hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
 makedepends="isl15-devel libmpc-devel zlib-devel gmp-devel mpfr-devel"
@@ -17,12 +17,12 @@ homepage="https://www.voidlinux.org/"
 license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
  https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
  https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
  1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
  23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"

^ permalink raw reply	[flat|nested] 144+ messages in thread

* Re: [PR PATCH] [Updated] gcc: update to 12.1.0
  2022-01-06  6:15 [PR PATCH] gcc: update to 11.2.1git20211128 Oreo639
                   ` (21 preceding siblings ...)
  2022-08-15  8:17 ` oreo639
@ 2022-08-15  8:20 ` oreo639
  2022-08-15  8:20 ` oreo639
                   ` (119 subsequent siblings)
  142 siblings, 0 replies; 144+ messages in thread
From: oreo639 @ 2022-08-15  8:20 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 2605 bytes --]

There is an updated pull request by oreo639 against master on the void-packages repository

https://github.com/oreo639/void-packages gcc11
https://github.com/void-linux/void-packages/pull/34902

gcc: update to 12.1.0
<!-- Uncomment relevant sections and delete options which are not applicable -->
[ci skip]

Edit: this PR had been updated for gcc 12.1.0

This PR depends on: https://github.com/void-linux/void-packages/pull/32330

I tested this PR with glibc and after updating glibc, it seems to work fine.
I also tested this PR with x86_64-musl, and it appears to run fine in a musl chroot, and recompiling and installing musl with gcc 12 doesn't appear to result in any issues. (more testing is needed)

Please let me know if there are any issues.

I compiled base-system to ensure that compiles and it appears to work fine.

I tested some of the cross compilers and after some debugging with the help of CameronNemo, we figured out the issue.
The cross compilers are built with `nopie=yes` (specified in environment/build-style), which causes issues with glibc 2.35+ which uses PIE by default.
gcc always builds itself as nopie.
I added a workaround to common/build-style/void-cross but if you have any other recommendations on how to handle it, feel free to let me know.

Also, keep in mind that the libgo musl patch here will need to be updated once musl is updated:
https://github.com/void-linux/void-packages/pull/34902/files#diff-1f42a95b93c9550178ff1fbccbef2f47a72711df15c24c9472e2550076978129R163-R176

This is the updated patch for reference:
https://github.com/alpinelinux/aports/blob/8acb21b8ee881e7ab1c812d9a66a17d2501b8730/main/gcc/0049-libgo-adjust-name-of-union-in-sigevent-struct.patch

#### Testing the changes
- I tested the changes in this PR: **briefly**

<!--
#### New package
- This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please [skip CI](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration)
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->

#### Local build testing
- I built this PR locally for my native architecture, (x86_64-glibc)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - x86_64-musl

A patch file from https://github.com/void-linux/void-packages/pull/34902.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-gcc11-34902.patch --]
[-- Type: text/x-diff, Size: 105346 bytes --]

From 089d015613e2b4fa8555f3bc80701a181d470a23 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 01:14:21 -0700
Subject: [PATCH 01/31] binutils: update to 2.39.

---
 ...e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch | 60 -----------------
 .../patches/ppc64-revert-gnu-attributes.patch | 66 +++++--------------
 srcpkgs/binutils/template                     |  9 +--
 3 files changed, 22 insertions(+), 113 deletions(-)
 delete mode 100644 srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch

diff --git a/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch b/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch
deleted file mode 100644
index a55432d83cff..000000000000
--- a/srcpkgs/binutils/patches/1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 1767e3f3bd6d460491f8c8d032a7fea88d5ec8ff Mon Sep 17 00:00:00 2001
-From: "H.J. Lu" <hjl.tools@gmail.com>
-Date: Mon, 16 Nov 2020 06:37:53 -0800
-Subject: [PATCH] elf: Set rel_from_abs to 1 for __ehdr_start
-
-bfdlink.h has
-
-  /* Symbol will be converted from absolute to section-relative.  Set for
-     symbols defined by a script from "dot" (also SEGMENT_START or ORIGIN)
-     outside of an output section statement.  */
-  unsigned int rel_from_abs : 1;
-
-linker.c has
-
-.{* Return TRUE if the symbol described by a linker hash entry H
-.   is going to be absolute.  Linker-script defined symbols can be
-.   converted from absolute to section-relative ones late in the
-.   link.  Use this macro to correctly determine whether the symbol
-.   will actually end up absolute in output.  *}
-.#define bfd_is_abs_symbol(H) \
-.  (((H)->type == bfd_link_hash_defined \
-.    || (H)->type == bfd_link_hash_defweak) \
-.   && bfd_is_abs_section ((H)->u.def.section) \
-.   && !(H)->rel_from_abs)
-.
-
-Set rel_from_abs to 1 for __ehdr_start which will be converted from
-absolute to section-relative in assign_file_positions_for_load_sections.
-
-	PR ld/26869
-	* ldelf.c (ldelf_before_allocation): Set rel_from_abs to 1 for
-	__ehdr_start.
-	* testsuite/ld-i386/i386.exp: Run pr26869.
-	* testsuite/ld-i386/pr26869.d: New file.
-	* testsuite/ld-i386/pr26869.s: Likewise.
-
-(cherry picked from commit cbd5b99cce073273f668b154d4514e8e7e7ccc51)
----
- ld/ChangeLog                   |  9 +++++++++
- ld/ldelf.c                     |  2 ++
- ld/testsuite/ld-i386/i386.exp  |  1 +
- ld/testsuite/ld-i386/pr26869.d | 14 ++++++++++++++
- ld/testsuite/ld-i386/pr26869.s |  3 +++
- 5 files changed, 29 insertions(+)
- create mode 100644 ld/testsuite/ld-i386/pr26869.d
- create mode 100644 ld/testsuite/ld-i386/pr26869.s
-
-diff --git a/ld/ldelf.c b/ld/ldelf.c
-index bada3ade2d7..831d032fe56 100644
---- a/ld/ldelf.c
-+++ b/ld/ldelf.c
-@@ -1589,6 +1589,8 @@ ldelf_before_allocation (char *audit, char *depaudit,
- 		      (char *) &ehdr_start->u + sizeof ehdr_start->u.def.next,
- 		      sizeof ehdr_start_save_u);
- 	      ehdr_start->type = bfd_link_hash_defined;
-+	      /* It will be converted to section-relative later.  */
-+	      ehdr_start->rel_from_abs = 1;
- 	      ehdr_start->u.def.section = bfd_abs_section_ptr;
- 	      ehdr_start->u.def.value = 0;
- 	    }
diff --git a/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch b/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
index 5de937f4fcce..1c208dd8955c 100644
--- a/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
+++ b/srcpkgs/binutils/patches/ppc64-revert-gnu-attributes.patch
@@ -1,39 +1,24 @@
-From b1faf99f3e546df2cd302bb1ad36a2078224fe8b Mon Sep 17 00:00:00 2001
+From bbf05b742fde518fb97c789b043fe0d3aaf549f0 Mon Sep 17 00:00:00 2001
 From: Ariadne Conill <ariadne@dereferenced.org>
-Date: Fri, 30 Oct 2020 16:59:48 -0600
+Date: Tue, 21 Sep 2021 14:53:13 +0000
 Subject: [PATCH] Revert "PR25882, .gnu.attributes are not checked for shared
  libraries"
 
+This revert is needed to avoid wrongly tagging objects with the incompatible
+IBM long double ABI, which is not supported by musl and will result in
+linking errors if used.
+
 This reverts commit a8acd6eeb6dc2cc5460ece90f90ebe36b56b20ba.
 ---
- bfd/ChangeLog     | 6 ------
- bfd/elf32-tic6x.c | 3 ---
- ld/ChangeLog      | 6 ------
- ld/ldlang.c       | 9 ++++-----
- 4 files changed, 4 insertions(+), 20 deletions(-)
+ bfd/elf32-tic6x.c |  3 ---
+ ld/ldlang.c       | 10 ++++------
+ 2 files changed, 4 insertions(+), 9 deletions(-)
 
-diff --git a/bfd/ChangeLog b/bfd/ChangeLog
-index 9fac12538a..b5461494e8 100644
---- a/bfd/ChangeLog
-+++ b/bfd/ChangeLog
-@@ -1422,12 +1422,6 @@
- 	accessing root.u.def of symbols.  Also check root.u.def.section
- 	is non-NULL.  Reverse tests so as to make the logic positive.
- 
--2020-05-01  Alan Modra  <amodra@gmail.com>
--
--	PR 25882
--	* elf32-tic6x.c (elf32_tic6x_merge_attributes): Don't transfer
--	Tag_ABI_PIC or Tag_ABI_PID from dynamic objects to the output.
--
- 2020-05-01  Alan Modra  <amodra@gmail.com>
- 
- 	PR 25882
 diff --git a/bfd/elf32-tic6x.c b/bfd/elf32-tic6x.c
-index b8b916bfd3..91bb6a10b1 100644
+index 5754f3cb860..3ad1d612749 100644
 --- a/bfd/elf32-tic6x.c
 +++ b/bfd/elf32-tic6x.c
-@@ -3748,9 +3748,6 @@ elf32_tic6x_merge_attributes (bfd *ibfd, struct bfd_link_info *info)
+@@ -3735,9 +3735,6 @@ elf32_tic6x_merge_attributes (bfd *ibfd, struct bfd_link_info *info)
  
  	case Tag_ABI_PIC:
  	case Tag_ABI_PID:
@@ -43,36 +28,20 @@ index b8b916bfd3..91bb6a10b1 100644
  	  if (out_attr[i].i > in_attr[i].i)
  	    out_attr[i].i = in_attr[i].i;
  	  break;
-diff --git a/ld/ChangeLog b/ld/ChangeLog
-index 4eec7d2977..b93452f70c 100644
---- a/ld/ChangeLog
-+++ b/ld/ChangeLog
-@@ -1319,12 +1319,6 @@
- 	* testsuite/ld-aarch64/farcall-group.d: New test driver.
- 	* testsuite/ld-aarch64/aarch64-elf.exp: Run the new test.
- 
--2020-05-01  Alan Modra  <amodra@gmail.com>
--
--	PR 25882
--	* ldlang.c (lang_check): Call bfd_merge_private_bfd_data for
--	shared libraries.
--
- 2020-05-01  Alan Modra  <amodra@gmail.com>
- 
- 	* po/BLD-POTFILES.in: Regenerate.
 diff --git a/ld/ldlang.c b/ld/ldlang.c
-index 9977195074..173d8ec349 100644
+index 37b64c89ee1..f13beaef9d9 100644
 --- a/ld/ldlang.c
 +++ b/ld/ldlang.c
-@@ -6972,12 +6972,11 @@ lang_check (void)
+@@ -7071,13 +7071,11 @@ lang_check (void)
  		   bfd_printable_name (input_bfd), input_bfd,
  		   bfd_printable_name (link_info.output_bfd));
  	}
 -
 -      /* If the input bfd has no contents, it shouldn't set the
 -	 private data of the output bfd.  */
--      else if ((input_bfd->flags & DYNAMIC) != 0
--	       || bfd_count_sections (input_bfd) != 0)
+-      else if (!file->flags.just_syms
+-	       && ((input_bfd->flags & DYNAMIC) != 0
+-		   || bfd_count_sections (input_bfd) != 0))
 +      else if (bfd_count_sections (input_bfd))
  	{
 +	  /* If the input bfd has no contents, it shouldn't set the
@@ -82,5 +51,4 @@ index 9977195074..173d8ec349 100644
  
  	  /* If we aren't supposed to warn about mismatched input
 -- 
-2.29.2
-
+2.33.0
diff --git a/srcpkgs/binutils/template b/srcpkgs/binutils/template
index 6270f8618c87..6eb4f1a5e829 100644
--- a/srcpkgs/binutils/template
+++ b/srcpkgs/binutils/template
@@ -1,19 +1,20 @@
 # Template file for 'binutils'
 pkgname=binutils
-version=2.35.1
-revision=4
+version=2.39
+revision=1
 bootstrap=yes
+hostmakedepends="pkg-config"
 makedepends="zlib-devel"
 short_desc="GNU binary utilities"
 maintainer="Enno Boland <gottox@voidlinux.org>"
 license="GPL-3.0-or-later"
 homepage="http://www.gnu.org/software/binutils/"
 distfiles="${GNU_SITE}/$pkgname/$pkgname-$version.tar.xz"
-checksum=3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
+checksum=645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
 
 subpackages="binutils-doc"
 if [ "$CHROOT_READY" ]; then
-	hostmakedepends="flex perl texinfo"
+	hostmakedepends+=" flex perl texinfo"
 	makedepends+=" elfutils-devel"
 	checkdepends="bc"
 	depends="binutils-doc"

From 5159209d72f3d4edff4978b823832d4000ce2b3a Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 06:26:59 -0700
Subject: [PATCH 02/31] gcc: update to 12.1.0.

---
 common/shlibs                                 |  10 +-
 srcpkgs/gcc/files/gccgo-musl.patch            |  74 +++--------
 srcpkgs/gcc/files/libgnarl-musl.patch         |  18 +--
 srcpkgs/gcc/files/libssp-musl.patch           |  10 +-
 ...c21f3f5726823e19728fdd1571a14aae0fb3.patch | 105 ++++++++++++++++
 ...08065bdd36fb1a9b6aad9666b1edb5e06474.patch | 115 ++++++++++++++++++
 ...65517a59565758107c5b1a51a5fa382f8d1a.patch |  32 +++++
 srcpkgs/gcc/patches/libffi_gnulinux.patch     |  11 --
 .../gcc/patches/libgcc-ibm128-no-tag.patch    |  10 +-
 srcpkgs/gcc/patches/mips-sgidefs_h.patch      |   3 +-
 srcpkgs/gcc/template                          |  25 ++--
 11 files changed, 305 insertions(+), 108 deletions(-)
 create mode 100644 srcpkgs/gcc/patches/3b21c21f3f5726823e19728fdd1571a14aae0fb3.patch
 create mode 100644 srcpkgs/gcc/patches/49d508065bdd36fb1a9b6aad9666b1edb5e06474.patch
 create mode 100644 srcpkgs/gcc/patches/f35d65517a59565758107c5b1a51a5fa382f8d1a.patch
 delete mode 100644 srcpkgs/gcc/patches/libffi_gnulinux.patch

diff --git a/common/shlibs b/common/shlibs
index 61924610cc52..c6400b566966 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -60,7 +60,7 @@ libcc1plugin.so.0 gcc-6.2.1_1
 libitm.so.1 libitm-4.7.3_1
 liblto_plugin.so.0 gcc-4.7.3_1
 libgcc_s.so.1 libgcc-4.4.0_1
-libgo.so.16 libgo-10.2.0_1
+libgo.so.21 libgo-12.1.0_1
 libgccjit.so.0 libgccjit-10.2.1pre1_1
 libperl.so.5.34 perl-5.34.0_1
 libgmp.so.10 gmp-5.0.1_1
@@ -849,8 +849,8 @@ libgdkmm-2.4.so.1 gtkmm2-2.24.0_1
 libgtkmm-2.4.so.1 gtkmm2-2.24.0_1
 libquadmath.so.0 libquadmath-4.4.0_1
 libgfortran.so.5 libgfortran-8.2.0_1
-libgnarl-10.so libada-10.2.0_1
-libgnat-10.so libada-10.2.0_1
+libgnarl-12.so libada-12.1.0_1
+libgnat-12.so libada-12.1.0_1
 libwebp.so.7 libwebp-0.6.0_1
 libwebpmux.so.3 libwebp-0.6.0_1
 libwebpdemux.so.2 libwebp-0.5.0_1
@@ -1701,8 +1701,8 @@ libextractor.so.3 libextractor-1.1_1
 libextractor_common.so.1 libextractor-1.1_1
 libpano13.so.3 libpano13-2.9.19_1
 libubsan.so.1 libsanitizer-8.2.0_1
-libtsan.so.0 libsanitizer-6.3.0_1
-libasan.so.6 libsanitizer-10.2.0_1
+libtsan.so.2 libsanitizer-12.1.0_1
+libasan.so.8 libsanitizer-12.1.0_1
 liblsan.so.0 libsanitizer-6.3.0_1
 libvtv.so.0 libvtv-6.3.0_1
 libatomic.so.1 libatomic-4.9.0_1
diff --git a/srcpkgs/gcc/files/gccgo-musl.patch b/srcpkgs/gcc/files/gccgo-musl.patch
index 9762739615af..632ef951097b 100644
--- a/srcpkgs/gcc/files/gccgo-musl.patch
+++ b/srcpkgs/gcc/files/gccgo-musl.patch
@@ -53,17 +53,6 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
  	p := sysMmap(addr, n, prot, flags, fd, off)
  	if uintptr(p) == _MAP_FAILED {
  		return nil, errno()
---- a/libgo/go/runtime/signal_gccgo.go
-+++ b/libgo/go/runtime/signal_gccgo.go
-@@ -111,7 +111,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")
 --- a/libgo/go/syscall/errstr.go
 +++ b/libgo/go/syscall/errstr.go
 @@ -5,7 +5,6 @@
@@ -140,55 +129,6 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
  		plwoff = &lwoff
  	}
  	n, err = splice(rfd, plroff, wfd, plwoff, len, flags)
---- 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
---- a/libgo/runtime/go-signal.c	2020-07-23 08:35:19.004402840 +0200
-+++ b/libgo/runtime/go-signal.c	2020-08-09 21:35:54.352886232 +0200
-@@ -224,7 +224,11 @@
- #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;
-+	#ifdef __PPC64__
-+		ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.gp_regs[32];
-+	#else
-+		ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.gregs[32];
-+	#endif
- #elif defined(__PPC__) && defined(_AIX)
- 	ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.jmp_context.iar;
- #elif defined(__aarch64__) && defined(__linux__)
-@@ -333,7 +337,7 @@
- 		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(__linux__) && defined(__GLIBC__)
- 	  {
- 		mcontext_t *m = &((ucontext_t*)(context))->uc_mcontext;
- 		int i;
 --- a/libgo/runtime/runtime.h
 +++ b/libgo/runtime/runtime.h
 @@ -500,10 +500,13 @@ int __go_setcontext(__go_context_t*);
@@ -220,3 +160,17 @@ URL: https://code.foxkit.us/adelie/packages/tree/master/system/gcc
  #if defined(HAVE_SYS_UTSNAME_H)
  #include <sys/utsname.h>
  #endif
+--- a/libgo/go/runtime/os_linux.go
++++ a/libgo/go/runtime/os_linux.go
+@@ -363,9 +363,9 @@
+ 
+ 	var timerid int32
+ 	var sevp _sigevent
+-	sevp.sigev_notify = _SIGEV_THREAD_ID
++	sevp.sigev_notify = 4
+ 	sevp.sigev_signo = _SIGPROF
+-	*((*int32)(unsafe.Pointer(&sevp._sigev_un))) = int32(mp.procid)
++	*((*int32)(unsafe.Pointer(&sevp.sigev_notify_function))) = int32(mp.procid)
+ 	ret := timer_create(_CLOCK_THREAD_CPUTIME_ID, &sevp, &timerid)
+ 	if ret != 0 {
+ 		// If we cannot create a timer for this M, leave profileTimerValid false
diff --git a/srcpkgs/gcc/files/libgnarl-musl.patch b/srcpkgs/gcc/files/libgnarl-musl.patch
index 99a734c42c90..91c95949e0e9 100644
--- a/srcpkgs/gcc/files/libgnarl-musl.patch
+++ b/srcpkgs/gcc/files/libgnarl-musl.patch
@@ -5,7 +5,7 @@ Reason: Patch libgnarl to not use function missing from musl.
 diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/libgnarl/s-osinte__linux.ads
 --- a/gcc/ada/libgnarl/s-osinte__linux.ads	2018-01-11 00:55:25.000000000 -0800
 +++ b/gcc/ada/libgnarl/s-osinte__linux.ads	2018-11-01 16:16:23.372452951 -0700
-@@ -394,12 +394,6 @@ package System.OS_Interface is
+@@ -403,12 +403,6 @@ package System.OS_Interface is
     PTHREAD_RWLOCK_PREFER_WRITER_NP              : constant := 1;
     PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP : constant := 2;
  
@@ -18,7 +18,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/l
     function pthread_rwlock_init
       (mutex : access pthread_rwlock_t;
        attr  : access pthread_rwlockattr_t) return int;
-@@ -464,11 +458,6 @@ package System.OS_Interface is
+@@ -470,11 +464,6 @@ package System.OS_Interface is
        protocol : int) return int;
     pragma Import (C, pthread_mutexattr_setprotocol);
  
@@ -33,7 +33,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/l
 diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/libgnarl/s-taprop__linux.adb
 --- a/gcc/ada/libgnarl/s-taprop__linux.adb	2018-01-11 00:55:25.000000000 -0800
 +++ b/gcc/ada/libgnarl/s-taprop__linux.adb	2018-11-13 11:28:36.433964449 -0800
-@@ -202,9 +202,6 @@ package body System.Task_Primitives.Oper
+@@ -198,9 +198,6 @@ package body System.Task_Primitives.Oper
     pragma Import
       (C, GNAT_pthread_condattr_setup, "__gnat_pthread_condattr_setup");
  
@@ -43,7 +43,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
     --  We do not have pragma Linker_Options ("-lcap"); here, because this
     --  library is not present on many Linux systems. 'libcap' is the Linux
     --  "capabilities" library, called by __gnat_has_cap_sys_nice.
-@@ -214,38 +211,6 @@ package body System.Task_Primitives.Oper
+@@ -210,38 +207,6 @@ package body System.Task_Primitives.Oper
     --  Convert Ada priority to Linux priority. Priorities are 1 .. 99 on
     --  GNU/Linux, so we map 0 .. 98 to 1 .. 99.
  
@@ -76,13 +76,13 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
 -      return Ceiling_Support;
 -   end Get_Ceiling_Support;
 -
--   pragma Warnings (Off, "non-static call not allowed in preelaborated unit");
+-   pragma Warnings (Off, "non-preelaborable call not allowed*");
 -   Ceiling_Support : constant Boolean := Get_Ceiling_Support;
--   pragma Warnings (On, "non-static call not allowed in preelaborated unit");
+-   pragma Warnings (On, "non-preelaborable call not allowed*");
     --  True if the locking policy is Ceiling_Locking, and the current process
     --  has permission to use this policy. The process has permission if it is
     --  running as 'root', or if the capability was set by the setcap command,
-@@ -348,7 +313,9 @@ package body System.Task_Primitives.Oper
+@@ -344,7 +309,9 @@ package body System.Task_Primitives.Oper
     -- Init_Mutex --
     ----------------
  
@@ -92,7 +92,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
        Mutex_Attr : aliased pthread_mutexattr_t;
        Result, Result_2 : C.int;
  
-@@ -360,16 +327,7 @@ package body System.Task_Primitives.Oper
+@@ -356,16 +323,7 @@ package body System.Task_Primitives.Oper
           return Result;
        end if;
  
@@ -110,7 +110,7 @@ diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/l
           Result := pthread_mutexattr_setprotocol
             (Mutex_Attr'Access, PTHREAD_PRIO_INHERIT);
           pragma Assert (Result = 0);
-@@ -409,11 +367,6 @@ package body System.Task_Primitives.Oper
+@@ -405,11 +363,6 @@ package body System.Task_Primitives.Oper
              Result := pthread_rwlockattr_init (RWlock_Attr'Access);
              pragma Assert (Result = 0);
  
diff --git a/srcpkgs/gcc/files/libssp-musl.patch b/srcpkgs/gcc/files/libssp-musl.patch
index b21a2c29e57c..99f248401a1c 100644
--- a/srcpkgs/gcc/files/libssp-musl.patch
+++ b/srcpkgs/gcc/files/libssp-musl.patch
@@ -2,9 +2,9 @@ First part taken from Alpine.
 
 Second part added to prevent gccgo from thinking it can -fsplit-stack on musl.
 
---- a/gcc/gcc.c
-+++ b/gcc/gcc.c
-@@ -874,10 +874,15 @@ proper position among the other output files.  */
+--- a/gcc/gcc.cc
++++ b/gcc/gcc.cc
+@@ -984,10 +984,15 @@ proper position among the other output f
  #define LINK_GCC_C_SEQUENCE_SPEC "%G %{!nolibc:%L %G}"
  #endif
  
@@ -22,10 +22,10 @@ Second part added to prevent gccgo from thinking it can -fsplit-stack on musl.
  #else
  #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
  		       "|fstack-protector-strong|fstack-protector-explicit" \
-@@ -1155,7 +1160,7 @@ static const char *cc1_options =
+@@ -1280,7 +1285,7 @@ static const char *cc1_options =
   %{-version:--version}\
   %{-help=*:--help=%*}\
-  %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %b.s}}}\
+  %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %w%b.s}}}\
 - %{fsyntax-only:-o %j} %{-param*}\
 + %{fsyntax-only:-o %j} %{-param*} " NO_SSP_SPEC "\
   %{coverage:-fprofile-arcs -ftest-coverage}\
diff --git a/srcpkgs/gcc/patches/3b21c21f3f5726823e19728fdd1571a14aae0fb3.patch b/srcpkgs/gcc/patches/3b21c21f3f5726823e19728fdd1571a14aae0fb3.patch
new file mode 100644
index 000000000000..00929202a503
--- /dev/null
+++ b/srcpkgs/gcc/patches/3b21c21f3f5726823e19728fdd1571a14aae0fb3.patch
@@ -0,0 +1,105 @@
+From 3b21c21f3f5726823e19728fdd1571a14aae0fb3 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <siarheit@google.com>
+Date: Mon, 27 Jun 2022 13:27:24 +0100
+Subject: [PATCH] c++: avoid <memory> poisoning on musl [PR106102]
+
+On musl <pthread.h> uses calloc() (via <sched.h>). <memory> includes
+it indirectly and exposes use of poisoned calloc() when module code
+is built:
+
+    /build/build/./prev-gcc/xg++ ... ../../gcc-13-20220626/gcc/cp/mapper-resolver.cc
+        In file included from /<<NIX>>/musl-1.2.3-dev/include/pthread.h:30,
+                 from /build/build/prev-x86_64-unknown-linux-musl/libstdc++-v3/include/x86_64-unknown-linux-musl/bits/gthr-default.h:35,
+                 ....
+                 from /build/build/prev-x86_64-unknown-linux-musl/libstdc++-v3/include/memory:77,
+                 from ../../gcc-13-20220626/gcc/../libcody/cody.hh:24,
+                 from ../../gcc-13-20220626/gcc/cp/../../c++tools/resolver.h:25,
+                 from ../../gcc-13-20220626/gcc/cp/../../c++tools/resolver.cc:23,
+                 from ../../gcc-13-20220626/gcc/cp/mapper-resolver.cc:32:
+    /<<NIX>>/musl-1.2.3-dev/include/sched.h:84:7: error: attempt to use poisoned "calloc"
+       84 | void *calloc(size_t, size_t);
+          |       ^
+    /<<NIX>>/musl-1.2.3-dev/include/sched.h:124:36: error: attempt to use poisoned "calloc"
+      124 | #define CPU_ALLOC(n) ((cpu_set_t *)calloc(1,CPU_ALLOC_SIZE(n)))
+          |                                    ^
+
+gcc/cp/
+
+	PR c++/106102
+	* mapper-client.cc: Include <memory> via "system.h".
+	* mapper-resolver.cc: Ditto.
+	* module.cc: Ditto.
+
+libcc1/
+
+	PR c++/106102
+	* libcc1plugin.cc: Include <memory> via "system.h".
+	* libcp1plugin.cc: Ditto.
+---
+ gcc/cp/mapper-client.cc   | 1 +
+ gcc/cp/mapper-resolver.cc | 1 +
+ gcc/cp/module.cc          | 1 +
+ libcc1/libcc1plugin.cc    | 1 +
+ libcc1/libcp1plugin.cc    | 1 +
+ 5 files changed, 5 insertions(+)
+
+diff --git a/gcc/cp/mapper-client.cc b/gcc/cp/mapper-client.cc
+index 8603a886a099..fe9544b5ba43 100644
+--- a/gcc/cp/mapper-client.cc
++++ b/gcc/cp/mapper-client.cc
+@@ -27,6 +27,7 @@ along with GCC; see the file COPYING3.  If not see
+ #define INCLUDE_STRING
+ #define INCLUDE_VECTOR
+ #define INCLUDE_MAP
++#define INCLUDE_MEMORY
+ #include "system.h"
+ 
+ #include "line-map.h"
+diff --git a/gcc/cp/mapper-resolver.cc b/gcc/cp/mapper-resolver.cc
+index e3d29fb5ada1..e70d1b4ae2ca 100644
+--- a/gcc/cp/mapper-resolver.cc
++++ b/gcc/cp/mapper-resolver.cc
+@@ -25,6 +25,7 @@ along with GCC; see the file COPYING3.  If not see
+ #define INCLUDE_VECTOR
+ #define INCLUDE_ALGORITHM
+ #define INCLUDE_MAP
++#define INCLUDE_MEMORY
+ #include "system.h"
+ 
+ // We don't want or need to be aware of networking
+diff --git a/gcc/cp/module.cc b/gcc/cp/module.cc
+index 753963a4b246..8bb22c2b305a 100644
+--- a/gcc/cp/module.cc
++++ b/gcc/cp/module.cc
+@@ -206,6 +206,7 @@ Classes used:
+ 
+ #define _DEFAULT_SOURCE 1 /* To get TZ field of struct tm, if available.  */
+ #include "config.h"
++#define INCLUDE_MEMORY
+ #define INCLUDE_STRING
+ #define INCLUDE_VECTOR
+ #include "system.h"
+diff --git a/libcc1/libcc1plugin.cc b/libcc1/libcc1plugin.cc
+index 12ab5a57c8dd..bdd0bdabe77f 100644
+--- a/libcc1/libcc1plugin.cc
++++ b/libcc1/libcc1plugin.cc
+@@ -31,6 +31,7 @@
+ #undef PACKAGE_TARNAME
+ #undef PACKAGE_VERSION
+ 
++#define INCLUDE_MEMORY
+ #include "gcc-plugin.h"
+ #include "system.h"
+ #include "coretypes.h"
+diff --git a/libcc1/libcp1plugin.cc b/libcc1/libcp1plugin.cc
+index 83dab7f58b11..e2d5039a0a1f 100644
+--- a/libcc1/libcp1plugin.cc
++++ b/libcc1/libcp1plugin.cc
+@@ -32,6 +32,7 @@
+ #undef PACKAGE_TARNAME
+ #undef PACKAGE_VERSION
+ 
++#define INCLUDE_MEMORY
+ #include "gcc-plugin.h"
+ #include "system.h"
+ #include "coretypes.h"
diff --git a/srcpkgs/gcc/patches/49d508065bdd36fb1a9b6aad9666b1edb5e06474.patch b/srcpkgs/gcc/patches/49d508065bdd36fb1a9b6aad9666b1edb5e06474.patch
new file mode 100644
index 000000000000..89bd053d6d04
--- /dev/null
+++ b/srcpkgs/gcc/patches/49d508065bdd36fb1a9b6aad9666b1edb5e06474.patch
@@ -0,0 +1,115 @@
+From 49d508065bdd36fb1a9b6aad9666b1edb5e06474 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <siarheit@google.com>
+Date: Mon, 27 Jun 2022 23:42:44 +0100
+Subject: [PATCH] jit: avoid calloc() poisoning on musl [PR106102]
+
+On musl <pthread.h> uses calloc() (via <sched.h>). jit/ includes
+it directly and exposes use of poisoned calloc():
+
+    /build/build/./prev-gcc/xg++ ... ../../gcc-13-20220626/gcc/jit/jit-playback.cc
+    make[3]: *** [Makefile:1143: jit/libgccjit.o] Error 1
+    make[3]: *** Waiting for unfinished jobs....
+    In file included from /<<NIX>>/musl-1.2.3-dev/include/pthread.h:30,
+                     from ../../gcc-13-20220626/gcc/jit/jit-playback.cc:44:
+    /<<NIX>>/musl-1.2.3-dev/include/sched.h:84:7: error: attempt to use poisoned "calloc"
+       84 | void *calloc(size_t, size_t);
+          |       ^
+    /<<NIX>>/musl-1.2.3-dev/include/sched.h:124:36: error: attempt to use poisoned "calloc"
+      124 | #define CPU_ALLOC(n) ((cpu_set_t *)calloc(1,CPU_ALLOC_SIZE(n)))
+          |                                    ^
+
+The change moves <pthread.h> inclusion to "system.h" under new
+INCLUDE_PTHREAD_H guard and uses this mechanism in libgccjit.
+
+gcc/
+
+	PR c++/106102
+	* system.h: Introduce INCLUDE_PTHREAD_H macros to include <pthread.h>.
+
+gcc/jit/
+
+	PR c++/106102
+	* jit-playback.cc: Include <pthread.h> via "system.h" to avoid calloc()
+	poisoning.
+	* jit-recording.cc: Ditto.
+	* libgccjit.cc: Ditto.
+---
+ gcc/jit/jit-playback.cc  | 3 +--
+ gcc/jit/jit-recording.cc | 2 +-
+ gcc/jit/libgccjit.cc     | 2 +-
+ gcc/system.h             | 4 ++++
+ 4 files changed, 7 insertions(+), 4 deletions(-)
+
+diff --git a/gcc/jit/jit-playback.cc b/gcc/jit/jit-playback.cc
+index 6be6bdf8dea5..79714132b91a 100644
+--- a/gcc/jit/jit-playback.cc
++++ b/gcc/jit/jit-playback.cc
+@@ -19,6 +19,7 @@ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
++#define INCLUDE_PTHREAD_H
+ #include "system.h"
+ #include "coretypes.h"
+ #include "target.h"
+@@ -41,8 +42,6 @@ along with GCC; see the file COPYING3.  If not see
+ #include "diagnostic.h"
+ #include "stmt.h"
+ 
+-#include <pthread.h>
+-
+ #include "jit-playback.h"
+ #include "jit-result.h"
+ #include "jit-builtins.h"
+diff --git a/gcc/jit/jit-recording.cc b/gcc/jit/jit-recording.cc
+index 697dee66e733..f78daed2d71a 100644
+--- a/gcc/jit/jit-recording.cc
++++ b/gcc/jit/jit-recording.cc
+@@ -19,13 +19,13 @@ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
++#define INCLUDE_PTHREAD_H
+ #include "system.h"
+ #include "coretypes.h"
+ #include "tm.h"
+ #include "pretty-print.h"
+ #include "toplev.h"
+ 
+-#include <pthread.h>
+ 
+ #include "jit-builtins.h"
+ #include "jit-recording.h"
+diff --git a/gcc/jit/libgccjit.cc b/gcc/jit/libgccjit.cc
+index 0e76097b4bac..ca862662777e 100644
+--- a/gcc/jit/libgccjit.cc
++++ b/gcc/jit/libgccjit.cc
+@@ -19,12 +19,12 @@ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
++#define INCLUDE_PTHREAD_H
+ #include "system.h"
+ #include "coretypes.h"
+ #include "timevar.h"
+ #include "typed-splay-tree.h"
+ #include "cppbuiltin.h"
+-#include <pthread.h>
+ 
+ #include "libgccjit.h"
+ #include "jit-recording.h"
+diff --git a/gcc/system.h b/gcc/system.h
+index 67158b70c789..f8d42ff68150 100644
+--- a/gcc/system.h
++++ b/gcc/system.h
+@@ -753,6 +753,10 @@ extern int vsnprintf (char *, size_t, const char *, va_list);
+ #endif
+ #endif
+ 
++#ifdef INCLUDE_PTHREAD_H
++#include <pthread.h>
++#endif
++
+ #ifdef INCLUDE_ISL
+ #ifdef HAVE_isl
+ #include <isl/options.h>
diff --git a/srcpkgs/gcc/patches/f35d65517a59565758107c5b1a51a5fa382f8d1a.patch b/srcpkgs/gcc/patches/f35d65517a59565758107c5b1a51a5fa382f8d1a.patch
new file mode 100644
index 000000000000..044a4fc29514
--- /dev/null
+++ b/srcpkgs/gcc/patches/f35d65517a59565758107c5b1a51a5fa382f8d1a.patch
@@ -0,0 +1,32 @@
+From f35d65517a59565758107c5b1a51a5fa382f8d1a Mon Sep 17 00:00:00 2001
+From: Ian Lance Taylor <iant@golang.org>
+Date: Tue, 12 Jul 2022 19:42:43 -0700
+Subject: [PATCH] libgo: don't include <linux/fs.h> when building
+ gen-sysinfo.go
+
+Removing this doesn't change anything at least with glibc 2.33.
+The include was added in https://go.dev/cl/6100049 but it's not
+clear why.
+
+Fixes PR go/106266
+
+Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/417294
+---
+ gcc/go/gofrontend/MERGE | 2 +-
+ libgo/sysinfo.c         | 3 ---
+ 2 files changed, 1 insertion(+), 4 deletions(-)
+
+diff --git a/libgo/sysinfo.c b/libgo/sysinfo.c
+index a4259c02ded4..fc0210992faa 100644
+--- a/libgo/sysinfo.c
++++ b/libgo/sysinfo.c
+@@ -158,9 +158,6 @@
+ #if defined(HAVE_LINUX_ETHER_H)
+ #include <linux/ether.h>
+ #endif
+-#if defined(HAVE_LINUX_FS_H)
+-#include <linux/fs.h>
+-#endif
+ #if defined(HAVE_LINUX_REBOOT_H)
+ #include <linux/reboot.h>
+ #endif
diff --git a/srcpkgs/gcc/patches/libffi_gnulinux.patch b/srcpkgs/gcc/patches/libffi_gnulinux.patch
deleted file mode 100644
index 98245bd5be1a..000000000000
--- a/srcpkgs/gcc/patches/libffi_gnulinux.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/libffi/src/closures.c
-+++ b/libffi/src/closures.c
-@@ -34,7 +34,7 @@
- #include <ffi_common.h>
-
- #if !FFI_MMAP_EXEC_WRIT && !FFI_EXEC_TRAMPOLINE_TABLE
--# if __gnu_linux__ && !defined(__ANDROID__)
-+# if __linux__ && !defined(__ANDROID__)
- /* This macro indicates it may be forbidden to map anonymous memory
-    with both write and execute permission.  Code compiled when this
-    option is defined will attempt to map such pages once, but if it
diff --git a/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch b/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
index bdf5c75d917d..26d80356ad0d 100644
--- a/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
+++ b/srcpkgs/gcc/patches/libgcc-ibm128-no-tag.patch
@@ -29,10 +29,14 @@ diff --git a/libgcc/config/rs6000/t-linux b/libgcc/config/rs6000/t-linux
 index 4f6d4c4..fa93bb6 100644
 --- a/libgcc/config/rs6000/t-linux
 +++ b/libgcc/config/rs6000/t-linux
-@@ -1,3 +1,3 @@
+@@ -1,6 +1,6 @@
  SHLIB_MAPFILES += $(srcdir)/config/rs6000/libgcc-glibc.ver
  
--HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-minimal-toc
-+HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-gnu-attribute -mno-minimal-toc
+-HOST_LIBGCC2_CFLAGS += -mlong-double-128
++HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-gnu-attribute
+ 
+ # This is a way of selecting -mcmodel=small for ppc64, which gives
+ # smaller and faster libgcc code.  Directly specifying -mcmodel=small
+
 -- 
 2.24.0
diff --git a/srcpkgs/gcc/patches/mips-sgidefs_h.patch b/srcpkgs/gcc/patches/mips-sgidefs_h.patch
index dddfe10e8c06..78a2ce35875d 100644
--- a/srcpkgs/gcc/patches/mips-sgidefs_h.patch
+++ b/srcpkgs/gcc/patches/mips-sgidefs_h.patch
@@ -3,9 +3,10 @@
 @@ -42,7 +42,7 @@
  #define _MIPS_SIM_NABI32	2
  #define _MIPS_SIM_ABI64		3
- #elif !defined(__OpenBSD__)
+ #elif !defined(__OpenBSD__) && !defined(__FreeBSD__)
 -# include <sgidefs.h>
 +# include <asm/sgidefs.h>
  #endif
  
  #  ifndef _ABIN32
+
diff --git a/srcpkgs/gcc/template b/srcpkgs/gcc/template
index 09727ef34fb2..32ee79e32f0d 100644
--- a/srcpkgs/gcc/template
+++ b/srcpkgs/gcc/template
@@ -3,18 +3,15 @@
 # which use the version number.
 
 pkgname=gcc
-# we are using a 10-stable git snapshot alpine is using in order
-# to get regression fixes not yet incorporate into a stable release
-# it should be possible to switch back to stable with 10.3 or 11
-version=10.2.1pre1
-revision=3
+version=12.1.0
+revision=1
 _patchver="${version%pre*}"
 _minorver="${_patchver%.*}"
 _majorver="${_minorver%.*}"
-_gmp_version=6.2.0
+_gmp_version=6.2.1
 _mpfr_version=4.1.0
-_mpc_version=1.1.0
-_isl_version=0.21
+_mpc_version=1.2.1
+_isl_version=0.24
 wrksrc=gcc-${version/pre/_pre}
 short_desc="GNU Compiler Collection"
 maintainer="Enno Boland <gottox@voidlinux.org>"
@@ -22,16 +19,16 @@ homepage="http://gcc.gnu.org"
 license="GFDL-1.2-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
 # *-musl builders have issues fetching https://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz
 distfiles="
- https://dev.alpinelinux.org/~nenolod/gcc-${version/pre/_pre}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${version}/gcc-${version}.tar.xz
  https://gmplib.org/download/gmp/gmp-${_gmp_version}.tar.xz
  ${GNU_SITE}/mpfr/mpfr-${_mpfr_version}.tar.xz
  ${GNU_SITE}/mpc/mpc-${_mpc_version}.tar.gz
  ${SOURCEFORGE_SITE}/libisl/isl-${_isl_version}.tar.bz2"
-checksum="772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 258e6cd51b3fbdfc185c716d55f82c08aff57df0c6fbd143cf6ed561267a1526
+checksum="62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
+ fd4829912cddd12f84181c3451cc752be224643e87fac497b69edddadc49b4f2
  0c98a3f1732ff6ca4ea690552079da9c597872d30e96ec28414ee23c95558a7f
- 6985c538143c1208dcb1ac42cedad6ff52e267b47e5f970183a3e75125b43c2e
- d18ca11f8ad1a39ab6d03d3dcb3365ab416720fcb65b42d69f34f51bf0a0e859"
+ 17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459
+ fcf78dd9656c10eb8cf9fbd5f59a0b6b01386205fe1934b3b287a0a1898145c0"
 
 nopie=yes
 lib32disabled=yes
@@ -396,7 +393,7 @@ gcc-ada_package() {
 	depends="gcc>=${_minorver} libada-devel>=${_minorver}"
 	short_desc+=" - Ada compiler frontend"
 	pkg_install() {
-		for f in gnat{,bind,chop,clean,find,kr,link,ls,make,name,prep,xref}; do
+		for f in gnat{,bind,chop,clean,kr,link,ls,make,name,prep}; do
 			vmove usr/bin/${f}
 		done
 	}

From 00980754f4f23e46126a980f4b7e96e7406b01d4 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 06:27:47 -0700
Subject: [PATCH 03/31] libtool: update to 2.4.7.

---
 .../patches/0002-rename-with-sysroot.patch    | 34 +++++++++----------
 srcpkgs/libtool/template                      |  6 ++--
 2 files changed, 20 insertions(+), 20 deletions(-)

diff --git a/srcpkgs/libtool/patches/0002-rename-with-sysroot.patch b/srcpkgs/libtool/patches/0002-rename-with-sysroot.patch
index 960873c04e24..152aace96c41 100644
--- a/srcpkgs/libtool/patches/0002-rename-with-sysroot.patch
+++ b/srcpkgs/libtool/patches/0002-rename-with-sysroot.patch
@@ -13,16 +13,16 @@ Jürgen Buchmüller <pullmoll@t-online.de>
 
 --- a/configure	2015-02-15 17:14:34.000000000 +0100
 +++ b/configure	2015-10-20 13:25:12.684906339 +0200
-@@ -824,7 +824,7 @@
+@@ -832,7 +832,7 @@
  enable_fast_install
  with_aix_soname
  with_gnu_ld
 -with_sysroot
 +with_libtool_sysroot
  enable_libtool_lock
+ enable_cross_guesses
  '
-       ac_precious_vars='build_alias
-@@ -1487,7 +1487,8 @@
+@@ -1509,7 +1509,8 @@
                            shared library versioning (aka "SONAME") variant to
                            provide on AIX, [default=aix].
    --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
@@ -32,7 +32,7 @@ Jürgen Buchmüller <pullmoll@t-online.de>
                            compiler's sysroot if not specified).
  
  Some influential environment variables:
-@@ -7389,29 +7390,29 @@
+@@ -7610,29 +7611,29 @@
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
  $as_echo_n "checking for sysroot... " >&6; }
  
@@ -57,8 +57,8 @@ Jürgen Buchmüller <pullmoll@t-online.de>
     fi
     ;; #(
   /*)
--   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
-+   lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"`
+-   lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"`
++   lt_sysroot=`echo "$with_libtool_sysroot" | $SED -e "$sed_quote_subst"`
     ;; #(
   no|'')
     ;; #(
@@ -72,7 +72,7 @@ Jürgen Buchmüller <pullmoll@t-online.de>
  esac
 --- a/libltdl/configure	2015-02-15 17:15:15.000000000 +0100
 +++ b/libltdl/configure	2015-10-20 13:26:45.747914683 +0200
-@@ -775,7 +775,7 @@
+@@ -777,7 +777,7 @@
  with_aix_soname
  enable_dependency_tracking
  with_gnu_ld
@@ -81,7 +81,7 @@ Jürgen Buchmüller <pullmoll@t-online.de>
  enable_libtool_lock
  enable_ltdl_install
  '
-@@ -1429,7 +1429,8 @@
+@@ -1442,7 +1442,8 @@
                            shared library versioning (aka "SONAME") variant to
                            provide on AIX, [default=aix].
    --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
@@ -91,7 +91,7 @@ Jürgen Buchmüller <pullmoll@t-online.de>
                            compiler's sysroot if not specified).
  
  Some influential environment variables:
-@@ -6275,29 +6276,29 @@
+@@ -6397,29 +6398,29 @@
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
  $as_echo_n "checking for sysroot... " >&6; }
  
@@ -116,8 +116,8 @@ Jürgen Buchmüller <pullmoll@t-online.de>
     fi
     ;; #(
   /*)
--   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
-+   lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"`
+-   lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"`
++   lt_sysroot=`echo "$with_libtool_sysroot" | $SED -e "$sed_quote_subst"`
     ;; #(
   no|'')
     ;; #(
@@ -243,14 +243,14 @@ Jürgen Buchmüller <pullmoll@t-online.de>
  ]])
 --- a/m4/libtool.m4	2015-01-20 17:15:19.000000000 +0100
 +++ b/m4/libtool.m4	2015-10-20 15:40:04.020631813 +0200
-@@ -1245,29 +1245,29 @@
- # _LT_WITH_SYSROOT
+@@ -1243,29 +1243,29 @@
  # ----------------
  AC_DEFUN([_LT_WITH_SYSROOT],
--[AC_MSG_CHECKING([for sysroot])
+ [m4_require([_LT_DECL_SED])dnl
+-AC_MSG_CHECKING([for sysroot])
 -AC_ARG_WITH([sysroot],
 -[AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@],
-+[AC_MSG_CHECKING([for libtool-sysroot])
++AC_MSG_CHECKING([for libtool-sysroot])
 +AC_ARG_WITH([libtool-sysroot],
 +[AS_HELP_STRING([--with-libtool-sysroot@<:@=DIR@:>@],
    [Search for dependent libraries within DIR (or the compiler's sysroot
@@ -269,8 +269,8 @@ Jürgen Buchmüller <pullmoll@t-online.de>
     fi
     ;; #(
   /*)
--   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
-+   lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"`
+-   lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"`
++   lt_sysroot=`echo "$with_libtool_sysroot" | $SED -e "$sed_quote_subst"`
     ;; #(
   no|'')
     ;; #(
diff --git a/srcpkgs/libtool/template b/srcpkgs/libtool/template
index b9972df70341..08e35d466a44 100644
--- a/srcpkgs/libtool/template
+++ b/srcpkgs/libtool/template
@@ -1,7 +1,7 @@
 # Template file for 'libtool'
 pkgname=libtool
-version=2.4.6
-revision=6
+version=2.4.7
+revision=1
 build_style=gnu-configure
 hostmakedepends="texinfo perl automake help2man xz"
 depends="tar sed"
@@ -10,7 +10,7 @@ maintainer="Enno Boland <gottox@voidlinux.org>"
 license="GPL-2.0-or-later"
 homepage="http://www.gnu.org/software/libtool"
 distfiles="${GNU_SITE}/libtool/$pkgname-$version.tar.xz"
-checksum=7c87a8c2c8c0fc9cd5019e402bed4292462d00a718a7cd5f11218153bf28b26f
+checksum=4f7f217f057ce655ff22559ad221a0fd8ef84ad1fc5fcb6990cecc333aa1635d
 
 pre_configure() {
 	touch aclocal.m4 libltdl/aclocal.m4 Makefile.am libltdl/Makefile.am Makefile.in libltdl/Makefile.in

From be75af2647f4e539b2e90c9e6025980a8da09418 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 17:20:16 -0700
Subject: [PATCH 04/31] libiberty-devel: update to 20220713.

---
 srcpkgs/libiberty-devel/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/libiberty-devel/template b/srcpkgs/libiberty-devel/template
index 1a4e1ca3d594..b04268908c2e 100644
--- a/srcpkgs/libiberty-devel/template
+++ b/srcpkgs/libiberty-devel/template
@@ -1,6 +1,6 @@
 # Template file for 'libiberty-devel'
 pkgname=libiberty-devel
-version=20210106
+version=20220713
 revision=1
 wrksrc=libiberty-${version}
 build_wrksrc=libiberty
@@ -11,7 +11,7 @@ maintainer="q66 <daniel@octaforge.org>"
 license="GPL-3.0-or-later"
 homepage="http://gcc.gnu.org/"
 distfiles="http://deb.debian.org/debian/pool/main/libi/libiberty/libiberty_${version}.orig.tar.xz"
-checksum=9df153d69914c0f5a9145e0abbb248e72feebab6777c712a30f1c3b8c19047d4
+checksum=b59050f48c8a0f9c9e6fba5d17c7a4f11d1329de0c0dca7331b767a6d2bbe8d9
 conflicts="binutils-devel<=2.35.1_3"
 
 CFLAGS="-fPIC"

From c2c766aabce1472cea4d979dc86d631ec9aa52b9 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 23:31:45 -0700
Subject: [PATCH 05/31] glibc: update to 2.36.

---
 common/shlibs                                 |  60 ++--
 .../glibc/patches/glibc-c-utf8-locale.patch   | 286 ------------------
 srcpkgs/glibc/template                        |  62 ++--
 3 files changed, 55 insertions(+), 353 deletions(-)
 delete mode 100644 srcpkgs/glibc/patches/glibc-c-utf8-locale.patch

diff --git a/common/shlibs b/common/shlibs
index c6400b566966..65f4d1b62b61 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -17,38 +17,38 @@
 # one (order top->bottom) is preferred over the next ones.
 #
 libc.so musl-1.1.24_7
-libc.so.6 glibc-2.32_1
-libm.so.6 glibc-2.32_1
-libpthread.so.0 glibc-2.32_1
-librt.so.1 glibc-2.32_1
-libdl.so.2 glibc-2.32_1
-ld-linux-x86-64.so.2 glibc-2.32_1 x86_64
-ld-linux.so.2 glibc-2.32_1 i686
-ld-linux.so.3 glibc-2.32_1 armv5tel
-ld-linux-aarch64.so.1 glibc-2.32_1 aarch64
-ld64.so.2 glibc-2.32_1 ppc64
-ld.so.1 glibc-2.32_1 mips
-ld.so.1 glibc-2.32_1 ppc
-ld-linux-armhf.so.3 glibc-2.32_1
-libresolv.so.2 glibc-2.32_1
-libanl.so.1 glibc-2.32_1
-libthread_db.so.1 glibc-2.32_1
-libutil.so.1 glibc-2.32_1
-libnsl.so.1 glibc-2.32_1
-libnss_db.so.2 glibc-2.32_1
-libnss_files.so.2 glibc-2.32_1
-libnss_compat.so.2 glibc-2.32_1
-libnss_dns.so.2 glibc-2.32_1
-libnss_hesiod.so.2 glibc-2.32_1
-libcrypt.so.1 glibc-2.32_1
-libBrokenLocale.so.1 glibc-2.32_1
+libc.so.6 glibc-2.36_1
+libm.so.6 glibc-2.36_1
+libpthread.so.0 glibc-2.36_1
+librt.so.1 glibc-2.36_1
+libdl.so.2 glibc-2.36_1
+ld-linux-x86-64.so.2 glibc-2.36_1 x86_64
+ld-linux.so.2 glibc-2.36_1 i686
+ld-linux.so.3 glibc-2.36_1 armv5tel
+ld-linux-aarch64.so.1 glibc-2.36_1 aarch64
+ld64.so.2 glibc-2.36_1 ppc64
+ld.so.1 glibc-2.36_1 mips
+ld.so.1 glibc-2.36_1 ppc
+ld-linux-armhf.so.3 glibc-2.36_1
+libresolv.so.2 glibc-2.36_1
+libanl.so.1 glibc-2.36_1
+libthread_db.so.1 glibc-2.36_1
+libutil.so.1 glibc-2.36_1
+libnsl.so.1 glibc-2.36_1
+libnss_db.so.2 glibc-2.36_1
+libnss_files.so.2 glibc-2.36_1
+libnss_compat.so.2 glibc-2.36_1
+libnss_dns.so.2 glibc-2.36_1
+libnss_hesiod.so.2 glibc-2.36_1
+libcrypt.so.1 glibc-2.36_1
+libBrokenLocale.so.1 glibc-2.36_1
 libSimGearCore.so.2020.3.13 simgear-2020.3.13_1
 libSimGearScene.so.2020.3.13 simgear-2020.3.13_1
-libmemusage.so glibc-2.32_1
-libSegFault.so glibc-2.32_1
-libpcprofile.so glibc-2.32_1
-libcidn.so.1 glibc-2.32_1
-libmvec.so.1 glibc-2.32_1
+libmemusage.so glibc-2.36_1
+libSegFault.so glibc-2.36_1
+libpcprofile.so glibc-2.36_1
+libcidn.so.1 glibc-2.36_1
+libmvec.so.1 glibc-2.36_1
 libcddgmp.so.0 cddlib-0.94m_1
 libcdd.so.0 cddlib-0.94m_1
 libz.so.1 zlib-1.2.3_1
diff --git a/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch b/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch
deleted file mode 100644
index 7215e1558b62..000000000000
--- a/srcpkgs/glibc/patches/glibc-c-utf8-locale.patch
+++ /dev/null
@@ -1,286 +0,0 @@
-Short description: Add C.UTF-8 support.
-Author(s): Fedora glibc team <glibc@lists.fedoraproject.org>
-Origin: PATCH
-Upstream status: not-submitted
-
-This patch needs to upstream as part of Carlos O'Donell
-<carlos@redhat.com>'s work on enabling upstream C.UTF-8 support. This
-work is currently blocked on cleaning up the test results to prove that
-full code-point sorting is working as intended.
-
-Note that this patch does not provide full code-point sorting as
-expected.
-
-This patch needs to upstream as soon as possible since it would be nice
-to have this in F29 and fixed.
-
-From 2eda7b462b415105f5a05c1323372d4e39d46439 Mon Sep 17 00:00:00 2001
-From: Mike FABIAN <mfabian@redhat.com>
-Date: Mon, 10 Aug 2015 15:58:12 +0200
-Subject: [PATCH] Add a C.UTF-8 locale
-
----
- localedata/SUPPORTED |   1 +
- localedata/locales/C | 238 +++++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 239 insertions(+)
- create mode 100644 localedata/locales/C
-
-diff --git a/localedata/SUPPORTED b/localedata/SUPPORTED
-index 8ca023e..2a78391 100644
---- a/localedata/SUPPORTED
-+++ b/localedata/SUPPORTED
-@@ -1,6 +1,7 @@
- # This file names the currently supported and somewhat tested locales.
- # If you have any additions please file a glibc bug report.
- SUPPORTED-LOCALES=\
-+C.UTF-8/UTF-8 \
- aa_DJ.UTF-8/UTF-8 \
- aa_DJ/ISO-8859-1 \
- aa_ER/UTF-8 \
-diff --git a/localedata/locales/C b/localedata/locales/C
-new file mode 100644
-index 0000000..fdf460e
---- /dev/null
-+++ b/localedata/locales/C
-@@ -0,0 +1,238 @@
-+escape_char /
-+comment_char %
-+% Locale for C locale in UTF-8
-+
-+LC_IDENTIFICATION
-+title      "C locale"
-+source     ""
-+address    ""
-+contact    ""
-+email      "mfabian@redhat.com"
-+tel        ""
-+fax        ""
-+language   "C"
-+territory  ""
-+revision   "1.0"
-+date       "2015-08-10"
-+%
-+category  "i18n:2012";LC_IDENTIFICATION
-+category  "i18n:2012";LC_CTYPE
-+category  "i18n:2012";LC_COLLATE
-+category  "i18n:2012";LC_TIME
-+category  "i18n:2012";LC_NUMERIC
-+category  "i18n:2012";LC_MONETARY
-+category  "i18n:2012";LC_MESSAGES
-+category  "i18n:2012";LC_PAPER
-+category  "i18n:2012";LC_NAME
-+category  "i18n:2012";LC_ADDRESS
-+category  "i18n:2012";LC_TELEPHONE
-+category  "i18n:2012";LC_MEASUREMENT
-+END LC_IDENTIFICATION
-+
-+LC_CTYPE
-+copy "i18n"
-+
-+translit_start
-+include "translit_combining";""
-+translit_end
-+
-+END LC_CTYPE
-+
-+LC_COLLATE
-+order_start forward
-+<U0000>
-+..
-+<UFFFF>
-+<U10000>
-+..
-+<U1FFFF>
-+<U20000>
-+..
-+<U2FFFF>
-+<UE0000>
-+..
-+<UEFFFF>
-+<UF0000>
-+..
-+<UFFFFF>
-+<U100000>
-+..
-+<U10FFFF>
-+UNDEFINED
-+order_end
-+END LC_COLLATE
-+
-+LC_MONETARY
-+% This is the 14652 i18n fdcc-set definition for
-+% the LC_MONETARY category
-+% (except for the int_curr_symbol and currency_symbol, they are empty in
-+% the 14652 i18n fdcc-set definition and also empty in
-+% glibc/locale/C-monetary.c. But localedef complains in that case).
-+%
-+% Using "USD" for int_curr_symbol. But maybe "XXX" would be better?
-+% XXX is "No currency" (https://en.wikipedia.org/wiki/ISO_4217)
-+int_curr_symbol     "<U0055><U0053><U0044><U0020>"
-+% Using "$" for currency_symbol. But maybe <U00A4> would be better?
-+% U+00A4 is the "generic currency symbol"
-+% (https://en.wikipedia.org/wiki/Currency_sign_%28typography%29)
-+currency_symbol     "<U0024>"
-+mon_decimal_point   "<U002E>"
-+mon_thousands_sep   ""
-+mon_grouping        -1
-+positive_sign       ""
-+negative_sign       "<U002D>"
-+int_frac_digits     -1
-+frac_digits         -1
-+p_cs_precedes       -1
-+int_p_sep_by_space  -1
-+p_sep_by_space      -1
-+n_cs_precedes       -1
-+int_n_sep_by_space  -1
-+n_sep_by_space      -1
-+p_sign_posn         -1
-+n_sign_posn         -1
-+%
-+END LC_MONETARY
-+
-+LC_NUMERIC
-+% This is the POSIX Locale definition for
-+% the LC_NUMERIC category.
-+%
-+decimal_point   "<U002E>"
-+thousands_sep   ""
-+grouping        -1
-+END LC_NUMERIC
-+
-+LC_TIME
-+% This is the POSIX Locale definition for
-+% the LC_TIME category.
-+%
-+% Abbreviated weekday names (%a)
-+abday       "<U0053><U0075><U006E>";"<U004D><U006F><U006E>";/
-+            "<U0054><U0075><U0065>";"<U0057><U0065><U0064>";/
-+            "<U0054><U0068><U0075>";"<U0046><U0072><U0069>";/
-+            "<U0053><U0061><U0074>"
-+
-+% Full weekday names (%A)
-+day         "<U0053><U0075><U006E><U0064><U0061><U0079>";/
-+            "<U004D><U006F><U006E><U0064><U0061><U0079>";/
-+            "<U0054><U0075><U0065><U0073><U0064><U0061><U0079>";/
-+            "<U0057><U0065><U0064><U006E><U0065><U0073><U0064><U0061><U0079>";/
-+            "<U0054><U0068><U0075><U0072><U0073><U0064><U0061><U0079>";/
-+            "<U0046><U0072><U0069><U0064><U0061><U0079>";/
-+            "<U0053><U0061><U0074><U0075><U0072><U0064><U0061><U0079>"
-+
-+% Abbreviated month names (%b)
-+abmon       "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
-+            "<U004D><U0061><U0072>";"<U0041><U0070><U0072>";/
-+            "<U004D><U0061><U0079>";"<U004A><U0075><U006E>";/
-+            "<U004A><U0075><U006C>";"<U0041><U0075><U0067>";/
-+            "<U0053><U0065><U0070>";"<U004F><U0063><U0074>";/
-+            "<U004E><U006F><U0076>";"<U0044><U0065><U0063>"
-+
-+% Full month names (%B)
-+mon         "<U004A><U0061><U006E><U0075><U0061><U0072><U0079>";/
-+            "<U0046><U0065><U0062><U0072><U0075><U0061><U0072><U0079>";/
-+            "<U004D><U0061><U0072><U0063><U0068>";/
-+            "<U0041><U0070><U0072><U0069><U006C>";/
-+            "<U004D><U0061><U0079>";/
-+            "<U004A><U0075><U006E><U0065>";/
-+            "<U004A><U0075><U006C><U0079>";/
-+            "<U0041><U0075><U0067><U0075><U0073><U0074>";/
-+            "<U0053><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";/
-+            "<U004F><U0063><U0074><U006F><U0062><U0065><U0072>";/
-+            "<U004E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/
-+            "<U0044><U0065><U0063><U0065><U006D><U0062><U0065><U0072>"
-+
-+% Week description, consists of three fields:
-+% 1. Number of days in a week.
-+% 2. Gregorian date that is a first weekday (19971130 for Sunday, 19971201 for Monday).
-+% 3. The weekday number to be contained in the first week of the year.
-+%
-+% ISO 8601 conforming applications should use the values 7, 19971201 (a
-+% Monday), and 4 (Thursday), respectively.
-+week    7;19971201;4
-+first_weekday	1
-+first_workday	1
-+
-+% Appropriate date and time representation (%c)
-+%	"%a %b %e %H:%M:%S %Y"
-+d_t_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0059>"
-+
-+% Appropriate date representation (%x)
-+%	"%m/%d/%y"
-+d_fmt   "<U0025><U006D><U002F><U0025><U0064><U002F><U0025><U0079>"
-+
-+% Appropriate time representation (%X)
-+%	"%H:%M:%S"
-+t_fmt   "<U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053>"
-+
-+% Appropriate AM/PM time representation (%r)
-+%	"%I:%M:%S %p"
-+t_fmt_ampm "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0070>"
-+
-+% Equivalent of AM/PM (%p)      "AM"/"PM"
-+%
-+am_pm	"<U0041><U004D>";"<U0050><U004D>"
-+
-+% Appropriate date representation (date(1))   "%a %b %e %H:%M:%S %Z %Y"
-+date_fmt	"<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U005A><U0020><U0025><U0059>"
-+END LC_TIME
-+
-+LC_MESSAGES
-+% This is the POSIX Locale definition for
-+% the LC_NUMERIC category.
-+%
-+yesexpr "<U005E><U005B><U0079><U0059><U005D>"
-+noexpr  "<U005E><U005B><U006E><U004E><U005D>"
-+yesstr  "<U0059><U0065><U0073>"
-+nostr   "<U004E><U006F>"
-+END LC_MESSAGES
-+
-+LC_PAPER
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_PAPER category.
-+% (A4 paper, this is also used in the built in C/POSIX
-+% locale in glibc/locale/C-paper.c)
-+height   297
-+width    210
-+END LC_PAPER
-+
-+LC_NAME
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_NAME category.
-+% "%p%t%g%t%m%t%f"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-name.c)
-+name_fmt    "<U0025><U0070><U0025><U0074><U0025><U0067><U0025><U0074>/
-+<U0025><U006D><U0025><U0074><U0025><U0066>"
-+END LC_NAME
-+
-+LC_ADDRESS
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_ADDRESS category.
-+% "%a%N%f%N%d%N%b%N%s %h %e %r%N%C-%z %T%N%c%N"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-address.c)
-+postal_fmt    "<U0025><U0061><U0025><U004E><U0025><U0066><U0025><U004E>/
-+<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
-+<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
-+<U004E><U0025><U0043><U002D><U0025><U007A><U0020><U0025><U0054><U0025>/
-+<U004E><U0025><U0063><U0025><U004E>"
-+END LC_ADDRESS
-+
-+LC_TELEPHONE
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_TELEPHONE category.
-+% "+%c %a %l"
-+tel_int_fmt    "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025>/
-+<U006C>"
-+% (also used in the built in C/POSIX locale in glibc/locale/C-telephone.c)
-+END LC_TELEPHONE
-+
-+LC_MEASUREMENT
-+% This is the ISO/IEC 14652 "i18n" definition for
-+% the LC_MEASUREMENT category.
-+% (same as in the built in C/POSIX locale in glibc/locale/C-measurement.c)
-+%metric
-+measurement    1
-+END LC_MEASUREMENT
-+
--- 
-2.4.3
-
diff --git a/srcpkgs/glibc/template b/srcpkgs/glibc/template
index c62a4d2aedf1..139aab865864 100644
--- a/srcpkgs/glibc/template
+++ b/srcpkgs/glibc/template
@@ -1,14 +1,14 @@
 # Template file for 'glibc'
 pkgname=glibc
-version=2.32
-revision=2
+version=2.36
+revision=1
 bootstrap=yes
 short_desc="GNU C library"
 maintainer="Enno Boland <gottox@voidlinux.org>"
 license="GPL-2.0-or-later, LGPL-2.1-or-later, BSD-3-Clause"
 homepage="http://www.gnu.org/software/libc"
 distfiles="${GNU_SITE}/glibc/glibc-${version}.tar.xz"
-checksum=1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum=1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
 # Do not strip these files, objcopy errors out.
 nostrip_files="
 	XBS5_ILP32_OFFBIG
@@ -20,27 +20,28 @@ nostrip_files="
 	POSIX_V6_LP64_OFF64
 	POSIX_V7_LP64_OFF64
 	XBS5_LP64_OFF64
-	ld-${version}.so
-	libdl-${version}.so
-	libanl-${version}.so
-	libcidn-${version}.so
-	libresolv-${version}.so
-	libcrypt-${version}.so
-	libpthread-${version}.so
-	libm-${version}.so
-	libutil-${version}.so
-	libthread_db-1.0.so
-	librt-${version}.so
-	libnsl-${version}.so
-	libc-${version}.so
-	libBrokenLocale-${version}.so
-	libnss_compat-${version}.so
-	libnss_db-${version}.so
-	libnss_dns-${version}.so
-	libnss_files-${version}.so
-	libnss_hesiod-${version}.so
-	libnss_nisplus-${version}.so
-	libnss_nis-${version}.so"
+	ld-linux-x86-64.so.2
+	ld-linux.so.2
+	ld-linux.so.3
+	ld-linux-aarch64.so.1
+	ld64.so.2
+	ld.so.1
+	ld-linux-armhf.so.3
+	libresolv.so.2
+	libcrypt.so.1
+	libm.so.6
+	libthread_db.so.1
+	libnsl.so.1
+	libc.so.6
+	libc_malloc_debug.so.0
+	libmemusage.so
+	libmvec.so.1
+	libBrokenLocale.so.1
+	libnss_compat.so.2
+	libnss_db.so.2
+	libnss_dns.so.2
+	libnss_files.so.2
+	libnss_hesiod.so.2"
 
 conf_files="
 	/etc/rpc
@@ -54,7 +55,6 @@ lib32files="/usr/lib/gconv/gconv-modules"
 lib32symlinks="ld-linux.so.2"
 # There's no point in building this for musl.
 archs="~*-musl"
-nopie=yes
 
 do_configure() {
 	mkdir build
@@ -163,18 +163,6 @@ do_install() {
 	rm -f ${DESTDIR}/usr/bin/z{dump,ic}
 
 	mv ${DESTDIR}/usr/sbin/* ${DESTDIR}/usr/bin
-
-	# Create xbps.d(5) arch override file for 32-bit architectures
-	# 32-bit userlands may be used with 64-bit kernels and then
-	# xbps will report an incorrect architecture by default
-	case "$XBPS_TARGET_MACHINE" in
-		i686|ppc|ppcle|armv*)
-			vmkdir usr/share/xbps.d
-			echo "architecture=${XBPS_TARGET_MACHINE}" > \
-				${DESTDIR}/usr/share/xbps.d/arch-32bit.conf
-			;;
-		*) ;;
-	esac
 }
 
 glibc-devel_package() {

From f8e0bd641b5216cecadb58d19e23c96f1b3745aa Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Sun, 14 Aug 2022 19:29:36 -0700
Subject: [PATCH 06/31] build-style/void-cross: Update flags for gcc12 and
 glibc 2.36

gcov can't be built without libc:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100289

glibc 2.35 ane newer uses -static-pie by default:
https://sourceware.org/pipermail/glibc-cvs/2021q4/075916.html
---
 common/build-style/void-cross.sh | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/common/build-style/void-cross.sh b/common/build-style/void-cross.sh
index 92f03f8130f5..24d02865b164 100644
--- a/common/build-style/void-cross.sh
+++ b/common/build-style/void-cross.sh
@@ -132,6 +132,7 @@ _void_cross_build_bootstrap_gcc() {
 		--disable-libssp \
 		--disable-libitm \
 		--disable-libatomic \
+		--disable-gcov \
 		--disable-threads \
 		--disable-sjlj-exceptions \
 		--enable-languages=c \
@@ -246,6 +247,15 @@ _void_cross_build_glibc() {
 	local tgt=$1
 	local ver=$2
 
+	# glibc 2.35 and newer uses -static-pie by default
+	# which does not work with -no-pie.
+	local oldcflags="${CFLAGS}"
+	local oldcxxflags="${CXXFLAGS}"
+	local oldldflags="${LDFLAGS}"
+	CFLAGS="${CFLAGS//"-fno-PIE"/}"
+	CXXFLAGS="${CXXFLAGS//"-fno-PIE"/}"
+	LDFLAGS="${LDFLAGS//"-no-pie"/}"
+
 	msg_normal "Building glibc for ${tgt}\n"
 
 	mkdir -p ${wrksrc}/glibc_build
@@ -279,6 +289,9 @@ _void_cross_build_glibc() {
 	make ${makejobs}
 	make install_root=${wrksrc}/build_root/usr/${tgt} install
 
+	CFLAGS="${oldcflags}"
+	CXXFLAGS="${oldcxxflags}"
+	LDFLAGS="${oldldflags}"
 	touch ${wrksrc}/.glibc_build_done
 }
 

From e988fa9835b5cd7d348c55edab39650dafc5aa7a Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 20:08:52 -0700
Subject: [PATCH 07/31] openssh: suppress werror on gcc12

---
 srcpkgs/openssh/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/openssh/template b/srcpkgs/openssh/template
index 02a2dec35f42..6e8e343a9dca 100644
--- a/srcpkgs/openssh/template
+++ b/srcpkgs/openssh/template
@@ -40,7 +40,7 @@ if [ "$build_option_ldns" -a -z "$build_option_ssl" ]; then
 	broken="option 'ldns' requires option 'ssl'"
 fi
 
-CFLAGS="-Wno-format-truncation -Wno-stringop-truncation"
+CFLAGS="-Wno-format-truncation -Wno-stringop-truncation -Wno-error=maybe-uninitialized"
 
 case $XBPS_TARGET_MACHINE in
 	i686-musl)

From 407b3fd8dba1c57cf3ed045c7e4442e82527691d Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Fri, 12 Aug 2022 20:09:31 -0700
Subject: [PATCH 08/31] linux5.18: update dotconfigs for gcc12

---
 srcpkgs/linux5.18/files/x86_64-dotconfig | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/srcpkgs/linux5.18/files/x86_64-dotconfig b/srcpkgs/linux5.18/files/x86_64-dotconfig
index 4e73a3195d40..ea6204868e23 100644
--- a/srcpkgs/linux5.18/files/x86_64-dotconfig
+++ b/srcpkgs/linux5.18/files/x86_64-dotconfig
@@ -512,6 +512,7 @@ CONFIG_RETHUNK=y
 CONFIG_CPU_UNRET_ENTRY=y
 CONFIG_CPU_IBPB_ENTRY=y
 CONFIG_CPU_IBRS_ENTRY=y
+CONFIG_SLS=y
 CONFIG_ARCH_HAS_ADD_PAGES=y
 CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y
 
@@ -10060,8 +10061,11 @@ CONFIG_LSM="yama,loadpin,safesetid,integrity"
 # Memory initialization
 #
 CONFIG_INIT_STACK_NONE=y
+# CONFIG_INIT_STACK_ALL_PATTERN is not set
+# CONFIG_INIT_STACK_ALL_ZERO is not set
 CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
 # CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
+# CONFIG_ZERO_CALL_USED_REGS is not set
 # end of Memory initialization
 # end of Kernel hardening options
 # end of Security options
@@ -10538,6 +10542,7 @@ CONFIG_HAVE_ARCH_KGDB=y
 CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
 # CONFIG_UBSAN is not set
 CONFIG_HAVE_ARCH_KCSAN=y
+# CONFIG_KCSAN is not set
 # end of Generic Kernel Debugging Instruments
 
 #

From aae067274e632d0ae18cd8cf46f47e24d11d1554 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:54 -0700
Subject: [PATCH 09/31] cross-aarch64-linux-gnu: update to gcc 12.1.0.

---
 srcpkgs/cross-aarch64-linux-gnu/template | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/srcpkgs/cross-aarch64-linux-gnu/template b/srcpkgs/cross-aarch64-linux-gnu/template
index 18de21aa3ccd..cb7ae97e7efe 100644
--- a/srcpkgs/cross-aarch64-linux-gnu/template
+++ b/srcpkgs/cross-aarch64-linux-gnu/template
@@ -1,10 +1,10 @@
 # Template file for 'cross-aarch64-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.1.0
+_glibc_version=2.36
 _linux_version=5.10.4
 pkgname=cross-aarch64-linux-gnu
-version=0.34
+version=0.35
 revision=1
 build_style=void-cross
 configure_args="--with-arch=armv8-a"
@@ -17,12 +17,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
 homepage="https://www.voidlinux.org/"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
  ${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
 nocross=yes
 

From 80ca04e163990ed72378b1dd8995bb8c142ee8b9 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:54 -0700
Subject: [PATCH 10/31] cross-aarch64-linux-musl: update to gcc 12.1.0.

---
 srcpkgs/cross-aarch64-linux-musl/template | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/srcpkgs/cross-aarch64-linux-musl/template b/srcpkgs/cross-aarch64-linux-musl/template
index bb6a770afb79..4fa950f334d4 100644
--- a/srcpkgs/cross-aarch64-linux-musl/template
+++ b/srcpkgs/cross-aarch64-linux-musl/template
@@ -1,12 +1,12 @@
 # Template file for 'cross-aarch64-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.1.0
 _musl_version=1.1.24
 _linux_version=5.10.4
 _libucontext_version=1.0
 pkgname=cross-aarch64-linux-musl
-version=0.34
-revision=4
+version=0.35
+revision=1
 build_style=void-cross
 configure_args="--with-arch=armv8-a"
 hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
@@ -18,12 +18,12 @@ homepage="https://www.voidlinux.org/"
 license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
  https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
  https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
  1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
  23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"

From 705d5d10eaf9b3f8c55690169edab6b9d26211af Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:54 -0700
Subject: [PATCH 11/31] cross-arm-linux-gnueabi: update to gcc 12.1.0.

---
 srcpkgs/cross-arm-linux-gnueabi/template | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/srcpkgs/cross-arm-linux-gnueabi/template b/srcpkgs/cross-arm-linux-gnueabi/template
index a3aba72aa93a..194c0ab774b7 100644
--- a/srcpkgs/cross-arm-linux-gnueabi/template
+++ b/srcpkgs/cross-arm-linux-gnueabi/template
@@ -1,10 +1,10 @@
 # Template file for 'cross-arm-linux-gnueabi'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.1.0
+_glibc_version=2.36
 _linux_version=5.10.4
 pkgname=cross-arm-linux-gnueabi
-version=0.34
+version=0.35
 revision=1
 build_style=void-cross
 configure_args="--with-arch=armv5te --with-float=soft"
@@ -17,12 +17,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
 homepage="https://www.voidlinux.org/"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
  ${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
 nocross=yes
 

From f11f02cceb2db3c3d1b3c37271f397aa2dfb6993 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:55 -0700
Subject: [PATCH 12/31] cross-arm-linux-gnueabihf: update to gcc 12.1.0.

---
 srcpkgs/cross-arm-linux-gnueabihf/template | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/srcpkgs/cross-arm-linux-gnueabihf/template b/srcpkgs/cross-arm-linux-gnueabihf/template
index d9ab86cf2ecc..3f3242b85b07 100644
--- a/srcpkgs/cross-arm-linux-gnueabihf/template
+++ b/srcpkgs/cross-arm-linux-gnueabihf/template
@@ -1,10 +1,10 @@
 # Template file for 'cross-arm-linux-gnueabihf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.1.0
+_glibc_version=2.36
 _linux_version=5.10.4
 pkgname=cross-arm-linux-gnueabihf
-version=0.34
+version=0.35
 revision=1
 build_style=void-cross
 configure_args="--with-arch=armv6 --with-fpu=vfp --with-float=hard"
@@ -17,12 +17,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
 homepage="https://www.voidlinux.org/"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
  ${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
 nocross=yes
 

From 9ed38a7006eb817c196096d398eb04e6fcb4567b Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:55 -0700
Subject: [PATCH 13/31] cross-arm-linux-musleabi: update to gcc 12.1.0.

---
 srcpkgs/cross-arm-linux-musleabi/template | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/srcpkgs/cross-arm-linux-musleabi/template b/srcpkgs/cross-arm-linux-musleabi/template
index 6692d891e1bd..b0cdade60a6d 100644
--- a/srcpkgs/cross-arm-linux-musleabi/template
+++ b/srcpkgs/cross-arm-linux-musleabi/template
@@ -1,12 +1,12 @@
 # Template file for 'cross-arm-linux-musleabi'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.1.0
 _musl_version=1.1.24
 _linux_version=5.10.4
 _libucontext_version=1.0
 pkgname=cross-arm-linux-musleabi
-version=0.34
-revision=4
+version=0.35
+revision=1
 build_style=void-cross
 configure_args="--with-arch=armv5te --with-float=soft"
 hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
@@ -18,12 +18,12 @@ homepage="https://www.voidlinux.org/"
 license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
  https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
  https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
  1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
  23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"

From e4e6df8cedcd9df54c58d334d9bddf255acae7f1 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:55 -0700
Subject: [PATCH 14/31] cross-arm-linux-musleabihf: update to gcc 12.1.0.

---
 srcpkgs/cross-arm-linux-musleabihf/template | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/srcpkgs/cross-arm-linux-musleabihf/template b/srcpkgs/cross-arm-linux-musleabihf/template
index bb62bd5ebc55..1924be24d483 100644
--- a/srcpkgs/cross-arm-linux-musleabihf/template
+++ b/srcpkgs/cross-arm-linux-musleabihf/template
@@ -1,12 +1,12 @@
 # Template file for 'cross-arm-linux-musleabihf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.1.0
 _musl_version=1.1.24
 _linux_version=5.10.4
 _libucontext_version=1.0
 pkgname=cross-arm-linux-musleabihf
-version=0.34
-revision=4
+version=0.35
+revision=1
 build_style=void-cross
 configure_args="--with-arch=armv6 --with-fpu=vfp --with-float=hard"
 hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
@@ -18,12 +18,12 @@ homepage="https://www.voidlinux.org/"
 license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
  https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
  https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
  1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
  23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"

From 7afca911df0f1c59c488389623f233a864aa703b Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:55 -0700
Subject: [PATCH 15/31] cross-armv7l-linux-gnueabihf: update to gcc 12.1.0.

---
 srcpkgs/cross-armv7l-linux-gnueabihf/template | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/srcpkgs/cross-armv7l-linux-gnueabihf/template b/srcpkgs/cross-armv7l-linux-gnueabihf/template
index 30c89b6294ef..a7997d6db937 100644
--- a/srcpkgs/cross-armv7l-linux-gnueabihf/template
+++ b/srcpkgs/cross-armv7l-linux-gnueabihf/template
@@ -1,10 +1,10 @@
 # Template file for 'cross-armv7l-linux-gnueabihf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.1.0
+_glibc_version=2.36
 _linux_version=5.10.4
 pkgname=cross-armv7l-linux-gnueabihf
-version=0.34
+version=0.35
 revision=1
 build_style=void-cross
 configure_args="--with-arch=armv7-a --with-fpu=vfpv3 --with-float=hard"
@@ -17,12 +17,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
 homepage="https://www.voidlinux.org/"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
  ${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
 nocross=yes
 

From f4276b1cf752a503c98d0bfed9c0b0234cf13d07 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:55 -0700
Subject: [PATCH 16/31] cross-armv7l-linux-musleabihf: update to gcc 12.1.0.

---
 srcpkgs/cross-armv7l-linux-musleabihf/template | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/srcpkgs/cross-armv7l-linux-musleabihf/template b/srcpkgs/cross-armv7l-linux-musleabihf/template
index 0a588cdf1a58..aaa7040fbfef 100644
--- a/srcpkgs/cross-armv7l-linux-musleabihf/template
+++ b/srcpkgs/cross-armv7l-linux-musleabihf/template
@@ -1,12 +1,12 @@
 # Template file for 'cross-armv7l-linux-musleabihf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.1.0
 _musl_version=1.1.24
 _linux_version=5.10.4
 _libucontext_version=1.0
 pkgname=cross-armv7l-linux-musleabihf
-version=0.34
-revision=4
+version=0.35
+revision=1
 build_style=void-cross
 configure_args="--with-arch=armv7-a --with-fpu=vfpv3 --with-float=hard"
 hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
@@ -18,12 +18,12 @@ homepage="https://www.voidlinux.org/"
 license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
  https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz
  https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
  1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec
  23714e99a87f6dea82e8a073c526325161dd65462459820b16a6162be91955bb"

From 4c7e5ae9fe15df6e027fdf16c6de2b96890bfc62 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:55 -0700
Subject: [PATCH 17/31] cross-i686-pc-linux-gnu: update to gcc 12.1.0.

---
 srcpkgs/cross-i686-pc-linux-gnu/template | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/srcpkgs/cross-i686-pc-linux-gnu/template b/srcpkgs/cross-i686-pc-linux-gnu/template
index 263a43f7a7b8..765cf675e95c 100644
--- a/srcpkgs/cross-i686-pc-linux-gnu/template
+++ b/srcpkgs/cross-i686-pc-linux-gnu/template
@@ -1,10 +1,10 @@
 # Template file for 'cross-i686-pc-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.1.0
+_glibc_version=2.36
 _linux_version=5.10.4
 pkgname=cross-i686-pc-linux-gnu
-version=0.34
+version=0.35
 revision=1
 build_style=void-cross
 hostmakedepends="texinfo tar gcc-objc gcc-go flex perl python3"
@@ -16,12 +16,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
 homepage="https://www.voidlinux.org/"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
  ${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
 nocross=yes
 

From 1154f6a908838b6cd284e7b6915978288c93d653 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:55 -0700
Subject: [PATCH 18/31] cross-mips-linux-musl: update to gcc 12.1.0.

---
 srcpkgs/cross-mips-linux-musl/template | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/srcpkgs/cross-mips-linux-musl/template b/srcpkgs/cross-mips-linux-musl/template
index 9b5d5819b1a0..26928ba9442d 100644
--- a/srcpkgs/cross-mips-linux-musl/template
+++ b/srcpkgs/cross-mips-linux-musl/template
@@ -1,11 +1,11 @@
 # Template file for 'cross-mips-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.1.0
 _musl_version=1.1.24
 _linux_version=5.10.4
 pkgname=cross-mips-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
 build_style=void-cross
 configure_args="--with-arch=mips32r2 --with-float=soft
  --with-linker-hash-style=sysv"
@@ -18,11 +18,11 @@ homepage="https://www.voidlinux.org/"
 license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
- https://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
+ https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
  1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
 nocross=yes

From 287fa9ac02068bd90d9c6b0664f84c11ffce6278 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:55 -0700
Subject: [PATCH 19/31] cross-mips-linux-muslhf: update to gcc 12.1.0.

---
 srcpkgs/cross-mips-linux-muslhf/template | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/srcpkgs/cross-mips-linux-muslhf/template b/srcpkgs/cross-mips-linux-muslhf/template
index d7590af9ec03..fe74faf15d55 100644
--- a/srcpkgs/cross-mips-linux-muslhf/template
+++ b/srcpkgs/cross-mips-linux-muslhf/template
@@ -1,11 +1,11 @@
 # Template file for 'cross-mips-linux-muslhf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.1.0
 _musl_version=1.1.24
 _linux_version=5.10.4
 pkgname=cross-mips-linux-muslhf
-version=0.34
-revision=3
+version=0.35
+revision=1
 build_style=void-cross
 configure_args="--with-arch=mips32r2 --with-float=hard
  --with-linker-hash-style=sysv"
@@ -18,11 +18,11 @@ homepage="https://www.voidlinux.org/"
 license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
- https://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
+ https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
  1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
 nocross=yes

From c651f8559ffb90df9db917bdbcb4c8d7d9a0f0ff Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:55 -0700
Subject: [PATCH 20/31] cross-mipsel-linux-musl: update to gcc 12.1.0.

---
 srcpkgs/cross-mipsel-linux-musl/template | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/srcpkgs/cross-mipsel-linux-musl/template b/srcpkgs/cross-mipsel-linux-musl/template
index 1acba7016dbc..aa74d0b1acc7 100644
--- a/srcpkgs/cross-mipsel-linux-musl/template
+++ b/srcpkgs/cross-mipsel-linux-musl/template
@@ -1,11 +1,11 @@
 # Template file for 'cross-mipsel-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_musl_version=1.1.24
+_binutils_version=2.39
+_gcc_version=12.1.0
+_glibc_version=2.36
 _linux_version=5.10.4
 pkgname=cross-mipsel-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
 build_style=void-cross
 configure_args="--with-arch=mips32r2 --with-float=soft
  --with-linker-hash-style=sysv"
@@ -18,12 +18,12 @@ homepage="https://www.voidlinux.org/"
 license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
- https://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
 nocross=yes
 

From cdf76dcece1b0c6a153182b1e1ad9c5c2c2d94da Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:55 -0700
Subject: [PATCH 21/31] cross-mipsel-linux-muslhf: update to gcc 12.1.0.

---
 srcpkgs/cross-mipsel-linux-muslhf/template | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/srcpkgs/cross-mipsel-linux-muslhf/template b/srcpkgs/cross-mipsel-linux-muslhf/template
index e4a55f028bc4..83ab7f187085 100644
--- a/srcpkgs/cross-mipsel-linux-muslhf/template
+++ b/srcpkgs/cross-mipsel-linux-muslhf/template
@@ -1,11 +1,11 @@
 # Template file for 'cross-mipsel-linux-muslhf'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_musl_version=1.1.24
+_binutils_version=2.39
+_gcc_version=12.1.0
+_glibc_version=2.36
 _linux_version=5.10.4
 pkgname=cross-mipsel-linux-muslhf
-version=0.34
-revision=3
+version=0.35
+revision=1
 build_style=void-cross
 configure_args="--with-arch=mips32r2 --with-float=hard
  --with-linker-hash-style=sysv"
@@ -18,12 +18,12 @@ homepage="https://www.voidlinux.org/"
 license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
- https://www.musl-libc.org/releases/musl-${_musl_version}.tar.gz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
 nocross=yes
 

From eeaddb7ad1b4bea56cc23bf16c72842c51af6065 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:55 -0700
Subject: [PATCH 22/31] cross-powerpc-linux-gnu: update to gcc 12.1.0.

---
 srcpkgs/cross-powerpc-linux-gnu/template | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/srcpkgs/cross-powerpc-linux-gnu/template b/srcpkgs/cross-powerpc-linux-gnu/template
index b97a21d0d72e..3ab1a4ea40fa 100644
--- a/srcpkgs/cross-powerpc-linux-gnu/template
+++ b/srcpkgs/cross-powerpc-linux-gnu/template
@@ -1,10 +1,10 @@
 # Template file for 'cross-powerpc-linux-gnu'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
-_glibc_version=2.32
+_binutils_version=2.39
+_gcc_version=12.1.0
+_glibc_version=2.36
 _linux_version=5.10.4
 pkgname=cross-powerpc-linux-gnu
-version=0.34
+version=0.35
 revision=1
 build_style=void-cross
 configure_args="--enable-secureplt --disable-vtable-verify"
@@ -17,12 +17,12 @@ license="GPL-2.0-or-later, GPL-3.0-or-later, LGPL-2.1-or-later"
 homepage="https://www.voidlinux.org/"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
  ${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
- 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
+ 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
 nocross=yes
 

From 3c95271e8f4116ddd012707086f4fc266d0a1714 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Mon, 15 Aug 2022 01:13:55 -0700
Subject: [PATCH 23/31] cross-powerpc-linux-musl: update to gcc 12.1.0.

---
 srcpkgs/cross-powerpc-linux-musl/template | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/srcpkgs/cross-powerpc-linux-musl/template b/srcpkgs/cross-powerpc-linux-musl/template
index f9b22f0610d3..af5586cacc77 100644
--- a/srcpkgs/cross-powerpc-linux-musl/template
+++ b/srcpkgs/cross-powerpc-linux-musl/template
@@ -1,11 +1,11 @@
 # Template file for 'cross-powerpc-linux-musl'
-_binutils_version=2.35.1
-_gcc_version=10.2.1_pre1
+_binutils_version=2.39
+_gcc_version=12.1.0
 _musl_version=1.1.24
 _linux_version=5.10.4
 pkgname=cross-powerpc-linux-musl
-version=0.34
-revision=3
+version=0.35
+revision=1
 build_style=void-cross
 configure_args="--enable-secureplt --disable-vtable-verify
  --disable-decimal-float"
@@ -18,11 +18,11 @@ homepage="https://www.voidlinux.org/"
 license="GPL-2.0-or-later, GPL-3.0-or-later, MIT"
 distfiles="
  ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz
- https://dev.alpinelinux.org/~nenolod/gcc-${_gcc_version}.tar.xz
+ ${GNU_SITE}/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.xz
  https://musl.libc.org/releases/musl-${_musl_version}.tar.gz
  ${KERNEL_SITE}/kernel/v5.x/linux-${_linux_version}.tar.xz"
-checksum="3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
- 772cfd5d30eb9cc5a996fec9ba8cdcb45d37df1c9b5770610103b814b732c590
+checksum="645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+ 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
  1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
  904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec"
 nocross=yes

From 94e284ff8d23de24f435914a0f373146c965752e Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.n