summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mk/vars.mk6
-rw-r--r--package/dropbear/Makefile4
-rw-r--r--package/dropbear/patches/patch-src_svr-main_c16
-rw-r--r--package/dropbear/patches/patch-svr-main_c15
-rw-r--r--package/libffi/Makefile4
-rw-r--r--package/mosh/Makefile14
-rw-r--r--package/openocd/Makefile4
-rw-r--r--package/uclibc-ng-test/Makefile3
-rwxr-xr-xscripts/install.sh2
-rw-r--r--target/arm/Makefile5
-rw-r--r--target/arm/uclibc-ng-nommu.config2
-rw-r--r--target/config/Config.in.abi14
-rw-r--r--target/config/Config.in.binfmt3
-rw-r--r--target/config/Config.in.binutils4
-rw-r--r--target/config/Config.in.compiler13
-rw-r--r--target/config/Config.in.cpu6
-rw-r--r--target/config/Config.in.libc7
-rw-r--r--target/linux/config/Config.in.serial2
-rw-r--r--target/linux/config/Config.in.xtensa23
-rw-r--r--target/riscv64/kernel/starfive-visionfive238
-rw-r--r--target/sh/kernel/qemu-sh3
-rw-r--r--target/xtensa/Makefile13
-rw-r--r--target/xtensa/kernel/qemu-xtensa3
-rw-r--r--target/xtensa/overlay/xtensa_dc233c_call0.tarbin0 -> 942080 bytes
-rw-r--r--target/xtensa/overlay/xtensa_dc233c_windowed.tar (renamed from target/xtensa/overlay/xtensa_dc233c.tar)bin808960 -> 808960 bytes
-rw-r--r--target/xtensa/uclibc-ng-nommu.config38
-rw-r--r--toolchain/binutils/Makefile5
-rw-r--r--toolchain/binutils/Makefile.inc7
-rw-r--r--toolchain/gcc/Makefile5
-rw-r--r--toolchain/gcc/Makefile.inc16
-rw-r--r--toolchain/gcc/patches/10.5.0/revert-sparc.patch283
-rw-r--r--toolchain/gcc/patches/11.4.0/revert.sparc283
-rw-r--r--toolchain/glibc/Makefile1
-rw-r--r--toolchain/linux-headers/Makefile5
-rw-r--r--toolchain/uclibc-ng/Makefile.inc8
35 files changed, 187 insertions, 668 deletions
diff --git a/mk/vars.mk b/mk/vars.mk
index 1585833c6..672f03d9f 100644
--- a/mk/vars.mk
+++ b/mk/vars.mk
@@ -311,6 +311,12 @@ TARGET_CXXFLAGS+= -marm
endif
endif
+ifeq ($(ADK_TARGET_BINFMT_FDPIC),y)
+TARGET_CFLAGS+= -mfdpic
+TARGET_CXXFLAGS+= -mfdpic
+TARGET_LDFLAGS+= -mfdpic
+endif
+
# host compiler and linker flags
HOST_CPPFLAGS:= -I$(STAGING_HOST_DIR)/usr/include
ifeq ($(OS_FOR_BUILD),Darwin)
diff --git a/package/dropbear/Makefile b/package/dropbear/Makefile
index fa8eecf66..e432de66e 100644
--- a/package/dropbear/Makefile
+++ b/package/dropbear/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= dropbear
-PKG_VERSION:= 2024.84
+PKG_VERSION:= 2024.85
PKG_RELEASE:= 1
-PKG_HASH:= 16e22b66b333d6b7e504c43679d04ed6ca30f2838db40a21f935c850dfc01009
+PKG_HASH:= 86b036c433a69d89ce51ebae335d65c47738ccf90d13e5eb0fea832e556da502
PKG_DESCR:= ssh server/client designed for embedded systems
PKG_SECTION:= net/security
PKG_URL:= http://matt.ucc.asn.au/dropbear/
diff --git a/package/dropbear/patches/patch-src_svr-main_c b/package/dropbear/patches/patch-src_svr-main_c
new file mode 100644
index 000000000..f6f935004
--- /dev/null
+++ b/package/dropbear/patches/patch-src_svr-main_c
@@ -0,0 +1,16 @@
+--- dropbear-2024.85.orig/src/svr-main.c 2024-04-25 16:30:00.000000000 +0200
++++ dropbear-2024.85/src/svr-main.c 2024-05-07 14:35:09.650486568 +0200
+@@ -305,8 +305,13 @@ static void main_noinetd(int argc, char
+ #if DEBUG_NOFORK
+ fork_ret = 0;
+ #else
++#if DROPBEAR_VFORK
++ fork_ret = vfork();
++#else
++
+ fork_ret = fork();
+ #endif
++#endif
+ if (fork_ret < 0) {
+ dropbear_log(LOG_WARNING, "Error forking: %s", strerror(errno));
+ goto out;
diff --git a/package/dropbear/patches/patch-svr-main_c b/package/dropbear/patches/patch-svr-main_c
deleted file mode 100644
index b2d4007b8..000000000
--- a/package/dropbear/patches/patch-svr-main_c
+++ /dev/null
@@ -1,15 +0,0 @@
---- dropbear-2020.81.orig/svr-main.c 2020-10-29 14:35:50.000000000 +0100
-+++ dropbear-2020.81/svr-main.c 2020-11-04 05:04:33.736369225 +0100
-@@ -278,8 +278,12 @@ static void main_noinetd() {
- #if DEBUG_NOFORK
- fork_ret = 0;
- #else
-+#if DROPBEAR_VFORK
-+ fork_ret = vfork();
-+#else
- fork_ret = fork();
- #endif
-+#endif
- if (fork_ret < 0) {
- dropbear_log(LOG_WARNING, "Error forking: %s", strerror(errno));
- goto out;
diff --git a/package/libffi/Makefile b/package/libffi/Makefile
index 80857706b..c6cfe64e9 100644
--- a/package/libffi/Makefile
+++ b/package/libffi/Makefile
@@ -4,9 +4,9 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= libffi
-PKG_VERSION:= 3.4.4
+PKG_VERSION:= 3.4.6
PKG_RELEASE:= 1
-PKG_HASH:= d66c56ad259a82cf2a9dfc408b32bf5da52371500b84745f7fb8b645712df676
+PKG_HASH:= b0dea9df23c863a7a50e825440f3ebffabd65df1497108e5d437747843895a4e
PKG_DESCR:= foreign function interface library
PKG_SECTION:= libs/misc
HOST_BUILDDEP:= libtool-host
diff --git a/package/mosh/Makefile b/package/mosh/Makefile
index dc18e02bd..c156cb863 100644
--- a/package/mosh/Makefile
+++ b/package/mosh/Makefile
@@ -4,26 +4,30 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= mosh
-PKG_VERSION:= 1.3.2
+PKG_VERSION:= 1.4.0
PKG_RELEASE:= 1
-PKG_HASH:= da600573dfa827d88ce114e0fed30210689381bbdcff543c931e4d6a2e851216
+PKG_HASH:= ae581fbddf038730af9eee4d319a483288395a0722d0c94c7efb7fdbdbb0dbac
PKG_DESCR:= mobile shell
PKG_SECTION:= net/security
-PKG_DEPENDS:= zlib ncurses libressl perl
+PKG_DEPENDS:= zlib libncurses libressl perl protobuf
PKG_BUILDDEP:= protobuf-host protobuf zlib ncurses libressl
PKG_NEEDS:= c++
PKG_URL:= https://mosh.org/
-PKG_SITES:= https://mosh.org/
+PKG_SITES:= https://github.com/mobile-shell/mosh/archive/refs/tags/
DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz
+WRKDIST= ${WRKDIR}/$(PKG_NAME)-$(PKG_NAME)-$(PKG_VERSION)
+
include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,MOSH,mosh,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+AUTOTOOL_STYLE:= autogen
+
mosh-install:
$(INSTALL_DIR) $(IDIR_MOSH)/usr/bin
- $(INSTALL_BIN) $(WRKINST)/usr/bin/mosh \
+ $(INSTALL_BIN) $(WRKINST)/usr/bin/mosh* \
$(IDIR_MOSH)/usr/bin
include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/openocd/Makefile b/package/openocd/Makefile
index 689df4011..078353c39 100644
--- a/package/openocd/Makefile
+++ b/package/openocd/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= openocd
-PKG_VERSION:= 0.11.0
+PKG_VERSION:= 0.12.0
PKG_RELEASE:= 1
-PKG_HASH:= 43a3ce734aff1d3706ad87793a9f3a5371cb0e357f0ffd0a151656b06b3d1e7d
+PKG_HASH:= af254788be98861f2bd9103fe6e60a774ec96a8c374744eef9197f6043075afa
PKG_DESCR:= jtag flash and debugging utility
PKG_SECTION:= dev/tools
HOST_BUILDDEP:= libusb-host
diff --git a/package/uclibc-ng-test/Makefile b/package/uclibc-ng-test/Makefile
index 44a7e9cde..d05e57c91 100644
--- a/package/uclibc-ng-test/Makefile
+++ b/package/uclibc-ng-test/Makefile
@@ -47,9 +47,6 @@ endif
ifeq ($(ADK_TARGET_ARCH_KVX),y)
XAKE_FLAGS+= NO_TLS=1
endif
-ifeq ($(ADK_TARGET_WITH_MMU),)
-XAKE_FLAGS+= NO_NPTL=1
-endif
uclibc-ng-test-install:
${INSTALL_DIR} ${IDIR_UCLIBC_NG_TEST}/etc
diff --git a/scripts/install.sh b/scripts/install.sh
index 867a4154f..e3494d5d6 100755
--- a/scripts/install.sh
+++ b/scripts/install.sh
@@ -589,7 +589,7 @@ case $target {
(( quiet )) || print Extracting installation archive...
mount_fs "$rootpart" "$R" ext4
-xz -dc "$src" | (cd "$R"; tar -xpf -)
+gzip -dc "$src" | (cd "$R"; tar -xpf -)
if (( datafssz )); then
mkdir -m0755 "$R"/data
diff --git a/target/arm/Makefile b/target/arm/Makefile
index e5c7a3a6d..1e2cc478b 100644
--- a/target/arm/Makefile
+++ b/target/arm/Makefile
@@ -188,6 +188,9 @@ endif
ifeq ($(ADK_TARGET_SYSTEM_QEMU_ARM_XILINX_ZYNQ),y)
VENDOR:=xilinx/
endif
+ifeq ($(ADK_TARGET_SYSTEM_ST_STM32F746G),y)
+VENDOR:=st/
+endif
endif
dtb-install:
@@ -250,7 +253,7 @@ ifeq ($(ADK_TARGET_SYSTEM_ST_STM32F769),y)
${KERNEL_MAKE} dtbs $(MAKE_TRACE)
endif
ifeq ($(ADK_TARGET_SYSTEM_ST_STM32F746G),y)
- ${KERNEL_MAKE} dtbs $(MAKE_TRACE)
+ ${KERNEL_MAKE} $(VENDOR)stm32f746-disco.dtb $(MAKE_TRACE)
endif
for x in $(LINUX_DIR)/arch/arm/boot/dts/$(VENDOR)*.dtb; do \
[[ -e "$$x" ]] && cp $(LINUX_DIR)/arch/arm/boot/dts/$(VENDOR)*.dtb $(FW_DIR); \
diff --git a/target/arm/uclibc-ng-nommu.config b/target/arm/uclibc-ng-nommu.config
index 45db787b4..ada9e4bb6 100644
--- a/target/arm/uclibc-ng-nommu.config
+++ b/target/arm/uclibc-ng-nommu.config
@@ -78,7 +78,7 @@ UCLIBC_CTOR_DTOR=y
HAS_NO_THREADS=y
# UCLIBC_HAS_LINUXTHREADS is not set
# UCLIBC_HAS_THREADS_NATIVE is not set
-PTHREADS_STACK_DEFAULT_SIZE=2097152
+PTHREADS_STACK_DEFAULT_SIZE=16384
UCLIBC_HAS_SYSLOG=y
UCLIBC_HAS_LFS=y
MALLOC=y
diff --git a/target/config/Config.in.abi b/target/config/Config.in.abi
index 9995ba51d..db799f70e 100644
--- a/target/config/Config.in.abi
+++ b/target/config/Config.in.abi
@@ -3,6 +3,18 @@
choice
prompt "ABI"
+depends on ADK_TARGET_ARCH_XTENSA && ADK_TARGET_CPU_XTENSA_DC233C
+
+config ADK_TARGET_ABI_WINDOWED
+ bool "Windowed ABI"
+
+config ADK_TARGET_ABI_CALL0
+ bool "Call0 ABI"
+
+endchoice
+
+choice
+prompt "ABI"
depends on ADK_TARGET_ARCH_MIPS64
config ADK_TARGET_ABI_N32
@@ -62,6 +74,8 @@ config ADK_TARGET_ABI
default "x32" if ADK_TARGET_ABI_X32
default "eabihf" if ADK_TARGET_ARCH_ARM && ADK_TARGET_HARD_FLOAT
default "eabi" if ADK_TARGET_ARCH_ARM
+ default "windowed" if ADK_TARGET_ABI_WINDOWED
+ default "call0" if ADK_TARGET_ABI_CALL0
config ADK_TARGET_ABI_RISCV
depends on ADK_TARGET_ARCH_RISCV32 || ADK_TARGET_ARCH_RISCV64
diff --git a/target/config/Config.in.binfmt b/target/config/Config.in.binfmt
index 2c690724a..704ca073d 100644
--- a/target/config/Config.in.binfmt
+++ b/target/config/Config.in.binfmt
@@ -24,7 +24,8 @@ config ADK_TARGET_BINFMT_FLAT
config ADK_TARGET_BINFMT_FDPIC
bool "FDPIC"
select BUSYBOX_NOMMU
- depends on ADK_TARGET_ARCH_ARM || ADK_TARGET_ARCH_BFIN || ADK_TARGET_ARCH_FRV || ADK_TARGET_ARCH_SH
+ depends on ADK_TARGET_ARCH_ARM || ADK_TARGET_ARCH_BFIN || ADK_TARGET_ARCH_FRV || ADK_TARGET_ARCH_SH \
+ || ADK_TARGET_ARCH_XTENSA
depends on !ADK_TARGET_WITH_MMU
config ADK_TARGET_BINFMT_DSBT
diff --git a/target/config/Config.in.binutils b/target/config/Config.in.binutils
index b93eaf31d..822a02dfb 100644
--- a/target/config/Config.in.binutils
+++ b/target/config/Config.in.binutils
@@ -55,4 +55,8 @@ config ADK_TOOLCHAIN_BINUTILS_KVX
bool "kvx-coolidge"
depends on ADK_TARGET_ARCH_KVX
+config ADK_TOOLCHAIN_BINUTILS_XTENSA
+ bool "xtensa-fdpic-abi-spec-1.2"
+ depends on ADK_TARGET_ARCH_XTENSA
+
endchoice
diff --git a/target/config/Config.in.compiler b/target/config/Config.in.compiler
index 2012acc4f..5296d5e78 100644
--- a/target/config/Config.in.compiler
+++ b/target/config/Config.in.compiler
@@ -22,7 +22,6 @@ default ADK_TOOLCHAIN_GCC_7 if ADK_TARGET_ARCH_C6X # ICE with newer GCC
default ADK_TOOLCHAIN_GCC_9 if ADK_TARGET_ARCH_BFIN && ADK_TARGET_BINFMT_FDPIC
default ADK_TOOLCHAIN_GCC_10 if ADK_TARGET_ARCH_CRIS # no longer supported
default ADK_TOOLCHAIN_GCC_10 if ADK_TARGET_CPU_SH_J2 # j2.patch
-default ADK_TOOLCHAIN_GCC_11 if ADK_TARGET_ARCH_SPARC # bus error without patch
default ADK_TOOLCHAIN_GCC_13
config ADK_TOOLCHAIN_GCC_GIT
@@ -31,12 +30,17 @@ config ADK_TOOLCHAIN_GCC_GIT
depends on !ADK_TARGET_ARCH_METAG
depends on !ADK_TARGET_ARCH_NDS32
+config ADK_TOOLCHAIN_GCC_14
+ bool "14.1.0"
+ depends on !ADK_TARGET_ARCH_AVR32
+ depends on !ADK_TARGET_ARCH_CRIS
+ depends on !ADK_TARGET_ARCH_METAG
+
config ADK_TOOLCHAIN_GCC_13
bool "13.2.0"
depends on !ADK_TARGET_ARCH_AVR32
depends on !ADK_TARGET_ARCH_CRIS
depends on !ADK_TARGET_ARCH_METAG
- depends on !ADK_TARGET_ARCH_SPARC
config ADK_TOOLCHAIN_GCC_12
bool "12.3.0"
@@ -44,7 +48,6 @@ config ADK_TOOLCHAIN_GCC_12
depends on !ADK_TARGET_ARCH_CRIS
depends on !ADK_TARGET_ARCH_METAG
depends on !ADK_TARGET_ARCH_LOONGARCH
- depends on !ADK_TARGET_ARCH_SPARC
config ADK_TOOLCHAIN_GCC_11
bool "11.4.0"
@@ -114,4 +117,8 @@ config ADK_TOOLCHAIN_GCC_KVX
bool "coolidge"
depends on ADK_TARGET_ARCH_KVX
+config ADK_TOOLCHAIN_GCC_XTENSA
+ bool "xtensa-fdpic-abi-spec-1.2"
+ depends on ADK_TARGET_ARCH_XTENSA
+
endchoice
diff --git a/target/config/Config.in.cpu b/target/config/Config.in.cpu
index c06eca95b..d7984a44e 100644
--- a/target/config/Config.in.cpu
+++ b/target/config/Config.in.cpu
@@ -1830,9 +1830,9 @@ config ADK_TARGET_CPU_XTENSA_DC233C
select ADK_TARGET_SUPPORTS_THREADS
select ADK_TARGET_SUPPORTS_NPTL
select ADK_TARGET_SUPPORTS_LT
- select ADK_TARGET_KERNEL_UIMAGE
- select ADK_LINUX_KERNEL_XTENSA_VARIANT_DC233C if ADK_TARGET_OS_LINUX
- select ADK_LINUX_KERNEL_INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX if ADK_TARGET_OS_LINUX
+ select ADK_TARGET_KERNEL_IMAGE
+ select ADK_LINUX_KERNEL_XTENSA_VARIANT_DC233C if ADK_TARGET_WITH_MMU
+ select ADK_LINUX_KERNEL_INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX if ADK_TARGET_WITH_MMU
depends on ADK_TARGET_ARCH_XTENSA
config ADK_TARGET_CPU_XTENSA_DC232B
diff --git a/target/config/Config.in.libc b/target/config/Config.in.libc
index 9b9bc146e..c4b287072 100644
--- a/target/config/Config.in.libc
+++ b/target/config/Config.in.libc
@@ -150,8 +150,8 @@ choice
prompt "Target C library version"
depends on !ADK_TARGET_CHOOSE_ARCH
-config ADK_TARGET_LIB_UCLIBC_NG_1_0_47
- bool "1.0.47"
+config ADK_TARGET_LIB_UCLIBC_NG_1_0_48
+ bool "1.0.48"
depends on ADK_TARGET_LIB_UCLIBC_NG
config ADK_TARGET_LIB_UCLIBC_NG_GIT
@@ -200,7 +200,7 @@ config ADK_TARGET_LIBC
config ADK_LIBC_VERSION
string
- default "1.0.47" if ADK_TARGET_LIB_UCLIBC_NG_1_0_47
+ default "1.0.48" if ADK_TARGET_LIB_UCLIBC_NG_1_0_48
default "1.2.5" if ADK_TARGET_LIB_MUSL_1_2_5
default "2.39" if ADK_TARGET_LIB_GLIBC_2_39
default "4.4.0" if ADK_TARGET_LIB_NEWLIB_4_4_0
@@ -220,6 +220,7 @@ config ADK_TARGET_SUFFIX
default "gnux32" if ADK_TARGET_LIB_GLIBC && ADK_TARGET_ABI_X32 && ADK_LINUX_64
default "gnuspe" if ADK_TARGET_LIB_GLIBC && ADK_TARGET_ARCH_PPC && ADK_TARGET_ARCH_PPC_WITH_SPE
default "gnu" if ADK_TARGET_LIB_GLIBC
+ default "uclibcfdpic" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ARCH_XTENSA && ADK_TARGET_BINFMT_FDPIC
default "uclinuxfdpiceabi" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ARCH_ARM && ADK_TARGET_BINFMT_FDPIC
default "uclibceabihf" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ARCH_ARM && ADK_TARGET_HARD_FLOAT
default "uclibceabi" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ARCH_ARM
diff --git a/target/linux/config/Config.in.serial b/target/linux/config/Config.in.serial
index ac35fb1e2..c22746371 100644
--- a/target/linux/config/Config.in.serial
+++ b/target/linux/config/Config.in.serial
@@ -121,13 +121,13 @@ config ADK_LINUX_KERNEL_SERIAL_8250
|| ADK_TARGET_SYSTEM_ROCKPI4_PLUS \
|| ADK_TARGET_SYSTEM_STARFIVE_VISIONFIVE2
select ADK_LINUX_KERNEL_SERIAL_8250_PNP if ADK_TARGET_SYSTEM_PCENGINES_APU
- select ADK_LINUX_KERNEL_SERIAL_8250_PCI if ADK_TARGET_SYSTEM_STARFIVE_VISIONFIVE2
select ADK_LINUX_KERNEL_SERIAL_8250_DW if ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG
select ADK_LINUX_KERNEL_SERIAL_8250_DW if ADK_TARGET_SYSTEM_ORANGE_PI0
select ADK_LINUX_KERNEL_SERIAL_8250_DW if ADK_TARGET_SYSTEM_SYNOPSYS_HSDK
select ADK_LINUX_KERNEL_SERIAL_8250_DW if ADK_TARGET_SYSTEM_QEMU_ARC
select ADK_LINUX_KERNEL_SERIAL_8250_DW if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
select ADK_LINUX_KERNEL_SERIAL_8250_DW if ADK_TARGET_SYSTEM_STARFIVE_VISIONFIVE2
+ select ADK_LINUX_KERNEL_SERIAL_8250_EXTENDED if ADK_TARGET_SYSTEM_VISIONFIVE2
select ADK_LINUX_KERNEL_SERIAL_8250_DMA if ADK_TARGET_SYSTEM_ORANGE_PI0
select ADK_LINUX_KERNEL_SERIAL_8250_INGENIC if ADK_TARGET_SYSTEM_IMGTEC_CI20
select ADK_LINUX_KERNEL_SERIAL_8250_BCM2835AUX if ADK_TARGET_SYSTEM_RASPBERRY_PI4
diff --git a/target/linux/config/Config.in.xtensa b/target/linux/config/Config.in.xtensa
index 7a9f12120..570900e0b 100644
--- a/target/linux/config/Config.in.xtensa
+++ b/target/linux/config/Config.in.xtensa
@@ -12,11 +12,34 @@ config ADK_LINUX_KERNEL_INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX
config ADK_LINUX_KERNEL_XTENSA_VARIANT_CUSTOM
bool
+ default y if ADK_TARGET_BINFMT_FDPIC
+ default y if ADK_TARGET_BINFMT_FLAT
config ADK_LINUX_KERNEL_XTENSA_VARIANT_CUSTOM_NAME
string
+ default "dc233c" if ADK_TARGET_CPU_XTENSA_DC233C
+ default "dc232b" if ADK_TARGET_CPU_XTENSA_DC232B
default "de212" if ADK_TARGET_CPU_XTENSA_DE212
config ADK_LINUX_KERNEL_BUILTIN_DTB
string
default "kc705_nommu" if ADK_TARGET_CPU_XTENSA_DE212
+
+config ADK_LINUX_KERNEL_USER_ABI_CALL0_ONLY
+ bool
+ default y if ADK_TARGET_ABI_CALL0
+
+config ADK_LINUX_KERNEL_MEMMAP_CACHEATTR
+ hex
+ default "0x2cccccc7"
+ depends on !ADK_TARGET_WITH_MMU
+
+config ADK_LINUX_KERNEL_KERNEL_LOAD_ADDRESS
+ hex
+ default "0x00003000"
+ depends on !ADK_TARGET_WITH_MMU
+
+config ADK_LINUX_KERNEL_DEFAULT_MEM_START
+ hex
+ default "0x00000000"
+ depends on !ADK_TARGET_WITH_MMU
diff --git a/target/riscv64/kernel/starfive-visionfive2 b/target/riscv64/kernel/starfive-visionfive2
index 8bc705d87..94fb37e55 100644
--- a/target/riscv64/kernel/starfive-visionfive2
+++ b/target/riscv64/kernel/starfive-visionfive2
@@ -1,50 +1,14 @@
CONFIG_RISCV=y
+CONFIG_ARCH_RV64I=y
CONFIG_SOC_STARFIVE=y
CONFIG_ARCH_STARFIVE=y
CONFIG_FPU=y
-CONFIG_RISCV_USE_LINKER_RELAXATION=y
CONFIG_RISCV_SBI=y
-CONFIG_ARCH_FLATMEM_ENABLE=y
-CONFIG_ARCH_SPARSEMEM_ENABLE=y
-CONFIG_ARCH_SELECT_MEMORY_MODEL=y
-CONFIG_ARCH_SUPPORTS_UPROBES=y
-CONFIG_STACKTRACE_SUPPORT=y
-CONFIG_GENERIC_BUG=y
-CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
-CONFIG_GENERIC_CALIBRATE_DELAY=y
-CONFIG_GENERIC_CSUM=y
-CONFIG_GENERIC_HWEIGHT=y
-CONFIG_FIX_EARLYCON_MEM=y
-CONFIG_LOCKDEP_SUPPORT=y
-CONFIG_RISCV_DMA_NONCOHERENT=y
-CONFIG_AS_HAS_INSN=y
-CONFIG_AS_HAS_OPTION_ARCH=y
-CONFIG_ARCH_STARFIVE=y
-CONFIG_SOC_STARFIVE=y
CONFIG_ERRATA_SIFIVE=y
CONFIG_ERRATA_SIFIVE_CIP_453=y
CONFIG_ERRATA_SIFIVE_CIP_1200=y
CONFIG_NONPORTABLE=y
-CONFIG_ARCH_RV64I=y
-CONFIG_CMODEL_MEDANY=y
-CONFIG_MODULE_SECTIONS=y
-CONFIG_SMP=y
-CONFIG_HOTPLUG_CPU=y
-CONFIG_TUNE_GENERIC=y
-CONFIG_RISCV_ALTERNATIVE=y
-CONFIG_RISCV_ISA_C=y
-CONFIG_RISCV_ISA_SVNAPOT=y
-CONFIG_TOOLCHAIN_HAS_V=y
-CONFIG_RISCV_ISA_V=y
-CONFIG_RISCV_ISA_V_DEFAULT_ENABLE=y
-CONFIG_TOOLCHAIN_HAS_ZBB=y
-CONFIG_RISCV_ISA_ZBB=y
-CONFIG_RISCV_ISA_ZICBOM=y
-CONFIG_RISCV_ISA_ZICBOZ=y
-CONFIG_TOOLCHAIN_HAS_ZIHINTPAUSE=y
-CONFIG_TOOLCHAIN_NEEDS_EXPLICIT_ZICSR_ZIFENCEI=y
-CONFIG_FPU=y
CONFIG_IRQ_STACKS=y
CONFIG_RISCV_MISALIGNED=y
CONFIG_HZ_250=y
diff --git a/target/sh/kernel/qemu-sh b/target/sh/kernel/qemu-sh
index 7a2e8f458..58dfc450f 100644
--- a/target/sh/kernel/qemu-sh
+++ b/target/sh/kernel/qemu-sh
@@ -3,7 +3,7 @@ CONFIG_SUPERH32=y
CONFIG_CPU_SH4=y
CONFIG_CPU_SUBTYPE_SH7751R=y
CONFIG_MEMORY_START=0x0c000000
-CONFIG_MEMORY_SIZE=0x04000000
+CONFIG_MEMORY_SIZE=0x07000000
CONFIG_29BIT=y
CONFIG_VSYSCALL=y
CONFIG_SH_FPU=y
@@ -15,4 +15,3 @@ CONFIG_CMDLINE_EXTEND=y
CONFIG_SERIAL_SH_SCI=y
CONFIG_SERIAL_SH_SCI_NR_UARTS=2
CONFIG_SERIAL_SH_SCI_CONSOLE=y
-CONFIG_COMPAT_32BIT_TIME=y
diff --git a/target/xtensa/Makefile b/target/xtensa/Makefile
index 457783bfc..da41fc839 100644
--- a/target/xtensa/Makefile
+++ b/target/xtensa/Makefile
@@ -5,24 +5,21 @@ include $(ADK_TOPDIR)/rules.mk
include $(ADK_TOPDIR)/mk/kernel-build.mk
include $(ADK_TOPDIR)/mk/image.mk
-ifeq ($(ADK_TARGET_CPU_XTENSA_DE212),y)
-KERNEL:=$(LINUX_DIR)/arch/xtensa/boot/Image.elf
-else
-KERNEL:=$(LINUX_DIR)/arch/xtensa/boot/uImage
-endif
-
QEMU_ARGS:=${ADK_QEMU_ARGS}
ifeq ($(ADK_TARGET_CPU_XTENSA_DC233C),y)
-QEMU_ARGS+=-M kc705
-QEMU_ARGS+=-cpu dc233c
+QEMU_ARGS+=-M lx60
+QEMU_ARGS+=-cpu dc233c -m 128
+KERNEL:=$(LINUX_DIR)/arch/xtensa/boot/Image.elf
endif
ifeq ($(ADK_TARGET_CPU_XTENSA_DC232B),y)
QEMU_ARGS+=-M kc705
QEMU_ARGS+=-cpu dc232b
+KERNEL:=$(LINUX_DIR)/arch/xtensa/boot/uImage
endif
ifeq ($(ADK_TARGET_CPU_XTENSA_DE212),y)
QEMU_ARGS+=-M kc705-nommu
QEMU_ARGS+=-cpu de212 -m 256
+KERNEL:=$(LINUX_DIR)/arch/xtensa/boot/Image.elf
endif
# target helper text
diff --git a/target/xtensa/kernel/qemu-xtensa b/target/xtensa/kernel/qemu-xtensa
index 8d6bac0b9..9f4c49f45 100644
--- a/target/xtensa/kernel/qemu-xtensa
+++ b/target/xtensa/kernel/qemu-xtensa
@@ -1,5 +1,6 @@
CONFIG_XTENSA=y
+CONFIG_XTENSA_UNALIGNED_USER=y
CONFIG_XTENSA_PLATFORM_XTFPGA=y
CONFIG_CMDLINE_BOOL=y
-CONFIG_CMDLINE="console=ttyS0,38400 memmap=128M@0"
+CONFIG_CMDLINE="earlycon=uart8250,mmio32,0xfd050020,115200n8 console=ttyS0,115200n8 memmap=0x08000000@0"
CONFIG_SECTION_MISMATCH_WARN_ONLY=y
diff --git a/target/xtensa/overlay/xtensa_dc233c_call0.tar b/target/xtensa/overlay/xtensa_dc233c_call0.tar
new file mode 100644
index 000000000..c36f65cc4
--- /dev/null
+++ b/target/xtensa/overlay/xtensa_dc233c_call0.tar
Binary files differ
diff --git a/target/xtensa/overlay/xtensa_dc233c.tar b/target/xtensa/overlay/xtensa_dc233c_windowed.tar
index 56ccc5b31..56ccc5b31 100644
--- a/target/xtensa/overlay/xtensa_dc233c.tar
+++ b/target/xtensa/overlay/xtensa_dc233c_windowed.tar
Binary files differ
diff --git a/target/xtensa/uclibc-ng-nommu.config b/target/xtensa/uclibc-ng-nommu.config
index e9f9a7546..b2a2ae778 100644
--- a/target/xtensa/uclibc-ng-nommu.config
+++ b/target/xtensa/uclibc-ng-nommu.config
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# uClibc-ng 1.0.45 C Library Configuration
+# uClibc-ng 1.0.48 C Library Configuration
#
# TARGET_aarch64 is not set
# TARGET_alpha is not set
@@ -43,9 +43,9 @@ TARGET_ARCH_BITS=32
TARGET_ARCH="xtensa"
FORCE_OPTIONS_FOR_ARCH=y
TARGET_SUBARCH=""
-UCLIBC_FORMAT_FLAT=y
+UCLIBC_FORMAT_FDPIC_ELF=y
+# UCLIBC_FORMAT_FLAT is not set
# UCLIBC_FORMAT_FLAT_SEP_DATA is not set
-# UCLIBC_FORMAT_SHARED_FLAT is not set
ARCH_HAS_DEPRECATED_SYSCALLS=y
ARCH_ANY_ENDIAN=y
ARCH_LITTLE_ENDIAN=y
@@ -66,13 +66,31 @@ HAVE_DOT_CONFIG=y
# General Library Settings
#
DOPIC=y
-# STATIC_PIE is not set
-ARCH_HAS_NO_SHARED=y
-ARCH_HAS_NO_LDSO=y
ARCH_HAS_UCONTEXT=y
+HAVE_LDSO=y
+HAVE_SHARED=y
+# FORCE_SHAREABLE_TEXT_SEGMENTS is not set
+LDSO_LDD_SUPPORT=y
+LDSO_CACHE_SUPPORT=y
+LDSO_PRELOAD_ENV_SUPPORT=y
+# LDSO_PRELOAD_FILE_SUPPORT is not set
+LDSO_BASE_FILENAME="ld.so"
+# LDSO_STANDALONE_SUPPORT is not set
+# LDSO_PRELINK_SUPPORT is not set
+UCLIBC_STATIC_LDCONFIG=y
+LDSO_RUNPATH=y
+# LDSO_RUNPATH_OF_EXECUTABLE is not set
+LDSO_SAFE_RUNPATH=y
+LDSO_SEARCH_INTERP_PATH=y
+LDSO_LD_LIBRARY_PATH=y
UCLIBC_CTOR_DTOR=y
-HAS_NO_THREADS=y
+# LDSO_GNU_HASH_SUPPORT is not set
+# HAS_NO_THREADS is not set
# UCLIBC_HAS_LINUXTHREADS is not set
+UCLIBC_HAS_THREADS_NATIVE=y
+UCLIBC_HAS_THREADS=y
+UCLIBC_HAS_TLS=y
+# PTHREADS_DEBUG_SUPPORT is not set
PTHREADS_STACK_DEFAULT_SIZE=2097152
UCLIBC_HAS_SYSLOG=y
UCLIBC_HAS_LFS=y
@@ -151,6 +169,7 @@ UCLIBC_DNSRAND_MODE_PRNGPLUS=y
#
UCLIBC_HAS_STRING_GENERIC_OPT=y
UCLIBC_HAS_STRING_ARCH_OPT=y
+UCLIBC_HAS_STDIO_FUTEXES=y
UCLIBC_HAS_CTYPE_TABLES=y
UCLIBC_HAS_CTYPE_SIGNED=y
# UCLIBC_HAS_CTYPE_UNSAFE is not set
@@ -214,6 +233,8 @@ HARDWIRED_ABSPATH=y
# Security options
#
# UCLIBC_HAS_SSP is not set
+UCLIBC_BUILD_RELRO=y
+# UCLIBC_BUILD_NOW is not set
UCLIBC_BUILD_NOEXECSTACK=y
#
@@ -224,6 +245,9 @@ UCLIBC_EXTRA_CFLAGS=""
# DODEBUG is not set
# DOSTRIP is not set
# DOASSERTS is not set
+# SUPPORT_LD_DEBUG is not set
+# SUPPORT_LD_DEBUG_EARLY is not set
# UCLIBC_MALLOC_DEBUGGING is not set
+# UCLIBC_HAS_BACKTRACE is not set
WARNINGS="-Wall"
# EXTRA_WARNINGS is not set
diff --git a/toolchain/binutils/Makefile b/toolchain/binutils/Makefile
index 63b1080fb..5e2431165 100644
--- a/toolchain/binutils/Makefile
+++ b/toolchain/binutils/Makefile
@@ -44,8 +44,13 @@ endif
$(WRKBUILD)/.configured:
ifeq ($(ADK_TARGET_ARCH_XTENSA),y)
+ifeq ($(ADK_TARGET_ABI),)
tar xf $(ADK_TOPDIR)/target/xtensa/overlay/xtensa_$(ADK_TARGET_CPU_TYPE).tar \
--strip-components=1 -C $(WRKSRC) binutils
+else
+ tar xf $(ADK_TOPDIR)/target/xtensa/overlay/xtensa_$(ADK_TARGET_CPU_TYPE)_$(ADK_TARGET_ABI).tar \
+ --strip-components=1 -C $(WRKSRC) binutils
+endif
endif
(cd $(WRKBUILD); PATH='$(HOST_PATH)' \
MAKEINFO=true \
diff --git a/toolchain/binutils/Makefile.inc b/toolchain/binutils/Makefile.inc
index 758539cf0..e58f739cf 100644
--- a/toolchain/binutils/Makefile.inc
+++ b/toolchain/binutils/Makefile.inc
@@ -65,6 +65,13 @@ PKG_HASH:= 71d37c96451333c5c0b84b170169fdcb138bbb27397dc06281905d9717c8ed64
PKG_SITES:= ${MASTER_SITE_GNU:=binutils/}
DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.bz2
endif
+ifeq ($(ADK_TOOLCHAIN_BINUTILS_XTENSA),y)
+PKG_VERSION:= xtensa-fdpic-abi-spec-1.2
+PKG_GIT:= tag
+PKG_RELEASE:= 1
+PKG_SITES:= https://github.com/jcmvbkbc/binutils-gdb-xtensa.git
+DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
+endif
ifeq ($(ADK_TOOLCHAIN_BINUTILS_GIT),y)
PKG_VERSION:= git
PKG_RELEASE:= 1
diff --git a/toolchain/gcc/Makefile b/toolchain/gcc/Makefile
index 175af8aae..2b2f7e03c 100644
--- a/toolchain/gcc/Makefile
+++ b/toolchain/gcc/Makefile
@@ -286,8 +286,13 @@ GCC_BUILD_DIR_FINAL:= $(WRKBUILD)-final
$(GCC_BUILD_DIR_INITIAL)/.configured:
ifeq ($(ADK_TARGET_ARCH_XTENSA),y)
+ifeq ($(ADK_TARGET_ABI),)
tar xf $(ADK_TOPDIR)/target/xtensa/overlay/xtensa_$(ADK_TARGET_CPU_TYPE).tar \
--strip-components=1 -C $(WRKSRC) gcc
+else
+ tar xf $(ADK_TOPDIR)/target/xtensa/overlay/xtensa_$(ADK_TARGET_CPU_TYPE)_$(ADK_TARGET_ABI).tar \
+ --strip-components=1 -C $(WRKSRC) gcc
+endif
endif
mkdir -p $(GCC_BUILD_DIR_INITIAL)
# these symlinks are very important, do not remove
diff --git a/toolchain/gcc/Makefile.inc b/toolchain/gcc/Makefile.inc
index b6c24865a..efae5e6f7 100644
--- a/toolchain/gcc/Makefile.inc
+++ b/toolchain/gcc/Makefile.inc
@@ -2,6 +2,14 @@
# material, please see the LICENCE file in the top-level directory.
PKG_NAME:= gcc
+ifeq ($(ADK_TOOLCHAIN_GCC_14),y)
+PKG_VERSION:= 14.1.0
+PKG_HASH:= a0be066c02775002a0fa65ad3c65fb56a8bfd923d072a26ed148c0439ecdb68f
+PKG_SITES:= ${MASTER_SITE_GNU:=gcc/gcc-${PKG_VERSION}/}
+PKG_RELEASE:= 1
+DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
+LIBSTDCXXVER:= 30
+endif
ifeq ($(ADK_TOOLCHAIN_GCC_13),y)
PKG_VERSION:= 13.2.0
PKG_HASH:= 8cb4be3796651976f94b9356fa08d833524f62420d6292c5033a9a26af315078
@@ -97,6 +105,14 @@ PKG_SITES:= https://github.com/kalray/gcc.git
PKG_RELEASE:= 1
DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
endif
+ifeq ($(ADK_TOOLCHAIN_GCC_XTENSA),y)
+PKG_VERSION:= xtensa-fdpic-abi-spec-1.2
+PKG_GIT:= tag
+PKG_SITES:= https://github.com/jcmvbkbc/gcc-xtensa.git
+PKG_RELEASE:= 1
+DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
+LIBSTDCXXVER:= 30
+endif
ifeq ($(ADK_TOOLCHAIN_GCC_GIT),y)
PKG_VERSION:= git
PKG_SITES:= https://github.com/gcc-mirror/gcc.git
diff --git a/toolchain/gcc/patches/10.5.0/revert-sparc.patch b/toolchain/gcc/patches/10.5.0/revert-sparc.patch
deleted file mode 100644
index 2ce948c82..000000000
--- a/toolchain/gcc/patches/10.5.0/revert-sparc.patch
+++ /dev/null
@@ -1,283 +0,0 @@
-diff -Nur gcc-10.3.0.orig/gcc/config/sparc/sparc.c gcc-10.3.0/gcc/config/sparc/sparc.c
---- gcc-10.3.0.orig/gcc/config/sparc/sparc.c 2021-04-08 13:56:28.201742273 +0200
-+++ gcc-10.3.0/gcc/config/sparc/sparc.c 2022-01-24 10:19:53.724121161 +0100
-@@ -4157,6 +4157,13 @@
- static bool
- sparc_cannot_force_const_mem (machine_mode mode, rtx x)
- {
-+ /* After IRA has run in PIC mode, it is too late to put anything into the
-+ constant pool if the PIC register hasn't already been initialized. */
-+ if ((lra_in_progress || reload_in_progress)
-+ && flag_pic
-+ && !crtl->uses_pic_offset_table)
-+ return true;
-+
- switch (GET_CODE (x))
- {
- case CONST_INT:
-@@ -4192,11 +4199,9 @@
- }
-
- /* Global Offset Table support. */
--static GTY(()) rtx got_symbol_rtx = NULL_RTX;
--static GTY(()) rtx got_register_rtx = NULL_RTX;
- static GTY(()) rtx got_helper_rtx = NULL_RTX;
--
--static GTY(()) bool got_helper_needed = false;
-+static GTY(()) rtx got_register_rtx = NULL_RTX;
-+static GTY(()) rtx got_symbol_rtx = NULL_RTX;
-
- /* Return the SYMBOL_REF for the Global Offset Table. */
-
-@@ -4209,6 +4214,27 @@
- return got_symbol_rtx;
- }
-
-+#ifdef HAVE_GAS_HIDDEN
-+# define USE_HIDDEN_LINKONCE 1
-+#else
-+# define USE_HIDDEN_LINKONCE 0
-+#endif
-+
-+static void
-+get_pc_thunk_name (char name[32], unsigned int regno)
-+{
-+ const char *reg_name = reg_names[regno];
-+
-+ /* Skip the leading '%' as that cannot be used in a
-+ symbol name. */
-+ reg_name += 1;
-+
-+ if (USE_HIDDEN_LINKONCE)
-+ sprintf (name, "__sparc_get_pc_thunk.%s", reg_name);
-+ else
-+ ASM_GENERATE_INTERNAL_LABEL (name, "LADDPC", regno);
-+}
-+
- /* Wrapper around the load_pcrel_sym{si,di} patterns. */
-
- static rtx
-@@ -4228,78 +4254,30 @@
- return insn;
- }
-
--/* Output the load_pcrel_sym{si,di} patterns. */
--
--const char *
--output_load_pcrel_sym (rtx *operands)
--{
-- if (flag_delayed_branch)
-- {
-- output_asm_insn ("sethi\t%%hi(%a1-4), %0", operands);
-- output_asm_insn ("call\t%a2", operands);
-- output_asm_insn (" add\t%0, %%lo(%a1+4), %0", operands);
-- }
-- else
-- {
-- output_asm_insn ("sethi\t%%hi(%a1-8), %0", operands);
-- output_asm_insn ("add\t%0, %%lo(%a1-4), %0", operands);
-- output_asm_insn ("call\t%a2", operands);
-- output_asm_insn (" nop", NULL);
-- }
--
-- if (operands[2] == got_helper_rtx)
-- got_helper_needed = true;
--
-- return "";
--}
--
--#ifdef HAVE_GAS_HIDDEN
--# define USE_HIDDEN_LINKONCE 1
--#else
--# define USE_HIDDEN_LINKONCE 0
--#endif
--
- /* Emit code to load the GOT register. */
-
- void
- load_got_register (void)
- {
-- rtx insn;
-+ if (!got_register_rtx)
-+ got_register_rtx = gen_rtx_REG (Pmode, GLOBAL_OFFSET_TABLE_REGNUM);
-
- if (TARGET_VXWORKS_RTP)
-- {
-- if (!got_register_rtx)
-- got_register_rtx = pic_offset_table_rtx;
--
-- insn = gen_vxworks_load_got ();
-- }
-+ emit_insn (gen_vxworks_load_got ());
- else
- {
-- if (!got_register_rtx)
-- got_register_rtx = gen_rtx_REG (Pmode, GLOBAL_OFFSET_TABLE_REGNUM);
--
- /* The GOT symbol is subject to a PC-relative relocation so we need a
- helper function to add the PC value and thus get the final value. */
- if (!got_helper_rtx)
- {
- char name[32];
--
-- /* Skip the leading '%' as that cannot be used in a symbol name. */
-- if (USE_HIDDEN_LINKONCE)
-- sprintf (name, "__sparc_get_pc_thunk.%s",
-- reg_names[REGNO (got_register_rtx)] + 1);
-- else
-- ASM_GENERATE_INTERNAL_LABEL (name, "LADDPC",
-- REGNO (got_register_rtx));
--
-+ get_pc_thunk_name (name, GLOBAL_OFFSET_TABLE_REGNUM);
- got_helper_rtx = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (name));
- }
-
-- insn
-- = gen_load_pcrel_sym (got_register_rtx, sparc_got (), got_helper_rtx);
-+ emit_insn (gen_load_pcrel_sym (got_register_rtx, sparc_got (),
-+ got_helper_rtx));
- }
--
-- emit_insn (insn);
- }
-
- /* Ensure that we are not using patterns that are not OK with PIC. */
-@@ -5464,7 +5442,7 @@
- return true;
-
- /* GOT register (%l7) if needed. */
-- if (got_register_rtx && regno == REGNO (got_register_rtx))
-+ if (regno == GLOBAL_OFFSET_TABLE_REGNUM && got_register_rtx)
- return true;
-
- /* If the function accesses prior frames, the frame pointer and the return
-@@ -12507,9 +12485,10 @@
- sparc_file_end (void)
- {
- /* If we need to emit the special GOT helper function, do so now. */
-- if (got_helper_needed)
-+ if (got_helper_rtx)
- {
- const char *name = XSTR (got_helper_rtx, 0);
-+ const char *reg_name = reg_names[GLOBAL_OFFSET_TABLE_REGNUM];
- #ifdef DWARF2_UNWIND_INFO
- bool do_cfi;
- #endif
-@@ -12546,22 +12525,17 @@
- #ifdef DWARF2_UNWIND_INFO
- do_cfi = dwarf2out_do_cfi_asm ();
- if (do_cfi)
-- output_asm_insn (".cfi_startproc", NULL);
-+ fprintf (asm_out_file, "\t.cfi_startproc\n");
- #endif
- if (flag_delayed_branch)
-- {
-- output_asm_insn ("jmp\t%%o7+8", NULL);
-- output_asm_insn (" add\t%%o7, %0, %0", &got_register_rtx);
-- }
-+ fprintf (asm_out_file, "\tjmp\t%%o7+8\n\t add\t%%o7, %s, %s\n",
-+ reg_name, reg_name);
- else
-- {
-- output_asm_insn ("add\t%%o7, %0, %0", &got_register_rtx);
-- output_asm_insn ("jmp\t%%o7+8", NULL);
-- output_asm_insn (" nop", NULL);
-- }
-+ fprintf (asm_out_file, "\tadd\t%%o7, %s, %s\n\tjmp\t%%o7+8\n\t nop\n",
-+ reg_name, reg_name);
- #ifdef DWARF2_UNWIND_INFO
- if (do_cfi)
-- output_asm_insn (".cfi_endproc", NULL);
-+ fprintf (asm_out_file, "\t.cfi_endproc\n");
- #endif
- }
-
-@@ -13056,10 +13030,7 @@
- edge entry_edge;
- rtx_insn *seq;
-
-- /* In PIC mode, we need to always initialize the PIC register if optimization
-- is enabled, because we are called from IRA and LRA may later force things
-- to the constant pool for optimization purposes. */
-- if (!flag_pic || (!crtl->uses_pic_offset_table && !optimize))
-+ if (!crtl->uses_pic_offset_table)
- return;
-
- start_sequence ();
-diff -Nur gcc-10.3.0.orig/gcc/config/sparc/sparc.md gcc-10.3.0/gcc/config/sparc/sparc.md
---- gcc-10.3.0.orig/gcc/config/sparc/sparc.md 2021-04-08 13:56:28.205742322 +0200
-+++ gcc-10.3.0/gcc/config/sparc/sparc.md 2022-01-24 10:19:54.504102046 +0100
-@@ -1601,7 +1601,10 @@
- (clobber (reg:P O7_REG))]
- "REGNO (operands[0]) == INTVAL (operands[3])"
- {
-- return output_load_pcrel_sym (operands);
-+ if (flag_delayed_branch)
-+ return "sethi\t%%hi(%a1-4), %0\n\tcall\t%a2\n\t add\t%0, %%lo(%a1+4), %0";
-+ else
-+ return "sethi\t%%hi(%a1-8), %0\n\tadd\t%0, %%lo(%a1-4), %0\n\tcall\t%a2\n\t nop";
- }
- [(set (attr "type") (const_string "multi"))
- (set (attr "length")
-diff -Nur gcc-10.3.0.orig/gcc/config/sparc/sparc-protos.h gcc-10.3.0/gcc/config/sparc/sparc-protos.h
---- gcc-10.3.0.orig/gcc/config/sparc/sparc-protos.h 2021-04-08 13:56:28.201742273 +0200
-+++ gcc-10.3.0/gcc/config/sparc/sparc-protos.h 2022-01-24 10:19:54.548100968 +0100
-@@ -69,7 +69,6 @@
- extern void sparc_split_mem_reg (rtx, rtx, machine_mode);
- extern int sparc_split_reg_reg_legitimate (rtx, rtx);
- extern void sparc_split_reg_reg (rtx, rtx, machine_mode);
--extern const char *output_load_pcrel_sym (rtx *);
- extern const char *output_ubranch (rtx, rtx_insn *);
- extern const char *output_cbranch (rtx, rtx, int, int, int, rtx_insn *);
- extern const char *output_return (rtx_insn *);
-diff -Nur gcc-10.3.0.orig/gcc/testsuite/gcc.c-torture/compile/20191108-1.c gcc-10.3.0/gcc/testsuite/gcc.c-torture/compile/20191108-1.c
---- gcc-10.3.0.orig/gcc/testsuite/gcc.c-torture/compile/20191108-1.c 2021-04-08 13:56:28.929751064 +0200
-+++ gcc-10.3.0/gcc/testsuite/gcc.c-torture/compile/20191108-1.c 1970-01-01 01:00:00.000000000 +0100
-@@ -1,14 +0,0 @@
--/* PR target/92095 */
--/* Testcase by Sergei Trofimovich <slyfox@inbox.ru> */
--
--typedef union {
-- double a;
-- int b[2];
--} c;
--
--double d(int e)
--{
-- c f;
-- (&f)->b[0] = 15728640;
-- return e ? -(&f)->a : (&f)->a;
--}
-diff -Nur gcc-10.3.0.orig/gcc/testsuite/gcc.target/sparc/overflow-3.c gcc-10.3.0/gcc/testsuite/gcc.target/sparc/overflow-3.c
---- gcc-10.3.0.orig/gcc/testsuite/gcc.target/sparc/overflow-3.c 2021-04-08 13:56:29.453757389 +0200
-+++ gcc-10.3.0/gcc/testsuite/gcc.target/sparc/overflow-3.c 2022-01-24 10:19:54.688097536 +0100
-@@ -1,6 +1,6 @@
- /* { dg-do compile } */
- /* { dg-require-effective-target lp64 } */
--/* { dg-options "-O -fno-pie" } */
-+/* { dg-options "-O" } */
-
- #include <stdbool.h>
- #include <stdint.h>
-diff -Nur gcc-10.3.0.orig/gcc/testsuite/gcc.target/sparc/overflow-4.c gcc-10.3.0/gcc/testsuite/gcc.target/sparc/overflow-4.c
---- gcc-10.3.0.orig/gcc/testsuite/gcc.target/sparc/overflow-4.c 2021-04-08 13:56:29.453757389 +0200
-+++ gcc-10.3.0/gcc/testsuite/gcc.target/sparc/overflow-4.c 2022-01-24 10:19:55.336081656 +0100
-@@ -1,6 +1,6 @@
- /* { dg-do compile } */
- /* { dg-require-effective-target lp64 } */
--/* { dg-options "-O -fno-pie -mno-vis3 -mno-vis4" } */
-+/* { dg-options "-O -mno-vis3 -mno-vis4" } */
-
- #include <stdbool.h>
- #include <stdint.h>
-diff -Nur gcc-10.3.0.orig/gcc/testsuite/gcc.target/sparc/overflow-5.c gcc-10.3.0/gcc/testsuite/gcc.target/sparc/overflow-5.c
---- gcc-10.3.0.orig/gcc/testsuite/gcc.target/sparc/overflow-5.c 2021-04-08 13:56:29.453757389 +0200
-+++ gcc-10.3.0/gcc/testsuite/gcc.target/sparc/overflow-5.c 2022-01-24 10:19:55.336081656 +0100
-@@ -1,6 +1,6 @@
- /* { dg-do compile } */
- /* { dg-require-effective-target lp64 } */
--/* { dg-options "-O -fno-pie -mvis3" } */
-+/* { dg-options "-O -mvis3" } */
-
- #include <stdbool.h>
- #include <stdint.h>
diff --git a/toolchain/gcc/patches/11.4.0/revert.sparc b/toolchain/gcc/patches/11.4.0/revert.sparc
deleted file mode 100644
index 2ce948c82..000000000
--- a/toolchain/gcc/patches/11.4.0/revert.sparc
+++ /dev/null
@@ -1,283 +0,0 @@
-diff -Nur gcc-10.3.0.orig/gcc/config/sparc/sparc.c gcc-10.3.0/gcc/config/sparc/sparc.c
---- gcc-10.3.0.orig/gcc/config/sparc/sparc.c 2021-04-08 13:56:28.201742273 +0200
-+++ gcc-10.3.0/gcc/config/sparc/sparc.c 2022-01-24 10:19:53.724121161 +0100
-@@ -4157,6 +4157,13 @@
- static bool
- sparc_cannot_force_const_mem (machine_mode mode, rtx x)
- {
-+ /* After IRA has run in PIC mode, it is too late to put anything into the
-+ constant pool if the PIC register hasn't already been initialized. */
-+ if ((lra_in_progress || reload_in_progress)
-+ && flag_pic
-+ && !crtl->uses_pic_offset_table)
-+ return true;
-+
- switch (GET_CODE (x))
- {
- case CONST_INT:
-@@ -4192,11 +4199,9 @@
- }
-
- /* Global Offset Table support. */
--static GTY(()) rtx got_symbol_rtx = NULL_RTX;
--static GTY(()) rtx got_register_rtx = NULL_RTX;
- static GTY(()) rtx got_helper_rtx = NULL_RTX;
--
--static GTY(()) bool got_helper_needed = false;
-+static GTY(()) rtx got_register_rtx = NULL_RTX;
-+static GTY(()) rtx got_symbol_rtx = NULL_RTX;
-
- /* Return the SYMBOL_REF for the Global Offset Table. */
-
-@@ -4209,6 +4214,27 @@
- return got_symbol_rtx;
- }
-
-+#ifdef HAVE_GAS_HIDDEN
-+# define USE_HIDDEN_LINKONCE 1
-+#else
-+# define USE_HIDDEN_LINKONCE 0
-+#endif
-+
-+static void
-+get_pc_thunk_name (char name[32], unsigned int regno)
-+{
-+ const char *reg_name = reg_names[regno];
-+
-+ /* Skip the leading '%' as that cannot be used in a
-+ symbol name. */
-+ reg_name += 1;
-+
-+ if (USE_HIDDEN_LINKONCE)
-+ sprintf (name, "__sparc_get_pc_thunk.%s", reg_name);
-+ else
-+ ASM_GENERATE_INTERNAL_LABEL (name, "LADDPC", regno);
-+}
-+
- /* Wrapper around the load_pcrel_sym{si,di} patterns. */
-
- static rtx
-@@ -4228,78 +4254,30 @@
- return insn;
- }
-
--/* Output the load_pcrel_sym{si,di} patterns. */
--
--const char *
--output_load_pcrel_sym (rtx *operands)
--{
-- if (flag_delayed_branch)
-- {
-- output_asm_insn ("sethi\t%%hi(%a1-4), %0", operands);
-- output_asm_insn ("call\t%a2", operands);
-- output_asm_insn (" add\t%0, %%lo(%a1+4), %0", operands);
-- }
-- else
-- {
-- output_asm_insn ("sethi\t%%hi(%a1-8), %0", operands);
-- output_asm_insn ("add\t%0, %%lo(%a1-4), %0", operands);
-- output_asm_insn ("call\t%a2", operands);
-- output_asm_insn (" nop", NULL);
-- }
--
-- if (operands[2] == got_helper_rtx)
-- got_helper_needed = true;
--
-- return "";
--}
--
--#ifdef HAVE_GAS_HIDDEN
--# define USE_HIDDEN_LINKONCE 1
--#else
--# define USE_HIDDEN_LINKONCE 0
--#endif
--
- /* Emit code to load the GOT register. */
-
- void
- load_got_register (void)
- {
-- rtx insn;
-+ if (!got_register_rtx)
-+ got_register_rtx = gen_rtx_REG (Pmode, GLOBAL_OFFSET_TABLE_REGNUM);
-
- if (TARGET_VXWORKS_RTP)
-- {
-- if (!got_register_rtx)
-- got_register_rtx = pic_offset_table_rtx;
--
-- insn = gen_vxworks_load_got ();
-- }
-+ emit_insn (gen_vxworks_load_got ());
- else
- {
-- if (!got_register_rtx)
-- got_register_rtx = gen_rtx_REG (Pmode, GLOBAL_OFFSET_TABLE_REGNUM);
--
- /* The GOT symbol is subject to a PC-relative relocation so we need a
- helper function to add the PC value and thus get the final value. */
- if (!got_helper_rtx)
- {
- char name[32];
--
-- /* Skip the leading '%' as that cannot be used in a symbol name. */
-- if (USE_HIDDEN_LINKONCE)
-- sprintf (name, "__sparc_get_pc_thunk.%s",
-- reg_names[REGNO (got_register_rtx)] + 1);
-- else
-- ASM_GENERATE_INTERNAL_LABEL (name, "LADDPC",
-- REGNO (got_register_rtx));
--
-+ get_pc_thunk_name (name, GLOBAL_OFFSET_TABLE_REGNUM);
- got_helper_rtx = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (name));
- }
-
-- insn
-- = gen_load_pcrel_sym (got_register_rtx, sparc_got (), got_helper_rtx);
-+ emit_insn (gen_load_pcrel_sym (got_register_rtx, sparc_got (),
-+ got_helper_rtx));
- }
--
-- emit_insn (insn);
- }
-
- /* Ensure that we are not using patterns that are not OK with PIC. */
-@@ -5464,7 +5442,7 @@
- return true;
-
- /* GOT register (%l7) if needed. */
-- if (got_register_rtx && regno == REGNO (got_register_rtx))
-+ if (regno == GLOBAL_OFFSET_TABLE_REGNUM && got_register_rtx)
- return true;
-
- /* If the function accesses prior frames, the frame pointer and the return
-@@ -12507,9 +12485,10 @@
- sparc_file_end (void)
- {
- /* If we need to emit the special GOT helper function, do so now. */
-- if (got_helper_needed)
-+ if (got_helper_rtx)
- {
- const char *name = XSTR (got_helper_rtx, 0);
-+ const char *reg_name = reg_names[GLOBAL_OFFSET_TABLE_REGNUM];
- #ifdef DWARF2_UNWIND_INFO
- bool do_cfi;
- #endif
-@@ -12546,22 +12525,17 @@
- #ifdef DWARF2_UNWIND_INFO
- do_cfi = dwarf2out_do_cfi_asm ();
- if (do_cfi)
-- output_asm_insn (".cfi_startproc", NULL);
-+ fprintf (asm_out_file, "\t.cfi_startproc\n");
- #endif
- if (flag_delayed_branch)
-- {
-- output_asm_insn ("jmp\t%%o7+8", NULL);
-- output_asm_insn (" add\t%%o7, %0, %0", &got_register_rtx);
-- }
-+ fprintf (asm_out_file, "\tjmp\t%%o7+8\n\t add\t%%o7, %s, %s\n",
-+ reg_name, reg_name);
- else
-- {
-- output_asm_insn ("add\t%%o7, %0, %0", &got_register_rtx);
-- output_asm_insn ("jmp\t%%o7+8", NULL);
-- output_asm_insn (" nop", NULL);
-- }
-+ fprintf (asm_out_file, "\tadd\t%%o7, %s, %s\n\tjmp\t%%o7+8\n\t nop\n",
-+ reg_name, reg_name);
- #ifdef DWARF2_UNWIND_INFO
- if (do_cfi)
-- output_asm_insn (".cfi_endproc", NULL);
-+ fprintf (asm_out_file, "\t.cfi_endproc\n");
- #endif
- }
-
-@@ -13056,10 +13030,7 @@
- edge entry_edge;
- rtx_insn *seq;
-
-- /* In PIC mode, we need to always initialize the PIC register if optimization
-- is enabled, because we are called from IRA and LRA may later force things
-- to the constant pool for optimization purposes. */
-- if (!flag_pic || (!crtl->uses_pic_offset_table && !optimize))
-+ if (!crtl->uses_pic_offset_table)
- return;
-
- start_sequence ();
-diff -Nur gcc-10.3.0.orig/gcc/config/sparc/sparc.md gcc-10.3.0/gcc/config/sparc/sparc.md
---- gcc-10.3.0.orig/gcc/config/sparc/sparc.md 2021-04-08 13:56:28.205742322 +0200
-+++ gcc-10.3.0/gcc/config/sparc/sparc.md 2022-01-24 10:19:54.504102046 +0100
-@@ -1601,7 +1601,10 @@
- (clobber (reg:P O7_REG))]
- "REGNO (operands[0]) == INTVAL (operands[3])"
- {
-- return output_load_pcrel_sym (operands);
-+ if (flag_delayed_branch)
-+ return "sethi\t%%hi(%a1-4), %0\n\tcall\t%a2\n\t add\t%0, %%lo(%a1+4), %0";
-+ else
-+ return "sethi\t%%hi(%a1-8), %0\n\tadd\t%0, %%lo(%a1-4), %0\n\tcall\t%a2\n\t nop";
- }
- [(set (attr "type") (const_string "multi"))
- (set (attr "length")
-diff -Nur gcc-10.3.0.orig/gcc/config/sparc/sparc-protos.h gcc-10.3.0/gcc/config/sparc/sparc-protos.h
---- gcc-10.3.0.orig/gcc/config/sparc/sparc-protos.h 2021-04-08 13:56:28.201742273 +0200
-+++ gcc-10.3.0/gcc/config/sparc/sparc-protos.h 2022-01-24 10:19:54.548100968 +0100
-@@ -69,7 +69,6 @@
- extern void sparc_split_mem_reg (rtx, rtx, machine_mode);
- extern int sparc_split_reg_reg_legitimate (rtx, rtx);
- extern void sparc_split_reg_reg (rtx, rtx, machine_mode);
--extern const char *output_load_pcrel_sym (rtx *);
- extern const char *output_ubranch (rtx, rtx_insn *);
- extern const char *output_cbranch (rtx, rtx, int, int, int, rtx_insn *);
- extern const char *output_return (rtx_insn *);
-diff -Nur gcc-10.3.0.orig/gcc/testsuite/gcc.c-torture/compile/20191108-1.c gcc-10.3.0/gcc/testsuite/gcc.c-torture/compile/20191108-1.c
---- gcc-10.3.0.orig/gcc/testsuite/gcc.c-torture/compile/20191108-1.c 2021-04-08 13:56:28.929751064 +0200
-+++ gcc-10.3.0/gcc/testsuite/gcc.c-torture/compile/20191108-1.c 1970-01-01 01:00:00.000000000 +0100
-@@ -1,14 +0,0 @@
--/* PR target/92095 */
--/* Testcase by Sergei Trofimovich <slyfox@inbox.ru> */
--
--typedef union {
-- double a;
-- int b[2];
--} c;
--
--double d(int e)
--{
-- c f;
-- (&f)->b[0] = 15728640;
-- return e ? -(&f)->a : (&f)->a;
--}
-diff -Nur gcc-10.3.0.orig/gcc/testsuite/gcc.target/sparc/overflow-3.c gcc-10.3.0/gcc/testsuite/gcc.target/sparc/overflow-3.c
---- gcc-10.3.0.orig/gcc/testsuite/gcc.target/sparc/overflow-3.c 2021-04-08 13:56:29.453757389 +0200
-+++ gcc-10.3.0/gcc/testsuite/gcc.target/sparc/overflow-3.c 2022-01-24 10:19:54.688097536 +0100
-@@ -1,6 +1,6 @@
- /* { dg-do compile } */
- /* { dg-require-effective-target lp64 } */
--/* { dg-options "-O -fno-pie" } */
-+/* { dg-options "-O" } */
-
- #include <stdbool.h>
- #include <stdint.h>
-diff -Nur gcc-10.3.0.orig/gcc/testsuite/gcc.target/sparc/overflow-4.c gcc-10.3.0/gcc/testsuite/gcc.target/sparc/overflow-4.c
---- gcc-10.3.0.orig/gcc/testsuite/gcc.target/sparc/overflow-4.c 2021-04-08 13:56:29.453757389 +0200
-+++ gcc-10.3.0/gcc/testsuite/gcc.target/sparc/overflow-4.c 2022-01-24 10:19:55.336081656 +0100
-@@ -1,6 +1,6 @@
- /* { dg-do compile } */
- /* { dg-require-effective-target lp64 } */
--/* { dg-options "-O -fno-pie -mno-vis3 -mno-vis4" } */
-+/* { dg-options "-O -mno-vis3 -mno-vis4" } */
-
- #include <stdbool.h>
- #include <stdint.h>
-diff -Nur gcc-10.3.0.orig/gcc/testsuite/gcc.target/sparc/overflow-5.c gcc-10.3.0/gcc/testsuite/gcc.target/sparc/overflow-5.c
---- gcc-10.3.0.orig/gcc/testsuite/gcc.target/sparc/overflow-5.c 2021-04-08 13:56:29.453757389 +0200
-+++ gcc-10.3.0/gcc/testsuite/gcc.target/sparc/overflow-5.c 2022-01-24 10:19:55.336081656 +0100
-@@ -1,6 +1,6 @@
- /* { dg-do compile } */
- /* { dg-require-effective-target lp64 } */
--/* { dg-options "-O -fno-pie -mvis3" } */
-+/* { dg-options "-O -mvis3" } */
-
- #include <stdbool.h>
- #include <stdint.h>
diff --git a/toolchain/glibc/Makefile b/toolchain/glibc/Makefile
index ecd6f8d2b..5389b8416 100644
--- a/toolchain/glibc/Makefile
+++ b/toolchain/glibc/Makefile
@@ -24,6 +24,7 @@ GLIBC_CONFOPTS:= --build=$(GNU_HOST_NAME) \
--disable-nls \
--disable-werror \
--disable-nscd \
+ --disable-default-pie \
--enable-shared
ifeq ($(ADK_TARGET_USE_STATIC_LIBS_ONLY),y)
diff --git a/toolchain/linux-headers/Makefile b/toolchain/linux-headers/Makefile
index 79fef22b9..6e9f913e9 100644
--- a/toolchain/linux-headers/Makefile
+++ b/toolchain/linux-headers/Makefile
@@ -21,8 +21,13 @@ ifeq ($(ADK_KERNEL_ROOT_NFS),y)
endif
endif
ifeq ($(ADK_TARGET_ARCH_XTENSA),y)
+ifeq ($(ADK_TARGET_ABI),)
tar xf $(ADK_TOPDIR)/target/xtensa/overlay/xtensa_$(ADK_TARGET_CPU_TYPE).tar \
--strip-components=1 -C $(WRKSRC) linux
+else
+ tar xf $(ADK_TOPDIR)/target/xtensa/overlay/xtensa_$(ADK_TARGET_CPU_TYPE)_$(ADK_TARGET_ABI).tar \
+ --strip-components=1 -C $(WRKSRC) linux
+endif
endif
ifneq ($(ADK_DISABLE_KERNEL_PATCHES),y)
$(TRACE) kernel-patch
diff --git a/toolchain/uclibc-ng/Makefile.inc b/toolchain/uclibc-ng/Makefile.inc
index c4b4745fa..5c8cfbc68 100644
--- a/toolchain/uclibc-ng/Makefile.inc
+++ b/toolchain/uclibc-ng/Makefile.inc
@@ -7,10 +7,10 @@ PKG_VERSION:= git
PKG_RELEASE:= 1
PKG_SITES:= https://git.uclibc-ng.org/git/uclibc-ng.git
endif
-ifeq ($(ADK_TARGET_LIB_UCLIBC_NG_1_0_47),y)
-PKG_VERSION:= 1.0.47
+ifeq ($(ADK_TARGET_LIB_UCLIBC_NG_1_0_48),y)
+PKG_VERSION:= 1.0.48
PKG_RELEASE:= 1
-PKG_SITES:= http://downloads.uclibc-ng.org/releases/1.0.47/
-PKG_HASH:= c58640ba7c2ce70f09574365bc8039cf580b52e1ce369db527376891b2249028
+PKG_SITES:= http://downloads.uclibc-ng.org/releases/1.0.48/
+PKG_HASH:= c8ac74fb6c53f96cf9ecde05c3e37a4e03a67aee013b2f3c388a3c43d20b311d
endif
DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz