summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey Neyman <stilor@att.net>2020-03-04 21:58:38 (GMT)
committerGitHub <noreply@github.com>2020-03-04 21:58:38 (GMT)
commite2957c35eb57c71846da241b81bb3322eceedf77 (patch)
tree0df58f8e84ed71ae8c772df6ebb7055bb201db18
parentc969be1880f99b6da4d98afd7bda641b7868a717 (diff)
parent29422b2eda308526cd568507109b0a222eb09449 (diff)
Merge pull request #1311 from stilor/more-fixes-after-upgrades
More fixes after upgrades
-rw-r--r--config/arch/powerpc.in4
-rw-r--r--config/libc/glibc.in8
-rw-r--r--packages/gcc/package.desc2
-rw-r--r--packages/uClibc-ng/1.0.33/0000-missing-header.patch20
-rw-r--r--scripts/build/arch/sparc.sh41
5 files changed, 57 insertions, 18 deletions
diff --git a/config/arch/powerpc.in b/config/arch/powerpc.in
index 83f0f77..73cdf75 100644
--- a/config/arch/powerpc.in
+++ b/config/arch/powerpc.in
@@ -43,6 +43,8 @@ config ARCH_powerpc_ABI_EABI
config ARCH_powerpc_ABI_SPE
bool
prompt "SPE"
+ select GCC_REQUIRE_8_or_older
+ select GLIBC_REQUIRE_2_29_or_older
help
Add support for the Signal Processing Engine. This will set up
the toolchain so that it supports the SPE ABI extensions. This
@@ -55,4 +57,6 @@ config ARCH_powerpc_ABI_SPE
and "--enable-e500_double" to your CC_EXTRA_CONFIG_ARRAY, so you
do not need to explicitly add them.
+ Support for SPE ABI has been removed in GCC 9.
+
endchoice
diff --git a/config/libc/glibc.in b/config/libc/glibc.in
index c753359..f891392 100644
--- a/config/libc/glibc.in
+++ b/config/libc/glibc.in
@@ -35,11 +35,13 @@ config GLIBC_DEP_BINUTILS
select BINUTILS_REQUIRE_2_25_or_later if GLIBC_2_26_or_later
select BINUTILS_REQUIRE_older_than_2_30 if GLIBC_older_than_2_26 && ARCH_ARM && ARCH_64
+# Glibc 2.26 requires GCC4.9 or newer
# Glibc 2.29 requires GCC5+ or, for ppc64le, GCC6.2+. We only support the latest
# release on GCC6 branch, so just assume it is newer than 6.2
# Glibc 2.30 uncondtionally requires GCC 6.2+
config GLIBC_DEP_GCC
def_bool y
+ select GCC_REQUIRE_4_9_or_later if GLIBC_2_26_or_later
select GCC_REQUIRE_5_or_later if GLIBC_2_29_or_later
select GCC_REQUIRE_6_or_later if GLIBC_2_29_or_later && ARCH_POWERPC && ARCH_64 && ARCH_LE
select GCC_REQUIRE_6_or_later if GLIBC_2_30_or_later
@@ -64,9 +66,11 @@ config GLIBC_DEP_MAKE_4_0
select MAKE_REQUIRE_4_0_or_later
select MAKE_GNUMAKE_SYMLINK # Override old host make in .build/tools/bin
-config GLIBC_DEP_GCC
+# Glibc 2.31 removed support for pre-v8 SPARC in 32-bit mode (64-bit mode always
+# required UltraSPARC)
+config GLIBC_SPARC_ALLOW_V7
def_bool y
- select GCC_REQUIRE_4_9_or_later if GLIBC_2_26_or_later
+ depends on GLIBC_2_30_or_older
config THREADS
default "nptl"
diff --git a/packages/gcc/package.desc b/packages/gcc/package.desc
index e6d98f8..a37f0c5 100644
--- a/packages/gcc/package.desc
+++ b/packages/gcc/package.desc
@@ -2,5 +2,5 @@ repository='svn svn://gcc.gnu.org/svn/gcc'
mirrors='$(CT_Mirrors GNU gcc/gcc-${CT_GCC_VERSION}) $(CT_Mirrors sourceware gcc/releases/gcc-${CT_GCC_VERSION})'
relevantpattern='4.*|. *|.'
origin='GNU'
-milestones='4.8 4.9 5 6 7'
+milestones='4.8 4.9 5 6 7 8'
archive_formats='.tar.xz .tar.gz'
diff --git a/packages/uClibc-ng/1.0.33/0000-missing-header.patch b/packages/uClibc-ng/1.0.33/0000-missing-header.patch
new file mode 100644
index 0000000..05b0f61
--- /dev/null
+++ b/packages/uClibc-ng/1.0.33/0000-missing-header.patch
@@ -0,0 +1,20 @@
+commit 6f7c6883b72134d1ae28a6223ab9c9738d033867
+Author: Waldemar Brodkorb <wbx@openadk.org>
+Date: Wed Feb 19 10:18:03 2020 +0100
+
+ malloc: add missing header for some arch (alpha)
+
+---
+ libc/stdlib/malloc-standard/malloc.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/libc/stdlib/malloc-standard/malloc.h
++++ b/libc/stdlib/malloc-standard/malloc.h
+@@ -23,6 +23,7 @@
+ #include <stdlib.h>
+ #include <sys/mman.h>
+ #include <bits/uClibc_mutex.h>
++#include <bits/uClibc_page.h>
+
+
+
diff --git a/scripts/build/arch/sparc.sh b/scripts/build/arch/sparc.sh
index 484687d..97c9b9d 100644
--- a/scripts/build/arch/sparc.sh
+++ b/scripts/build/arch/sparc.sh
@@ -3,21 +3,32 @@ CT_DoArchTupleValues() {
# That's the only thing to override
CT_TARGET_ARCH="sparc${target_bits_64}${CT_ARCH_SUFFIX}"
- # By default, sparc64-*-linux is configured with -mcpu=v9. However,
- # according to https://sourceware.org/ml/libc-alpha/2005-12/msg00027.html,
- # "There is no Linux sparc64 port that runs on non-UltraSPARC-I+ ISA CPUs."
- # There is a patch that would change the default to -mcpu=ultrasparc for
- # sparc64-*-linux configuration: https://patchwork.ozlabs.org/patch/409424/
- # but that patch has not been integrated (yet). One concern raised about
- # this patch was that -mcpu=ultrasparc can suboptimally schedule instructions
- # for newer SPARC CPUs. So, override to -mcpu=ultrasparc and warn the user.
- if [ "${CT_KERNEL}" = "linux" -a "${CT_ARCH_64}" = "y" -a -z "${CT_ARCH_CPU}" ]; then
- CT_DoLog WARN "Setting CPU to UltraSPARC-I for sparc64-linux. Set CT_ARCH_CPU if a different CPU is desired."
- CT_ARCH_WITH_CPU="--with-cpu=ultrasparc"
- if [ -n "${CT_ARCH_SUPPORTS_WITH_32_64}" -a -n "${CT_MULTILIB}" ]; then
- CT_ARCH_WITH_CPU_32="--with-cpu-32=ultrasparc"
- CT_ARCH_WITH_CPU_64="--with-cpu-64=ultrasparc"
- fi
+ if [ "${CT_KERNEL}" = "linux" -a -z "${CT_ARCH_CPU}" ]; then
+ if [ "${CT_ARCH_64}" = "y" ]; then
+ # By default, sparc64-*-linux is configured with -mcpu=v9. However,
+ # according to https://sourceware.org/ml/libc-alpha/2005-12/msg00027.html,
+ # "There is no Linux sparc64 port that runs on non-UltraSPARC-I+ ISA CPUs."
+ # There is a patch that would change the default to -mcpu=ultrasparc for
+ # sparc64-*-linux configuration: https://patchwork.ozlabs.org/patch/409424/
+ # but that patch has not been integrated (yet). One concern raised about
+ # this patch was that -mcpu=ultrasparc can suboptimally schedule instructions
+ # for newer SPARC CPUs. So, override to -mcpu=ultrasparc and warn the user.
+ CT_DoLog WARN "Setting CPU to UltraSPARC-I for sparc64-linux. Set CT_ARCH_CPU if a different CPU is desired."
+ CT_ARCH_WITH_CPU="--with-cpu=ultrasparc"
+ if [ -n "${CT_ARCH_SUPPORTS_WITH_32_64}" -a -n "${CT_MULTILIB}" ]; then
+ CT_ARCH_WITH_CPU_32="--with-cpu-32=ultrasparc"
+ CT_ARCH_WITH_CPU_64="--with-cpu-64=ultrasparc"
+ fi
+ else
+ # Similarly, sparc-*-linux defaults to v7. GLIBC 2.31 started to reject
+ # pre-v8 configurations with 2.31, and default v8 fails a subsequent test for
+ # using atomics (which are presumably, only available on some v8 CPUs).
+ # Therefore, default to v9.
+ if [ -z "${CT_GLIBC_SPARC_ALLOW_V7}" ]; then
+ CT_DoLog WARN "Setting CPU to V9 for sparc-linux. Set CT_ARCH_CPU if a different CPU is desired."
+ CT_ARCH_WITH_CPU="--with-cpu=v9"
+ fi
+ fi
fi
}