mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2024-12-30 09:38:52 +00:00
06fad54c84
https://gcc.gnu.org/pipermail/gcc-announce/2024/000181.html Add the new version dropping patches that have been applied upstream. Signed-off-by: Chris Packham <judge.packham@gmail.com>
139 lines
4.0 KiB
Diff
139 lines
4.0 KiB
Diff
From bba1f4101084e296e5bfcc9a2f9e91242928ad10 Mon Sep 17 00:00:00 2001
|
|
From: Keith Packard <keithp@keithp.com>
|
|
Date: Fri, 2 Sep 2022 23:07:05 -0700
|
|
Subject: [PATCH] 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(-)
|
|
|
|
diff --git a/gcc/config.gcc b/gcc/config.gcc
|
|
index c3b73d05eb72..0672d94535b9 100644
|
|
--- a/gcc/config.gcc
|
|
+++ b/gcc/config.gcc
|
|
@@ -664,6 +664,8 @@ esac
|
|
# 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 \
|
|
@@ -870,16 +872,16 @@ case ${target} in
|
|
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
|
|
@@ -988,7 +990,8 @@ case ${target} in
|
|
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
|
|
@@ -1653,13 +1656,13 @@ csky-*-*)
|
|
|
|
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
|
|
;;
|
|
*)
|
|
@@ -3039,7 +3042,7 @@ powerpc*-wrs-vxworks7r*)
|
|
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*)
|
|
@@ -5880,3 +5883,32 @@ i[34567]86-*-* | x86_64-*-*)
|
|
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
|
|
diff --git a/gcc/configure.ac b/gcc/configure.ac
|
|
index bf8ff4d63906..b1c2944775d1 100644
|
|
--- a/gcc/configure.ac
|
|
+++ b/gcc/configure.ac
|
|
@@ -2541,6 +2541,10 @@ if { { test x$host != x$target && test "x$with_sysroot" = x ; } ||
|
|
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.
|