mirror of
https://github.com/fosslinux/live-bootstrap.git
synced 2026-03-19 17:53:00 +01:00
Add GCC 12
The latest version of GCC. And with this, the glibc-musl-gcc toolchain is complete. A variety of modern features (default PIE SSP) are enabled.
This commit is contained in:
parent
ac4685e886
commit
6fb676c8c2
10 changed files with 255 additions and 1 deletions
43
sysc/gcc-12.2.0/patches/fix-gcc-autoreconf.patch
Normal file
43
sysc/gcc-12.2.0/patches/fix-gcc-autoreconf.patch
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
SPDX-FileCopyrightText: 2023 fosslinux <fosslinux@aussies.space>
|
||||
SPDX-FileCopyrightText: 2022 Thomas Schwinge <thomas@codesourcery.com>
|
||||
|
||||
SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
Backport of commit 25861cf3a88a07c8dca3fb32d098c0ad756bbe38
|
||||
|
||||
====
|
||||
With that, we may then run plain 'autoreconf' for all of GCC's subpackages,
|
||||
instead of for some of those (that don't use Automake) manually having to run
|
||||
the applicable combination of 'aclocal', 'autoconf', 'autoheader'.
|
||||
|
||||
See also 'AC_CONFIG_MACRO_DIRS'/'AC_CONFIG_MACRO_DIR' usage elsewhere.
|
||||
|
||||
diff --git gcc/configure.ac gcc/configure.ac
|
||||
index e1ef2ecf026..45bf7560e6f 100644
|
||||
--- gcc/configure.ac
|
||||
+++ gcc/configure.ac
|
||||
@@ -25,6 +25,7 @@
|
||||
|
||||
AC_INIT
|
||||
AC_CONFIG_SRCDIR(tree.cc)
|
||||
+AC_CONFIG_MACRO_DIRS([../config] [..])
|
||||
AC_CONFIG_HEADER(auto-host.h:config.in)
|
||||
|
||||
gcc_version=`cat $srcdir/BASE-VER`
|
||||
diff --git libobjc/configure libobjc/configure
|
||||
index a8fdc643349..6da20b8e4ff 100755
|
||||
diff --git libobjc/configure.ac libobjc/configure.ac
|
||||
index f8f577cfbef..6f58a45d4cb 100644
|
||||
--- libobjc/configure.ac
|
||||
+++ libobjc/configure.ac
|
||||
@@ -20,6 +20,7 @@
|
||||
|
||||
AC_INIT(package-unused, version-unused,, libobjc)
|
||||
AC_CONFIG_SRCDIR([objc/objc.h])
|
||||
+AC_CONFIG_MACRO_DIRS([../config] [..])
|
||||
GCC_TOPLEV_SUBDIRS
|
||||
|
||||
# We need the following definitions because AC_PROG_LIBTOOL relies on them
|
||||
--
|
||||
2.31.1
|
||||
|
||||
34
sysc/gcc-12.2.0/patches/fix-libiberty-autoreconf.patch
Normal file
34
sysc/gcc-12.2.0/patches/fix-libiberty-autoreconf.patch
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
SPDX-FileCopyrightText: 2023 fosslinux <fosslinux@aussies.space>
|
||||
SPDX-FileCopyrightText: 2022 Simon Marchi <simon.marchi@efficios.com>
|
||||
|
||||
SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
Backport of commit 1f237573caa5cf72218ea31fe78eb3983a717ca6
|
||||
|
||||
====
|
||||
|
||||
Add
|
||||
|
||||
AC_CONFIG_MACRO_DIRS([../config])
|
||||
|
||||
So that just running:
|
||||
|
||||
$ autoreconf -vf
|
||||
|
||||
... does the right thing (no need to specify -I ../config).
|
||||
|
||||
diff --git libiberty/configure.ac libiberty/configure.ac
|
||||
index 84a7b378fad..28d996f9cf7 100644
|
||||
--- libiberty/configure.ac
|
||||
+++ libiberty/configure.ac
|
||||
@@ -2,6 +2,7 @@ dnl Process this file with autoconf to produce a configure script
|
||||
|
||||
AC_INIT
|
||||
AC_CONFIG_SRCDIR([xmalloc.c])
|
||||
+AC_CONFIG_MACRO_DIRS([../config])
|
||||
|
||||
# This works around the fact that libtool configuration may change LD
|
||||
# for this particular configuration, but some shells, instead of
|
||||
--
|
||||
2.31.1
|
||||
|
||||
35
sysc/gcc-12.2.0/patches/libssp_nonshared.patch
Normal file
35
sysc/gcc-12.2.0/patches/libssp_nonshared.patch
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
SPDX-FileCopyrightText: 2023 fosslinux <fosslinux@aussies.space>
|
||||
SPDX-FileCopyrightText: 2020 Timo Teräs <timo.teras@iki.fi>
|
||||
|
||||
SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
The original motivation from this patch from Alpine Linux:
|
||||
|
||||
Subject: [PATCH] Alpine musl package provides libssp_nonshared.a. We link to
|
||||
it unconditionally, as otherwise we get link failures if some objects are
|
||||
-fstack-protector built and final link happens with -fno-stack-protector.
|
||||
This seems to be the common case when bootstrapping gcc, the piepatches do
|
||||
not seem to fully fix the crosstoolchain and bootstrap sequence wrt.
|
||||
stack-protector flag usage.
|
||||
|
||||
Which matches precisely the problem when compiling GCC with --enable-bootstrap
|
||||
in live-bootstrap.
|
||||
|
||||
---
|
||||
gcc/gcc.cc | 3 +--
|
||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||
|
||||
diff --git gcc/gcc.cc gcc/gcc.cc
|
||||
index cc99d0b7aa1..c60a75371f8 100644
|
||||
--- gcc/gcc.cc
|
||||
+++ gcc/gcc.cc
|
||||
@@ -1004,8 +1004,7 @@ proper position among the other output files. */
|
||||
|
||||
#ifndef LINK_SSP_SPEC
|
||||
#ifdef TARGET_LIBC_PROVIDES_SSP
|
||||
-#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
|
||||
- "|fstack-protector-strong|fstack-protector-explicit:}"
|
||||
+#define LINK_SSP_SPEC "-lssp_nonshared"
|
||||
#else
|
||||
#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
|
||||
"|fstack-protector-strong|fstack-protector-explicit" \
|
||||
17
sysc/gcc-12.2.0/patches/new-gettext.patch
Normal file
17
sysc/gcc-12.2.0/patches/new-gettext.patch
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
SPDX-FileCopyrightText: 2023 fosslinux <fosslinux@aussies.space>
|
||||
|
||||
SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
In new gettext external is required for AM_GNU_GETTEXT.
|
||||
|
||||
--- intl/configure.ac 2023-02-07 18:43:58.989786230 +1100
|
||||
+++ intl/configure.ac 2023-02-07 18:43:02.182632631 +1100
|
||||
@@ -4,7 +4,7 @@
|
||||
AC_CONFIG_HEADER(config.h)
|
||||
AC_CONFIG_MACRO_DIR(../config)
|
||||
AM_GNU_GETTEXT_VERSION(0.12.1)
|
||||
-AM_GNU_GETTEXT([], [need-ngettext])
|
||||
+AM_GNU_GETTEXT([external], [need-ngettext])
|
||||
|
||||
# This replaces the extensive use of DEFS in the original Makefile.in.
|
||||
AC_DEFINE(IN_LIBINTL, 1, [Define because this is libintl.])
|
||||
Loading…
Add table
Add a link
Reference in a new issue