diff options
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 Binary files differnew file mode 100644 index 000000000..c36f65cc4 --- /dev/null +++ b/target/xtensa/overlay/xtensa_dc233c_call0.tar diff --git a/target/xtensa/overlay/xtensa_dc233c.tar b/target/xtensa/overlay/xtensa_dc233c_windowed.tar Binary files differindex 56ccc5b31..56ccc5b31 100644 --- a/target/xtensa/overlay/xtensa_dc233c.tar +++ b/target/xtensa/overlay/xtensa_dc233c_windowed.tar 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 |