diff --git a/config/arch/nios2.in b/config/arch/nios2.in index c773860c..5d592db0 100644 --- a/config/arch/nios2.in +++ b/config/arch/nios2.in @@ -9,6 +9,7 @@ ## select ARCH_SUPPORTS_FLAT_FORMAT ## select GCC_REQUIRE_older_than_15 ## select GDB_REQUIRE_older_than_16 +## select GLIBC_REQUIRE_older_than_2_41 ## ## help The NIOS2 architecture, as defined by: ## help http://www.altera.com diff --git a/packages/glibc/2.41/0000-Add-ARC700-support.patch b/packages/glibc/2.41/0000-Add-ARC700-support.patch new file mode 100644 index 00000000..1b93a94c --- /dev/null +++ b/packages/glibc/2.41/0000-Add-ARC700-support.patch @@ -0,0 +1,92 @@ +From 36449920c501177b61c6fdc1f72875ca41084a8e Mon Sep 17 00:00:00 2001 +From: Rosen Penev +Date: Sat, 13 Feb 2021 17:08:21 +0300 +Subject: [PATCH] Add ARC700 support + +glibc does not officially support ARC700 so this adds the missing +pieces. I looked at uClibc-ng and a patch by Synopsis for glibc. + +[Alexey] Taken from https://github.com/openwrt/openwrt/commit/33646a51abcf15ff5c5363848287e1ed778b7467 + +Signed-off-by: Rosen Penev +Signed-off-by: Alexey Brodkin +--- + sysdeps/arc/atomic-machine.h | 4 ++++ + sysdeps/unix/sysv/linux/arc/syscall.S | 5 +++++ + sysdeps/unix/sysv/linux/arc/syscall_cancel.S | 6 ++++++ + sysdeps/unix/sysv/linux/arc/sysdep.h | 8 ++++++++ + 4 files changed, 23 insertions(+) + +--- a/sysdeps/arc/atomic-machine.h ++++ b/sysdeps/arc/atomic-machine.h +@@ -52,6 +52,10 @@ + __atomic_val_bysize (__arch_compare_and_exchange_val, int, \ + mem, new, old, __ATOMIC_ACQUIRE) + ++#ifdef __ARC700__ ++#define atomic_full_barrier() ({ asm volatile ("sync":::"memory"); }) ++#else + #define atomic_full_barrier() ({ asm volatile ("dmb 3":::"memory"); }) ++#endif + + #endif /* _ARC_BITS_ATOMIC_H */ +--- a/sysdeps/unix/sysv/linux/arc/syscall.S ++++ b/sysdeps/unix/sysv/linux/arc/syscall.S +@@ -24,8 +24,13 @@ + mov_s r1, r2 + mov_s r2, r3 + mov_s r3, r4 ++#ifdef __ARC700__ ++ mov r4, r5 ++ mov r5, r6 ++#else + mov_s r4, r5 + mov_s r5, r6 ++#endif + + ARC_TRAP_INSN + brhi r0, -4096, L (call_syscall_err) +--- a/sysdeps/unix/sysv/linux/arc/syscall_cancel.S ++++ b/sysdeps/unix/sysv/linux/arc/syscall_cancel.S +@@ -38,9 +38,15 @@ + mov_s r0, r2 + mov_s r1, r3 + mov_s r2, r4 ++#ifdef __ARC700__ ++ mov r3, r5 ++ mov r4, r6 ++ mov r5, r7 ++#else + mov_s r3, r5 + mov_s r4, r6 + mov_s r5, r7 ++#endif + trap_s 0 + + .globl __syscall_cancel_arch_end +--- a/sysdeps/unix/sysv/linux/arc/sysdep.h ++++ b/sysdeps/unix/sysv/linux/arc/sysdep.h +@@ -130,7 +130,11 @@ + mov r8, __NR_##syscall_name ASM_LINE_SEP \ + ARC_TRAP_INSN ASM_LINE_SEP + ++# ifdef __ARC700__ ++# define ARC_TRAP_INSN trap0 ++# else + # define ARC_TRAP_INSN trap_s 0 ++# endif + + #else /* !__ASSEMBLER__ */ + +@@ -139,7 +143,11 @@ + hidden_proto (__syscall_error) + # endif + ++# ifdef __ARC700__ ++# define ARC_TRAP_INSN "trap0 \n\t" ++# else + # define ARC_TRAP_INSN "trap_s 0 \n\t" ++#endif + + # define HAVE_CLONE3_WRAPPER 1 + diff --git a/packages/glibc/2.41/chksum b/packages/glibc/2.41/chksum new file mode 100644 index 00000000..b2eae604 --- /dev/null +++ b/packages/glibc/2.41/chksum @@ -0,0 +1,12 @@ +md5 glibc-2.41.tar.xz 19862601af60f73ac69e067d3e9267d4 +sha1 glibc-2.41.tar.xz 51151d596f4ca800e3220825f6ac07e5e9bc5d23 +sha256 glibc-2.41.tar.xz a5a26b22f545d6b7d7b3dd828e11e428f24f4fac43c934fb071b6a7d0828e901 +sha512 glibc-2.41.tar.xz 894a3e5a796bc13df30c26a5bfbe4d60b5dbdaac54e7763432235124b547070c7dda88c50584536870cab79183d8cad73a3ac6ed09bfe54fa8482aad07253169 +md5 glibc-2.41.tar.bz2 b696289e331b03d4920f01a5e40a1b19 +sha1 glibc-2.41.tar.bz2 f183c3fbd185b143ffec1e3ae3ee56badb914775 +sha256 glibc-2.41.tar.bz2 13cffc682feef721d575250bd4845f92950d3aab23c471279c0f70e497b08442 +sha512 glibc-2.41.tar.bz2 0c8a4493e2b3abc15d20d7d52e387656db8b619774cd555ce9b20709cee42526b68375884f92f9acb6e9a86ce82a8cb62141f78f92bd29db8d94fa413c81510f +md5 glibc-2.41.tar.gz 74e52947360bba6654272f6bdb90a1d9 +sha1 glibc-2.41.tar.gz 093600f3c3b15dd2d2cf488163fb3dfdc2d95b1e +sha256 glibc-2.41.tar.gz c7be6e25eeaf4b956f5d4d56a04d23e4db453fc07760f872903bb61a49519b80 +sha512 glibc-2.41.tar.gz 85943f8b0e0298d1db11da3c92d77364acd0d74f374651adc0289df9ba8a55230acded6ed5bac726be715318b8e879eb96daf5edb28239caa13a217f4f752898 diff --git a/packages/glibc/2.41/version.desc b/packages/glibc/2.41/version.desc new file mode 100644 index 00000000..e69de29b diff --git a/packages/glibc/package.desc b/packages/glibc/package.desc index 775f9d4b..aad2e887 100644 --- a/packages/glibc/package.desc +++ b/packages/glibc/package.desc @@ -3,6 +3,6 @@ repository='git git://sourceware.org/git/glibc.git' mirrors='$(CT_Mirrors GNU glibc)' # Cannot use MAJOR.MINOR as the relevant part because of 2.12: 2.12.2 was the most recent # bugfix release, but it didn't have glibc-ports released alongside it. -milestones='2.14 2.17 2.20 2.23 2.24 2.25 2.26 2.27 2.28 2.29 2.30 2.31 2.32 2.34 2.36 2.37 2.38' +milestones='2.14 2.17 2.20 2.23 2.24 2.25 2.26 2.27 2.28 2.29 2.30 2.31 2.32 2.34 2.36 2.37 2.38 2.41' archive_formats='.tar.xz .tar.bz2 .tar.gz' signature_format='packed/.sig'