aboutsummaryrefslogtreecommitdiff
path: root/packages/gcc/12.2.0
diff options
context:
space:
mode:
Diffstat (limited to 'packages/gcc/12.2.0')
-rw-r--r--packages/gcc/12.2.0/0000-libtool-leave-framework-alone.patch18
-rw-r--r--packages/gcc/12.2.0/0001-gcc-plugin-POSIX-include-sys-select-h.patch14
-rw-r--r--packages/gcc/12.2.0/0002-arm-softfloat-libgcc.patch31
-rw-r--r--packages/gcc/12.2.0/0003-libgcc-disable-split-stack-nothreads.patch17
-rw-r--r--packages/gcc/12.2.0/0004-Remove-use-of-include_next-from-c-headers.patch262
-rw-r--r--packages/gcc/12.2.0/0005-Allow-default-libc-to-be-specified-to-configure.patch134
-rw-r--r--packages/gcc/12.2.0/0006-driver-Extend-getenv-function-to-allow-default-value.patch95
-rw-r--r--packages/gcc/12.2.0/0007-Add-newlib-and-picolibc-as-default-C-library-choices.patch37
-rw-r--r--packages/gcc/12.2.0/0008-Support-picolibc-targets.patch33
-rw-r--r--packages/gcc/12.2.0/0009-gcc-Allow-g-to-work-differently-from-gcc.patch60
-rw-r--r--packages/gcc/12.2.0/chksum8
-rw-r--r--packages/gcc/12.2.0/experimental/0001-picolibc-Add-custom-spec-file-fragments-for-using-pi.patch138
-rw-r--r--packages/gcc/12.2.0/version.desc0
13 files changed, 0 insertions, 847 deletions
diff --git a/packages/gcc/12.2.0/0000-libtool-leave-framework-alone.patch b/packages/gcc/12.2.0/0000-libtool-leave-framework-alone.patch
deleted file mode 100644
index 1a86e415..00000000
--- a/packages/gcc/12.2.0/0000-libtool-leave-framework-alone.patch
+++ /dev/null
@@ -1,18 +0,0 @@
----
- libtool-ldflags | 5 +++++
- 1 file changed, 5 insertions(+)
-
---- a/libtool-ldflags
-+++ b/libtool-ldflags
-@@ -36,6 +36,11 @@
- for arg
- do
- case $arg in
-+ -framework)
-+ # libtool handles this option. It should not be prefixed with
-+ # -Xcompiler, as that would split it from the argument that
-+ # follows.
-+ ;;
- -f*|--*|-static-lib*|-shared-lib*|-B*)
- # Libtool does not ascribe any special meaning options
- # that begin with -f or with a double-dash. So, it will
diff --git a/packages/gcc/12.2.0/0001-gcc-plugin-POSIX-include-sys-select-h.patch b/packages/gcc/12.2.0/0001-gcc-plugin-POSIX-include-sys-select-h.patch
deleted file mode 100644
index 5f9a07a2..00000000
--- a/packages/gcc/12.2.0/0001-gcc-plugin-POSIX-include-sys-select-h.patch
+++ /dev/null
@@ -1,14 +0,0 @@
----
- libcc1/connection.cc | 1 +
- 1 file changed, 1 insertion(+)
-
---- a/libcc1/connection.cc
-+++ b/libcc1/connection.cc
-@@ -21,6 +21,7 @@
- #include <string>
- #include <unistd.h>
- #include <sys/types.h>
-+#include <sys/select.h>
- #include <string.h>
- #include <errno.h>
- #include "marshall.hh"
diff --git a/packages/gcc/12.2.0/0002-arm-softfloat-libgcc.patch b/packages/gcc/12.2.0/0002-arm-softfloat-libgcc.patch
deleted file mode 100644
index d9800365..00000000
--- a/packages/gcc/12.2.0/0002-arm-softfloat-libgcc.patch
+++ /dev/null
@@ -1,31 +0,0 @@
----
- gcc/config/arm/linux-elf.h | 2 +-
- libgcc/config/arm/t-linux | 7 ++++++-
- 2 files changed, 7 insertions(+), 2 deletions(-)
-
---- a/gcc/config/arm/linux-elf.h
-+++ b/gcc/config/arm/linux-elf.h
-@@ -58,7 +58,7 @@
- %{shared:-lc} \
- %{!shared:%{profile:-lc_p}%{!profile:-lc}}"
-
--#define LIBGCC_SPEC "%{mfloat-abi=soft*:-lfloat} -lgcc"
-+#define LIBGCC_SPEC "-lgcc"
-
- #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
-
---- a/libgcc/config/arm/t-linux
-+++ b/libgcc/config/arm/t-linux
-@@ -1,6 +1,11 @@
- LIB1ASMSRC = arm/lib1funcs.S
- LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx _clzsi2 _clzdi2 \
-- _ctzsi2 _arm_addsubdf3 _arm_addsubsf3
-+ _ctzsi2 _arm_addsubdf3 _arm_addsubsf3 \
-+ _arm_addsubdf3 _arm_addsubsf3 \
-+ _arm_negdf2 _arm_muldivdf3 _arm_cmpdf2 _arm_unorddf2 \
-+ _arm_fixdfsi _arm_fixunsdfsi _arm_truncdfsf2 \
-+ _arm_negsf2 _arm_muldivsf3 _arm_cmpsf2 _arm_unordsf2 \
-+ _arm_fixsfsi _arm_fixunssfsi
-
- # Just for these, we omit the frame pointer since it makes such a big
- # difference.
diff --git a/packages/gcc/12.2.0/0003-libgcc-disable-split-stack-nothreads.patch b/packages/gcc/12.2.0/0003-libgcc-disable-split-stack-nothreads.patch
deleted file mode 100644
index df91a9ff..00000000
--- a/packages/gcc/12.2.0/0003-libgcc-disable-split-stack-nothreads.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-disable split-stack for non-thread builds
-
-Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
-
----
- libgcc/config/t-stack | 2 ++
- 1 file changed, 2 insertions(+)
-
---- a/libgcc/config/t-stack
-+++ b/libgcc/config/t-stack
-@@ -1,4 +1,6 @@
- # Makefile fragment to provide generic support for -fsplit-stack.
- # This should be used in config.host for any host which supports
- # -fsplit-stack.
-+ifeq ($(enable_threads),yes)
- LIB2ADD_ST += $(srcdir)/generic-morestack.c $(srcdir)/generic-morestack-thread.c
-+endif
diff --git a/packages/gcc/12.2.0/0004-Remove-use-of-include_next-from-c-headers.patch b/packages/gcc/12.2.0/0004-Remove-use-of-include_next-from-c-headers.patch
deleted file mode 100644
index 920e64da..00000000
--- a/packages/gcc/12.2.0/0004-Remove-use-of-include_next-from-c-headers.patch
+++ /dev/null
@@ -1,262 +0,0 @@
-From 9db1164d68ee1da7434af48db4f828d7df51b055 Mon Sep 17 00:00:00 2001
-From: Keith Packard <keithp@keithp.com>
-Date: Sun, 24 Jan 2021 14:20:33 -0800
-Subject: [PATCH] Remove use of include_next from c++ headers
-
-Using include_next bypasses the default header search path and lets
-files later in the include path take priority over earlier files.
-
-This makes replacing libc impossible as the default libc headers will
-occur after the libstdc++ headers, and so be picked up in place of
-headers inserted at the begining of the search path or appended to the
-end of the search path.
-
-Using include_next is a hack to work-around broken combinations of
-libraries, and is not necessary in a well constructed toolchain.
-
-Signed-off-by: Keith Packard <keithp@keithp.com>
----
- libstdc++-v3/include/bits/std_abs.h | 4 ++--
- libstdc++-v3/include/c/cassert | 2 +-
- libstdc++-v3/include/c/cctype | 2 +-
- libstdc++-v3/include/c/cerrno | 2 +-
- libstdc++-v3/include/c/cfloat | 2 +-
- libstdc++-v3/include/c/climits | 2 +-
- libstdc++-v3/include/c/clocale | 2 +-
- libstdc++-v3/include/c/cmath | 2 +-
- libstdc++-v3/include/c/csetjmp | 2 +-
- libstdc++-v3/include/c/csignal | 2 +-
- libstdc++-v3/include/c/cstdarg | 2 +-
- libstdc++-v3/include/c/cstddef | 2 +-
- libstdc++-v3/include/c/cstdio | 2 +-
- libstdc++-v3/include/c/cstdlib | 2 +-
- libstdc++-v3/include/c/cstring | 2 +-
- libstdc++-v3/include/c/ctime | 2 +-
- libstdc++-v3/include/c/cuchar | 2 +-
- libstdc++-v3/include/c/cwchar | 2 +-
- libstdc++-v3/include/c/cwctype | 2 +-
- libstdc++-v3/include/c_global/cmath | 2 +-
- libstdc++-v3/include/c_global/cstdlib | 2 +-
- 21 files changed, 22 insertions(+), 22 deletions(-)
-
---- a/libstdc++-v3/include/bits/std_abs.h
-+++ b/libstdc++-v3/include/bits/std_abs.h
-@@ -35,9 +35,9 @@
- #include <bits/c++config.h>
-
- #define _GLIBCXX_INCLUDE_NEXT_C_HEADERS
--#include_next <stdlib.h>
-+#include <stdlib.h>
- #ifdef __CORRECT_ISO_CPP_MATH_H_PROTO
--# include_next <math.h>
-+# include <math.h>
- #endif
- #undef _GLIBCXX_INCLUDE_NEXT_C_HEADERS
-
---- a/libstdc++-v3/include/c/cassert
-+++ b/libstdc++-v3/include/c/cassert
-@@ -31,4 +31,4 @@
- #pragma GCC system_header
-
- #include <bits/c++config.h>
--#include_next <assert.h>
-+#include <assert.h>
---- a/libstdc++-v3/include/c/cctype
-+++ b/libstdc++-v3/include/c/cctype
-@@ -31,6 +31,6 @@
-
- #pragma GCC system_header
-
--#include_next <ctype.h>
-+#include <ctype.h>
-
- #endif
---- a/libstdc++-v3/include/c/cerrno
-+++ b/libstdc++-v3/include/c/cerrno
-@@ -41,7 +41,7 @@
- #pragma GCC system_header
-
- #include <bits/c++config.h>
--#include_next <errno.h>
-+#include <errno.h>
-
- // Adhere to section 17.4.1.2 clause 5 of ISO 14882:1998
- #ifndef errno
---- a/libstdc++-v3/include/c/cfloat
-+++ b/libstdc++-v3/include/c/cfloat
-@@ -32,6 +32,6 @@
- #pragma GCC system_header
-
- #include <bits/c++config.h>
--#include_next <float.h>
-+#include <float.h>
-
- #endif
---- a/libstdc++-v3/include/c/climits
-+++ b/libstdc++-v3/include/c/climits
-@@ -32,6 +32,6 @@
- #pragma GCC system_header
-
- #include <bits/c++config.h>
--#include_next <limits.h>
-+#include <limits.h>
-
- #endif
---- a/libstdc++-v3/include/c/clocale
-+++ b/libstdc++-v3/include/c/clocale
-@@ -31,6 +31,6 @@
-
- #pragma GCC system_header
-
--#include_next <locale.h>
-+#include <locale.h>
-
- #endif
---- a/libstdc++-v3/include/c/cmath
-+++ b/libstdc++-v3/include/c/cmath
-@@ -33,7 +33,7 @@
-
- #include <bits/c++config.h>
-
--#include_next <math.h>
-+#include <math.h>
-
- // Get rid of those macros defined in <math.h> in lieu of real functions.
- #undef abs
---- a/libstdc++-v3/include/c/csetjmp
-+++ b/libstdc++-v3/include/c/csetjmp
-@@ -31,7 +31,7 @@
-
- #pragma GCC system_header
-
--#include_next <setjmp.h>
-+#include <setjmp.h>
-
- // Get rid of those macros defined in <setjmp.h> in lieu of real functions.
- #undef longjmp
---- a/libstdc++-v3/include/c/csignal
-+++ b/libstdc++-v3/include/c/csignal
-@@ -31,6 +31,6 @@
-
- #pragma GCC system_header
-
--#include_next <signal.h>
-+#include <signal.h>
-
- #endif
---- a/libstdc++-v3/include/c/cstdarg
-+++ b/libstdc++-v3/include/c/cstdarg
-@@ -32,6 +32,6 @@
- #pragma GCC system_header
-
- #undef __need___va_list
--#include_next <stdarg.h>
-+#include <stdarg.h>
-
- #endif
---- a/libstdc++-v3/include/c/cstddef
-+++ b/libstdc++-v3/include/c/cstddef
-@@ -35,6 +35,6 @@
- #define __need_ptrdiff_t
- #define __need_NULL
- #define __need_offsetof
--#include_next <stddef.h>
-+#include <stddef.h>
-
- #endif
---- a/libstdc++-v3/include/c/cstdio
-+++ b/libstdc++-v3/include/c/cstdio
-@@ -31,7 +31,7 @@
-
- #pragma GCC system_header
-
--#include_next <stdio.h>
-+#include <stdio.h>
-
- // Get rid of those macros defined in <stdio.h> in lieu of real functions.
- #undef clearerr
---- a/libstdc++-v3/include/c/cstdlib
-+++ b/libstdc++-v3/include/c/cstdlib
-@@ -31,6 +31,6 @@
-
- #pragma GCC system_header
-
--#include_next <stdlib.h>
-+#include <stdlib.h>
-
- #endif
---- a/libstdc++-v3/include/c/cstring
-+++ b/libstdc++-v3/include/c/cstring
-@@ -31,6 +31,6 @@
-
- #pragma GCC system_header
-
--#include_next <string.h>
-+#include <string.h>
-
- #endif
---- a/libstdc++-v3/include/c/ctime
-+++ b/libstdc++-v3/include/c/ctime
-@@ -31,6 +31,6 @@
-
- #pragma GCC system_header
-
--#include_next <time.h>
-+#include <time.h>
-
- #endif
---- a/libstdc++-v3/include/c/cuchar
-+++ b/libstdc++-v3/include/c/cuchar
-@@ -39,7 +39,7 @@
- #include <cwchar>
-
- #if _GLIBCXX_USE_C11_UCHAR_CXX11
--# include_next <uchar.h>
-+# include <uchar.h>
- #endif
-
- #endif // C++11
---- a/libstdc++-v3/include/c/cwchar
-+++ b/libstdc++-v3/include/c/cwchar
-@@ -36,7 +36,7 @@
- #include <ctime>
-
- #if _GLIBCXX_HAVE_WCHAR_H
--#include_next <wchar.h>
-+#include <wchar.h>
- #endif
-
- // Need to do a bit of trickery here with mbstate_t as char_traits
---- a/libstdc++-v3/include/c/cwctype
-+++ b/libstdc++-v3/include/c/cwctype
-@@ -34,7 +34,7 @@
- #include <bits/c++config.h>
-
- #if _GLIBCXX_HAVE_WCTYPE_H
--#include_next <wctype.h>
-+#include <wctype.h>
- #endif
-
- #endif
---- a/libstdc++-v3/include/c_global/cmath
-+++ b/libstdc++-v3/include/c_global/cmath
-@@ -42,7 +42,7 @@
- #include <bits/cpp_type_traits.h>
- #include <ext/type_traits.h>
- #define _GLIBCXX_INCLUDE_NEXT_C_HEADERS
--#include_next <math.h>
-+#include <math.h>
- #undef _GLIBCXX_INCLUDE_NEXT_C_HEADERS
- #include <bits/std_abs.h>
-
---- a/libstdc++-v3/include/c_global/cstdlib
-+++ b/libstdc++-v3/include/c_global/cstdlib
-@@ -72,7 +72,7 @@
- // Need to ensure this finds the C library's <stdlib.h> not a libstdc++
- // wrapper that might already be installed later in the include search path.
- #define _GLIBCXX_INCLUDE_NEXT_C_HEADERS
--#include_next <stdlib.h>
-+#include <stdlib.h>
- #undef _GLIBCXX_INCLUDE_NEXT_C_HEADERS
- #include <bits/std_abs.h>
-
diff --git a/packages/gcc/12.2.0/0005-Allow-default-libc-to-be-specified-to-configure.patch b/packages/gcc/12.2.0/0005-Allow-default-libc-to-be-specified-to-configure.patch
deleted file mode 100644
index 113a982a..00000000
--- a/packages/gcc/12.2.0/0005-Allow-default-libc-to-be-specified-to-configure.patch
+++ /dev/null
@@ -1,134 +0,0 @@
-From e55524baedbf2dc94b5159373c2b71049bdde1a8 Mon Sep 17 00:00:00 2001
-From: Keith Packard <keithp@keithp.com>
-Date: Fri, 2 Sep 2022 23:07:05 -0700
-Subject: [PATCH 5/9] Allow default libc to be specified to configure
-
-The default C library is normally computed based on the target
-triplet. However, for embedded systems, it can be useful to leave the
-triplet alone while changing which C library is used by default. Other
-C libraries may still be available on the system so the compiler and
-can be used by specifying suitable include and library paths at build
-time.
-
-If an unknown --with-default-libc= value is provided, emit an error
-and stop.
-
-Signed-off-by: Keith Packard <keithp@keithp.com>
----
- gcc/config.gcc | 48 ++++++++++++++++++++++++++++++++++++++++--------
- gcc/configure.ac | 4 ++++
- 2 files changed, 44 insertions(+), 8 deletions(-)
-
---- a/gcc/config.gcc
-+++ b/gcc/config.gcc
-@@ -648,6 +648,8 @@
- # Common C libraries.
- tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3 LIBC_MUSL=4"
-
-+default_libc=""
-+
- # 32-bit x86 processors supported by --with-arch=. Each processor
- # MUST be separated by exactly one space.
- x86_archs="athlon athlon-4 athlon-fx athlon-mp athlon-tbird \
-@@ -854,16 +856,16 @@
- esac
- case $target in
- *-*-*android*)
-- tm_defines="$tm_defines DEFAULT_LIBC=LIBC_BIONIC"
-+ default_libc=LIBC_BIONIC
- ;;
- *-*-*uclibc* | *-*-uclinuxfdpiceabi)
-- tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
-+ default_libc=LIBC_UCLIBC
- ;;
- *-*-*musl*)
-- tm_defines="$tm_defines DEFAULT_LIBC=LIBC_MUSL"
-+ default_libc=LIBC_MUSL
- ;;
- *)
-- tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
-+ default_libc=LIBC_GLIBC
- ;;
- esac
- # Assume that glibc or uClibc or Bionic are being used and so __cxa_atexit
-@@ -956,7 +958,8 @@
- case ${enable_threads} in
- "" | yes | posix) thread_file='posix' ;;
- esac
-- tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC SINGLE_LIBC"
-+ tm_defines="$tm_defines SINGLE_LIBC"
-+ default_libc=LIBC_UCLIBC
- ;;
- *-*-rdos*)
- use_gcc_stdint=wrap
-@@ -1606,13 +1609,13 @@
-
- case ${target} in
- csky-*-linux-gnu*)
-- tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
-+ default_libc=LIBC_GLIBC
- # Force .init_array support. The configure script cannot always
- # automatically detect that GAS supports it, yet we require it.
- gcc_cv_initfini_array=yes
- ;;
- csky-*-linux-uclibc*)
-- tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
-+ default_libc=LIBC_UCLIBC
- default_use_cxa_atexit=no
- ;;
- *)
-@@ -3065,7 +3068,7 @@
- tmake_file="${tmake_file} t-linux rs6000/t-linux64 rs6000/t-fprules rs6000/t-ppccomm"
- tmake_file="${tmake_file} rs6000/t-vxworks"
-
-- tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
-+ default_libc=LIBC_GLIBC
- extra_objs="$extra_objs linux.o rs6000-linux.o"
- ;;
- powerpc-wrs-vxworks*)
-@@ -5915,3 +5918,32 @@
- fi
- ;;
- esac
-+
-+case "${with_default_libc}" in
-+glibc)
-+ default_libc=LIBC_GLIBC
-+ ;;
-+uclibc)
-+ default_libc=LIBC_UCLIBC
-+ ;;
-+bionic)
-+ default_libc=LIBC_BIONIC
-+ ;;
-+musl)
-+ default_libc=LIBC_MUSL
-+ ;;
-+"")
-+ ;;
-+*)
-+ echo "Unknown libc in --with-default-libc=$with_default_libc" 1>&2
-+ exit 1
-+ ;;
-+esac
-+
-+case "$default_libc" in
-+"")
-+ ;;
-+*)
-+ tm_defines="$tm_defines DEFAULT_LIBC=$default_libc"
-+ ;;
-+esac
---- a/gcc/configure.ac
-+++ b/gcc/configure.ac
-@@ -2481,6 +2481,10 @@
- fi
- AC_SUBST(inhibit_libc)
-
-+AC_ARG_WITH(default-libc,
-+ [AS_HELP_STRING([--with-default-libc],
-+ [Use specified default C library])])
-+
- # When building gcc with a cross-compiler, we need to adjust things so
- # that the generator programs are still built with the native compiler.
- # Also, we cannot run fixincludes.
diff --git a/packages/gcc/12.2.0/0006-driver-Extend-getenv-function-to-allow-default-value.patch b/packages/gcc/12.2.0/0006-driver-Extend-getenv-function-to-allow-default-value.patch
deleted file mode 100644
index 32341c48..00000000
--- a/packages/gcc/12.2.0/0006-driver-Extend-getenv-function-to-allow-default-value.patch
+++ /dev/null
@@ -1,95 +0,0 @@
-From fff469f89d865ef3c15efe8e6b0511ea4d48603d Mon Sep 17 00:00:00 2001
-From: Keith Packard <keithp@keithp.com>
-Date: Fri, 26 Aug 2022 14:30:03 -0700
-Subject: [PATCH 6/6] driver: Extend 'getenv' function to allow default value
-
-Right now, a missing environment variable provided to the 'getenv'
-function in a .specs file causes a fatal error. That makes writing a
-spec file that uses the GCC_EXEC_PREFIX value difficult as that
-variable is only set when the driver has been relocated, but not when
-run from the defined location. This makes building a relocatable
-toolchain difficult to extend to other ancilary pieces which use specs
-files to locate header and library files adjacent to the toolchain.
-
-This patch adds an optional third argument to the getenv function that
-can be used to fall back to the standard installation path when the
-driver hasn't set GCC_EXEC_PREFIX in the environment.
-
-For example, if an alternate C library is installed in
-${prefix}/extra, then this change allows the specs file to locate that
-relative to the gcc directory, if gcc is located in the original
-installation directory (which would leave GCC_EXEC_PREFIX unset), or
-if the gcc tree has been moved to a different location (where gcc
-would set GCC_EXEC_PREFIX itself):
-
-*cpp:
--isystem %:getenv(GCC_EXEC_PREFIX ../../extra/include ${prefix}/extra/include)
-
-I considered changing the behavior of either the %R sequence so that
-it had a defined behavior when there was no sysroot defined, or making
-the driver always set the GCC_EXEC_PREFIX environment variable and
-decided that the approach of adding functionality to getenv where it
-was previously invalid would cause the least potential for affecting
-existing usage.
-
-Signed-off-by: Keith Packard <keithp@keithp.com>
----
- gcc/doc/invoke.texi | 18 +++++++++++-------
- gcc/gcc.cc | 10 +++++++++-
- 2 files changed, 20 insertions(+), 8 deletions(-)
-
---- a/gcc/doc/invoke.texi
-+++ b/gcc/doc/invoke.texi
-@@ -33776,17 +33776,21 @@
-
- @table @code
- @item @code{getenv}
--The @code{getenv} spec function takes two arguments: an environment
--variable name and a string. If the environment variable is not
--defined, a fatal error is issued. Otherwise, the return value is the
--value of the environment variable concatenated with the string. For
--example, if @env{TOPDIR} is defined as @file{/path/to/top}, then:
-+
-+The @code{getenv} spec function takes two or three arguments: an
-+environment variable name, a string and an optional default value. If
-+the environment variable is not defined and a default value is
-+provided, that is used as the return value; otherwise a fatal error is
-+issued. Otherwise, the return value is the value of the environment
-+variable concatenated with the string. For example, if @env{TOPDIR}
-+is defined as @file{/path/to/top}, then:
-
- @smallexample
--%:getenv(TOPDIR /include)
-+%:getenv(TOPDIR /include /path/to/default/include)
- @end smallexample
-
--expands to @file{/path/to/top/include}.
-+expands to @file{/path/to/top/include}. If @env{TOPDIR} is not
-+defined, then this expands to @file{/path/to/default/include}.
-
- @item @code{if-exists}
- The @code{if-exists} spec function takes one argument, an absolute
---- a/gcc/gcc.cc
-+++ b/gcc/gcc.cc
-@@ -10194,12 +10194,20 @@
- char *ptr;
- size_t len;
-
-- if (argc != 2)
-+ if (argc != 2 && argc != 3)
- return NULL;
-
- varname = argv[0];
- value = env.get (varname);
-
-+ if (!value && argc == 3)
-+ {
-+ value = argv[2];
-+ result = XNEWVAR(char, strlen(value) + 1);
-+ strcpy(result, value);
-+ return result;
-+ }
-+
- /* If the variable isn't defined and this is allowed, craft our expected
- return value. Assume variable names used in specs strings don't contain
- any active spec character so don't need escaping. */
diff --git a/packages/gcc/12.2.0/0007-Add-newlib-and-picolibc-as-default-C-library-choices.patch b/packages/gcc/12.2.0/0007-Add-newlib-and-picolibc-as-default-C-library-choices.patch
deleted file mode 100644
index 59169b70..00000000
--- a/packages/gcc/12.2.0/0007-Add-newlib-and-picolibc-as-default-C-library-choices.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 2e3918a283c1c9fb3b4775fe96a56e430748579a Mon Sep 17 00:00:00 2001
-From: Keith Packard <keithp@keithp.com>
-Date: Tue, 23 Aug 2022 22:12:06 -0700
-Subject: [PATCH 6/9] Add newlib and picolibc as default C library choices
-
-Signed-off-by: Keith Packard <keithp@keithp.com>
----
- gcc/config.gcc | 11 ++++++++++-
- 1 file changed, 10 insertions(+), 1 deletion(-)
-
---- a/gcc/config.gcc
-+++ b/gcc/config.gcc
-@@ -646,7 +646,7 @@
- esac
-
- # Common C libraries.
--tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3 LIBC_MUSL=4"
-+tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3 LIBC_MUSL=4 LIBC_NEWLIB=5 LIBC_PICOLIBC=6"
-
- default_libc=""
-
-@@ -5932,6 +5932,15 @@
- musl)
- default_libc=LIBC_MUSL
- ;;
-+newlib)
-+ # Newlib configurations don't set the DEFAULT_LIBC variable, so
-+ # avoid changing those by allowing --with-default-libc=newlib but
-+ # not actually setting the DEFAULT_LIBC variable.
-+ default_libc=
-+ ;;
-+picolibc)
-+ default_libc=LIBC_PICOLIBC
-+ ;;
- "")
- ;;
- *)
diff --git a/packages/gcc/12.2.0/0008-Support-picolibc-targets.patch b/packages/gcc/12.2.0/0008-Support-picolibc-targets.patch
deleted file mode 100644
index 776d9545..00000000
--- a/packages/gcc/12.2.0/0008-Support-picolibc-targets.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 41b20e994970f0ae63fb3f49c6f89a0b2f06aecb Mon Sep 17 00:00:00 2001
-From: Keith Packard <keithp@keithp.com>
-Date: Sun, 12 Feb 2023 14:23:32 -0800
-Subject: [PATCH 7/9] Support picolibc targets
-
-Match *-picolibc-* and select picolibc as the default C library, plus continuing to use
-the newlib-based logic for other configuration items.
-
-Signed-off-by: Keith Packard <keithp@keithp.com>
----
- gcc/config.gcc | 11 +++++++++++
- 1 file changed, 11 insertions(+)
-
---- a/gcc/config.gcc
-+++ b/gcc/config.gcc
-@@ -1082,6 +1082,17 @@
- ;;
- esac
- ;;
-+*-picolibc-*)
-+ # __cxa_atexit is provided.
-+ default_use_cxa_atexit=yes
-+ use_gcc_stdint=wrap
-+ default_libc=LIBC_PICOLIBC
-+ case "${with_newlib}-${with_headers}" in
-+ no-no) use_gcc_stdint=provide ;;
-+ *) ;;
-+ esac
-+ ;;
-+
- *-*-elf|arc*-*-elf*)
- # Assume that newlib is being used and so __cxa_atexit is provided.
- default_use_cxa_atexit=yes
diff --git a/packages/gcc/12.2.0/0009-gcc-Allow-g-to-work-differently-from-gcc.patch b/packages/gcc/12.2.0/0009-gcc-Allow-g-to-work-differently-from-gcc.patch
deleted file mode 100644
index 5265c03a..00000000
--- a/packages/gcc/12.2.0/0009-gcc-Allow-g-to-work-differently-from-gcc.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From e426a20988185695675a2c456e0c24dcea515baf Mon Sep 17 00:00:00 2001
-From: Keith Packard <keithp@keithp.com>
-Date: Sat, 11 Feb 2023 23:07:08 -0800
-Subject: [PATCH 8/9] gcc: Allow g++ to work differently from gcc
-
-Compile gcc.cc with -DIN_GPP defined when building g++ so that the
-code can respond appropriately for the default target language. This
-allows the driver to customize the specs used, selecting different
-linker scripts, adjusting the use of crtbegin.o/crtend.o etc.
-
-By default, this change has no effect; targets need to explicitly
-check for IN_GPP to have alternate behavior.
-
-Signed-off-by: Keith Packard <keithp@keithp.com>
----
- gcc/cp/Make-lang.in | 7 ++++++-
- gcc/gpp.cc | 21 +++++++++++++++++++++
- 2 files changed, 27 insertions(+), 1 deletion(-)
- create mode 100644 gcc/gpp.cc
-
---- a/gcc/cp/Make-lang.in
-+++ b/gcc/cp/Make-lang.in
-@@ -68,7 +68,12 @@
- endif
-
- # Create the compiler driver for g++.
--GXX_OBJS = $(GCC_OBJS) cp/g++spec.o
-+GXX_OBJS = $(GCC_OBJS:gcc.o=gpp.o) cp/g++spec.o
-+
-+CFLAGS-gpp.o = $(CFLAGS-gcc.o)
-+gpp.o: $(BASEVER)
-+gpp.o: gcc.o
-+
- xg++$(exeext): $(GXX_OBJS) $(EXTRA_GCC_OBJS) libcommon-target.a $(LIBDEPS)
- +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \
- $(GXX_OBJS) $(EXTRA_GCC_OBJS) libcommon-target.a \
---- /dev/null
-+++ b/gcc/gpp.cc
-@@ -0,0 +1,21 @@
-+/* Compiler driver program that can handle many languages.
-+ Copyright (C) 1987-2022 Free Software Foundation, Inc.
-+
-+This file is part of GCC.
-+
-+GCC is free software; you can redistribute it and/or modify it under
-+the terms of the GNU General Public License as published by the Free
-+Software Foundation; either version 3, or (at your option) any later
-+version.
-+
-+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
-+WARRANTY; without even the implied warranty of MERCHANTABILITY or
-+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-+for more details.
-+
-+You should have received a copy of the GNU General Public License
-+along with GCC; see the file COPYING3. If not see
-+<http://www.gnu.org/licenses/>. */
-+
-+#define IN_GPP
-+#include "gcc.cc"
diff --git a/packages/gcc/12.2.0/chksum b/packages/gcc/12.2.0/chksum
deleted file mode 100644
index 52e3b629..00000000
--- a/packages/gcc/12.2.0/chksum
+++ /dev/null
@@ -1,8 +0,0 @@
-md5 gcc-12.2.0.tar.xz 73bafd0af874439dcdb9fc063b6fb069
-sha1 gcc-12.2.0.tar.xz 5dce6dc0091b8049b530d1587513a07201691760
-sha256 gcc-12.2.0.tar.xz e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
-sha512 gcc-12.2.0.tar.xz e9e857bd81bf7a370307d6848c81b2f5403db8c7b5207f54bce3f3faac3bde63445684092c2bc1a2427cddb6f7746496d9fbbef05fbbd77f2810b2998f1f9173
-md5 gcc-12.2.0.tar.gz d7644b494246450468464ffc2c2b19c3
-sha1 gcc-12.2.0.tar.gz 528e27c3c4a0bb9b13ee2a4c53bb1cf048fc1fe4
-sha256 gcc-12.2.0.tar.gz ac6b317eb4d25444d87cf29c0d141dedc1323a1833ec9995211b13e1a851261c
-sha512 gcc-12.2.0.tar.gz 36ab2267540f205b148037763b3806558e796d564ca7831799c88abcf03393c6dc2cdc9d53e8f094f6dc1245e47a406e1782604eb9d119410d406032f59c1544
diff --git a/packages/gcc/12.2.0/experimental/0001-picolibc-Add-custom-spec-file-fragments-for-using-pi.patch b/packages/gcc/12.2.0/experimental/0001-picolibc-Add-custom-spec-file-fragments-for-using-pi.patch
deleted file mode 100644
index 0c4b90b5..00000000
--- a/packages/gcc/12.2.0/experimental/0001-picolibc-Add-custom-spec-file-fragments-for-using-pi.patch
+++ /dev/null
@@ -1,138 +0,0 @@
-From ad485aba918ea651987c6d153c2202a3efb5a75f Mon Sep 17 00:00:00 2001
-From: Keith Packard <keithp@keithp.com>
-Date: Tue, 23 Aug 2022 22:13:08 -0700
-Subject: [PATCH 9/9] picolibc: Add custom spec file fragments for using
- picolibc
-
-The '--oslib=' option allows targets to insert an OS library after the
-C library in the LIB_PATH spec file fragment. This library maps a few
-POSIX APIs used by picolibc to underlying system capabilities.
-
-The '--crt0=' option allows targets to use an alternate crt0 in place
-of the usual one as provided by Picolibc.
-
-For example, picolibc provides 'libsemihost' and 'crt0-semihost.o' on
-various targets which maps some POSIX APIs to semihosting capabilities
-and signals the semihosting environment when 'main' returns. These
-would be used by specifying --oslib=semihost --crt0=semihost.
-
-This patch also takes advantage of the IN_GPP conditional when
-building g++ to elide exception handling contents from the executable
-when not linking with the g++ driver.
-
-Signed-off-by: Keith Packard <keithp@keithp.com>
----
- gcc/config.gcc | 7 +++++++
- gcc/config/picolibc.h | 44 +++++++++++++++++++++++++++++++++++++++++
- gcc/config/picolibc.opt | 33 +++++++++++++++++++++++++++++++
- 3 files changed, 84 insertions(+)
- create mode 100644 gcc/config/picolibc.h
- create mode 100644 gcc/config/picolibc.opt
-
-diff --git a/gcc/config.gcc b/gcc/config.gcc
-index 06af4057079..94d53970ceb 100644
---- a/gcc/config.gcc
-+++ b/gcc/config.gcc
-@@ -5967,3 +5967,10 @@ case "$default_libc" in
- tm_defines="$tm_defines DEFAULT_LIBC=$default_libc"
- ;;
- esac
-+
-+case "$default_libc" in
-+ LIBC_PICOLIBC)
-+ extra_options="${extra_options} picolibc.opt"
-+ tm_file="${tm_file} picolibc.h"
-+ ;;
-+esac
-diff --git a/gcc/config/picolibc.h b/gcc/config/picolibc.h
-new file mode 100644
-index 00000000000..d1d3fc44477
---- /dev/null
-+++ b/gcc/config/picolibc.h
-@@ -0,0 +1,44 @@
-+/* Configuration common to all targets running Picolibc.
-+ Copyright (C) 2023 Free Software Foundation, Inc.
-+
-+ This file is part of GCC.
-+
-+ GCC is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU General Public License as published
-+ by the Free Software Foundation; either version 3, or (at your
-+ option) any later version.
-+
-+ GCC is distributed in the hope that it will be useful, but WITHOUT
-+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
-+ License for more details.
-+
-+ Under Section 7 of GPL version 3, you are granted additional
-+ permissions described in the GCC Runtime Library Exception, version
-+ 3.1, as published by the Free Software Foundation.
-+
-+ You should have received a copy of the GNU General Public License and
-+ a copy of the GCC Runtime Library Exception along with this program;
-+ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#ifdef IN_GPP
-+#define PICOLIBC_LD "picolibcpp.ld"
-+#define PICOLIBC_BEGIN " crtbegin%O%s"
-+#define PICOLIBC_END "crtend%O%s"
-+#else
-+#define PICOLIBC_LD "picolibc.ld"
-+#define PICOLIBC_BEGIN ""
-+#define PICOLIBC_END ""
-+#endif
-+
-+#undef LIB_SPEC
-+#define LIB_SPEC "%{!T:-T" PICOLIBC_LD "} --start-group -lc %{-oslib=*:-l%*} %(libgcc) --end-group"
-+
-+#undef STARTFILE_SPEC
-+#define STARTFILE_SPEC "%{-crt0=*:crt0-%*%O%s; :crt0%O%s}" PICOLIBC_BEGIN
-+
-+#undef ENDFILE_SPEC
-+#define ENDFILE_SPEC PICOLIBC_END
-+
-+#define EH_TABLES_CAN_BE_READ_ONLY 1
-diff --git a/gcc/config/picolibc.opt b/gcc/config/picolibc.opt
-new file mode 100644
-index 00000000000..39f81c446bb
---- /dev/null
-+++ b/gcc/config/picolibc.opt
-@@ -0,0 +1,33 @@
-+; Processor-independent options for picolibc.
-+;
-+; Copyright (C) 2022 Free Software Foundation, Inc.
-+;
-+; This file is part of GCC.
-+;
-+; GCC is free software; you can redistribute it and/or modify it under
-+; the terms of the GNU General Public License as published by the Free
-+; Software Foundation; either version 3, or (at your option) any later
-+; version.
-+;
-+; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
-+; WARRANTY; without even the implied warranty of MERCHANTABILITY or
-+; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-+; for more details.
-+;
-+; You should have received a copy of the GNU General Public License
-+; along with GCC; see the file COPYING3. If not see
-+; <http://www.gnu.org/licenses/>.
-+
-+-oslib
-+Driver Separate Alias(-oslib=)
-+
-+-oslib=
-+Driver Joined
-+Specify an OS support library to load after libc.
-+
-+-crt0
-+Driver Separate Alias(-crt0=)
-+
-+-crt0=
-+Driver Joined
-+Specify an alternate startup file.
---
-2.39.0
-
diff --git a/packages/gcc/12.2.0/version.desc b/packages/gcc/12.2.0/version.desc
deleted file mode 100644
index e69de29b..00000000
--- a/packages/gcc/12.2.0/version.desc
+++ /dev/null