summaryrefslogtreecommitdiff
path: root/target
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2019-10-15 23:07:51 +0200
committerWaldemar Brodkorb <wbx@openadk.org>2019-10-15 23:08:36 +0200
commitfb1227583603bc6fefbdac5c1b1bf81cdf737d65 (patch)
treea5bc6785527cf8bdc19e7ea5b27ceadae366edf5 /target
parentfc597779adafc38a94c55798e42c11df610b7d4d (diff)
allow to build nds32 toolchain with old kernel
Diffstat (limited to 'target')
-rw-r--r--target/linux/Config.in.kernelversion1
-rw-r--r--target/linux/patches/3.10-nds32/futex.patch40
-rw-r--r--target/nds32/uclibc-ng.config7
3 files changed, 45 insertions, 3 deletions
diff --git a/target/linux/Config.in.kernelversion b/target/linux/Config.in.kernelversion
index 7aa58467f..8ee00c734 100644
--- a/target/linux/Config.in.kernelversion
+++ b/target/linux/Config.in.kernelversion
@@ -7,6 +7,7 @@ config ADK_TARGET_LINUX_KERNEL_NEW
choice
prompt "Linux Kernel version" if !ADK_TARGET_CHOOSE_ARCH
depends on ADK_TARGET_OS_LINUX
+default ADK_TARGET_LINUX_KERNEL_VERSION_3_10_NDS32 if ADK_TARGET_ARCH_NDS32
default ADK_TARGET_LINUX_KERNEL_VERSION_GIT if ADK_TARGET_BOARD_BCM28XX
default ADK_TARGET_LINUX_KERNEL_VERSION_GIT if ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG
default ADK_TARGET_LINUX_KERNEL_VERSION_GIT if ADK_TARGET_SYSTEM_KINETIS_K70
diff --git a/target/linux/patches/3.10-nds32/futex.patch b/target/linux/patches/3.10-nds32/futex.patch
new file mode 100644
index 000000000..f45e04293
--- /dev/null
+++ b/target/linux/patches/3.10-nds32/futex.patch
@@ -0,0 +1,40 @@
+diff -Nur linux-3.10-nds32.orig/arch/nds32/include/asm/futex.h linux-3.10-nds32/arch/nds32/include/asm/futex.h
+--- linux-3.10-nds32.orig/arch/nds32/include/asm/futex.h 2017-07-31 07:41:18.000000000 +0200
++++ linux-3.10-nds32/arch/nds32/include/asm/futex.h 2019-10-15 22:59:44.514997184 +0200
+@@ -24,10 +24,10 @@
+ #define __futex_atomic_op(insn, ret, oldval, tmp, uaddr, oparg) \
+ smp_mb(); \
+ asm volatile( \
+- " movi $r15, #0\n" \
+- "1: llw %1, [%2+$r15]\n" \
++ " movi $ta, #0\n" \
++ "1: llw %1, [%2+$ta]\n" \
+ " " insn "\n" \
+- "2: scw %0, [%2+$r15]\n" \
++ "2: scw %0, [%2+$ta]\n" \
+ " beqz %0, 1b\n" \
+ " movi %0, #0\n" \
+ "3:\n" \
+@@ -47,18 +47,18 @@
+
+ smp_mb();
+ asm volatile(
+- " movi $r15, #0\n"
+- "1: llw %1, [%6 + $r15]\n"
++ " movi $ta, #0\n"
++ "1: llw %1, [%6 + $ta]\n"
+ " sub %3, %1, %4\n"
+ " cmovz %2, %5, %3\n"
+ " cmovn %2, %1, %3\n"
+- "2: scw %2, [%6 + $r15]\n"
++ "2: scw %2, [%6 + $ta]\n"
+ " beqz %2, 1b\n"
+ "3:\n "
+ __futex_atomic_ex_table("%7")
+ : "+&r" (ret), "=&r" (val), "=&r" (tmp), "=&r" (flags)
+ : "r" (oldval), "r" (newval), "r" (uaddr), "i" (-EFAULT)
+- : "$r15", "memory");
++ : "$ta", "memory");
+ smp_mb();
+
+ *uval = val;
diff --git a/target/nds32/uclibc-ng.config b/target/nds32/uclibc-ng.config
index ee4791b35..30fd0f31a 100644
--- a/target/nds32/uclibc-ng.config
+++ b/target/nds32/uclibc-ng.config
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# uClibc-ng 1.0.25 C Library Configuration
+# uClibc-ng 1.0.32 C Library Configuration
#
# TARGET_aarch64 is not set
# TARGET_alpha is not set
@@ -10,6 +10,7 @@
# TARGET_bfin is not set
# TARGET_c6x is not set
# TARGET_cris is not set
+# TARGET_csky is not set
# TARGET_frv is not set
# TARGET_h8300 is not set
# TARGET_hppa is not set
@@ -24,9 +25,11 @@ TARGET_nds32=y
# TARGET_nios2 is not set
# TARGET_or1k is not set
# TARGET_powerpc is not set
+# TARGET_riscv64 is not set
# TARGET_sh is not set
# TARGET_sparc is not set
# TARGET_sparc64 is not set
+# TARGET_tile is not set
# TARGET_x86_64 is not set
# TARGET_xtensa is not set
@@ -78,7 +81,6 @@ LDSO_RUNPATH_OF_EXECUTABLE=y
LDSO_SAFE_RUNPATH=y
LDSO_SEARCH_INTERP_PATH=y
LDSO_LD_LIBRARY_PATH=y
-LDSO_NO_CLEANUP=y
UCLIBC_CTOR_DTOR=y
# LDSO_GNU_HASH_SUPPORT is not set
# HAS_NO_THREADS is not set
@@ -223,7 +225,6 @@ HARDWIRED_ABSPATH=y
# Security options
#
# UCLIBC_BUILD_PIE is not set
-# UCLIBC_HAS_ARC4RANDOM is not set
# UCLIBC_HAS_SSP is not set
# UCLIBC_BUILD_RELRO is not set
# UCLIBC_BUILD_NOW is not set