From 20a6149d5b07037449d206147a0469ec5f5ff81c Mon Sep 17 00:00:00 2001 From: DHDAXCW Date: Sat, 21 Jan 2023 10:42:33 +0000 Subject: [PATCH] sync --- config/Config-build.in | 39 ++- config/Config-devel.in | 5 - config/Config-images.in | 12 +- config/Config-kernel.in | 180 ++--------- include/autotools.mk | 2 +- include/bpf.mk | 12 +- include/image-commands.mk | 8 +- include/image.mk | 1 - include/kernel-5.10 | 4 +- include/kernel-5.15 | 4 +- include/kernel.mk | 2 +- include/netfilter.mk | 7 + include/nls.mk | 4 +- include/package-defaults.mk | 2 +- include/target.mk | 4 +- include/trusted-firmware-a.mk | 3 +- include/uclibc++.mk | 18 +- package/base-files/files/etc/init.d/boot | 3 - scripts/download.pl | 14 +- scripts/gen-rddependencies.sh | 13 - scripts/gen_image_gpt.sh | 41 --- scripts/linksys-image.sh | 3 + scripts/sercomm-kernel.sh | 122 ------- scripts/target-metadata.pl | 2 +- target/linux/rockchip/Makefile | 2 +- target/linux/rockchip/image/armv8.mk | 2 +- toolchain/Config.in | 6 +- toolchain/binutils/Config.in | 4 +- toolchain/binutils/Config.version | 7 +- .../patches/2.39/005-ld-fix-NEWS-typos.patch | 27 -- ...rf-properly-skip-zero-size-functions.patch | 90 ------ ...-error-in-relocate-at-powerpc.cc-107.patch | 270 ---------------- ...11-PR29466-APP-NO_APP-with-.linefile.patch | 167 ---------- ...rch-ld-Fix-relocation-error-of-pcrel.patch | 128 -------- ...-Re-PR29466-APP-NO_APP-with-linefile.patch | 27 -- ...rel-got-relocs-against-local-symbols.patch | 38 --- ...rel-got-relocs-against-local-symbols.patch | 94 ------ ...t-alignment-for-each-PT_LOAD-segment.patch | 89 ------ ...gold-internal-error-in-get_output_vi.patch | 29 -- ...mbering-convention-for-pseudo-regist.patch | 301 ------------------ toolchain/build_version | 1 - toolchain/gcc/Config.in | 5 +- toolchain/gcc/Config.version | 5 + toolchain/gcc/common.mk | 5 +- .../patches-10.x/002-case_insensitive.patch | 24 ++ .../gcc/patches-10.x/010-documentation.patch | 35 ++ .../patches-10.x/110-Fix-MIPS-PR-84790.patch | 20 ++ .../gcc/patches-10.x/230-musl_libssp.patch | 13 + .../300-mips_Os_cpu_rtx_cost_model.patch | 21 ++ .../810-arm-softfloat-libgcc.patch | 33 ++ .../gcc/patches-10.x/820-libgcc_pic.patch | 44 +++ .../840-armv4_pass_fix-v4bx_to_ld.patch | 28 ++ .../patches-10.x/850-use_shared_libgcc.patch | 54 ++++ .../patches-10.x/851-libgcc_no_compat.patch | 22 ++ .../patches-10.x/870-ppc_no_crtsavres.patch | 11 + .../gcc/patches-10.x/881-no_tm_section.patch | 11 + .../gcc/patches-10.x/900-bad-mips16-crt.patch | 9 + .../gcc/patches-10.x/910-mbsd_multi.patch | 146 +++++++++ .../920-specs_nonfatal_getenv.patch | 22 ++ .../930-fix-mips-noexecstack.patch | 111 +++++++ ...ibffi-fix-MIPS-softfloat-build-issue.patch | 168 ++++++++++ ...mpilation-when-making-cross-compiler.patch | 67 ++++ ...rry-pick-9cf13067cb5088626ba7-from-u.patch | 39 --- toolchain/glibc/common.mk | 6 +- ...use-of-DES-encryption-functions-in-n.patch | 4 +- .../patches/200-add-dl-search-paths.patch | 2 +- tools/Makefile | 44 +-- tools/libdeflate/Makefile | 31 -- 68 files changed, 978 insertions(+), 1789 deletions(-) delete mode 100755 scripts/gen-rddependencies.sh delete mode 100755 scripts/gen_image_gpt.sh delete mode 100755 scripts/sercomm-kernel.sh delete mode 100644 toolchain/binutils/patches/2.39/005-ld-fix-NEWS-typos.patch delete mode 100644 toolchain/binutils/patches/2.39/008-gas-Dwarf-properly-skip-zero-size-functions.patch delete mode 100644 toolchain/binutils/patches/2.39/009-PR29462-internal-error-in-relocate-at-powerpc.cc-107.patch delete mode 100644 toolchain/binutils/patches/2.39/011-PR29466-APP-NO_APP-with-.linefile.patch delete mode 100644 toolchain/binutils/patches/2.39/039-LoongArch-ld-Fix-relocation-error-of-pcrel.patch delete mode 100644 toolchain/binutils/patches/2.39/043-Re-PR29466-APP-NO_APP-with-linefile.patch delete mode 100644 toolchain/binutils/patches/2.39/050-PowerPC64-pcrel-got-relocs-against-local-symbols.patch delete mode 100644 toolchain/binutils/patches/2.39/055-Re-PowerPC64-pcrel-got-relocs-against-local-symbols.patch delete mode 100644 toolchain/binutils/patches/2.39/058-elf-Reset-alignment-for-each-PT_LOAD-segment.patch delete mode 100644 toolchain/binutils/patches/2.39/063-PR29542-PowerPC-gold-internal-error-in-get_output_vi.patch delete mode 100644 toolchain/binutils/patches/2.39/116-arm-Use-DWARF-numbering-convention-for-pseudo-regist.patch delete mode 100644 toolchain/build_version create mode 100644 toolchain/gcc/patches-10.x/002-case_insensitive.patch create mode 100644 toolchain/gcc/patches-10.x/010-documentation.patch create mode 100644 toolchain/gcc/patches-10.x/110-Fix-MIPS-PR-84790.patch create mode 100644 toolchain/gcc/patches-10.x/230-musl_libssp.patch create mode 100644 toolchain/gcc/patches-10.x/300-mips_Os_cpu_rtx_cost_model.patch create mode 100644 toolchain/gcc/patches-10.x/810-arm-softfloat-libgcc.patch create mode 100644 toolchain/gcc/patches-10.x/820-libgcc_pic.patch create mode 100644 toolchain/gcc/patches-10.x/840-armv4_pass_fix-v4bx_to_ld.patch create mode 100644 toolchain/gcc/patches-10.x/850-use_shared_libgcc.patch create mode 100644 toolchain/gcc/patches-10.x/851-libgcc_no_compat.patch create mode 100644 toolchain/gcc/patches-10.x/870-ppc_no_crtsavres.patch create mode 100644 toolchain/gcc/patches-10.x/881-no_tm_section.patch create mode 100644 toolchain/gcc/patches-10.x/900-bad-mips16-crt.patch create mode 100644 toolchain/gcc/patches-10.x/910-mbsd_multi.patch create mode 100644 toolchain/gcc/patches-10.x/920-specs_nonfatal_getenv.patch create mode 100644 toolchain/gcc/patches-10.x/930-fix-mips-noexecstack.patch create mode 100644 toolchain/gcc/patches-10.x/931-libffi-fix-MIPS-softfloat-build-issue.patch create mode 100644 toolchain/gcc/patches-10.x/960-gotools-fix-compilation-when-making-cross-compiler.patch delete mode 100644 toolchain/gcc/patches-11.x/400-libsanitizer-cherry-pick-9cf13067cb5088626ba7-from-u.patch delete mode 100644 tools/libdeflate/Makefile diff --git a/config/Config-build.in b/config/Config-build.in index c2303637c..196d4e67a 100644 --- a/config/Config-build.in +++ b/config/Config-build.in @@ -14,14 +14,14 @@ config EXPERIMENTAL positive and negative). But do so only if you know how to recover your device in case of flashing potentially non-working firmware. - + If you plan to use this build in production, say NO! menu "Global build settings" config JSON_OVERVIEW_IMAGE_INFO bool "Create JSON info file overview per target" - default y + default BUILDBOT help Create a JSON info file called profiles.json in the target directory containing machine readable list of built profiles @@ -111,7 +111,7 @@ menu "Global build settings" default n help This makes file checksums part of package metadata. It increases size - but provides you with pkg_check command to check for flash corruptions. + but provides you with pkg_check command to check for flash coruptions. config INCLUDE_CONFIG bool "Include build configuration in firmware" if DEVEL @@ -154,12 +154,17 @@ menu "Global build settings" Adds -g3 to the CFLAGS. config IPV6 - def_bool y + bool + prompt "Enable IPv6 support in packages" + default y + help + Enables IPv6 support in kernel (builtin) and packages. comment "Stripping options" choice prompt "Binary stripping method" + default USE_STRIP if EXTERNAL_TOOLCHAIN default USE_STRIP if USE_GLIBC default USE_SSTRIP help @@ -216,6 +221,20 @@ menu "Global build settings" make the system libraries incompatible with most of the packages that are not selected during the build process. + choice + prompt "Preferred standard C++ library" + default USE_LIBSTDCXX if USE_GLIBC + default USE_UCLIBCXX + help + Select the preferred standard C++ library for all packages that support this. + + config USE_UCLIBCXX + bool "uClibc++" + + config USE_LIBSTDCXX + bool "libstdc++" + endchoice + comment "Hardening build options" config PKG_CHECK_FORMAT_SECURITY @@ -371,16 +390,4 @@ menu "Global build settings" endchoice - config SECCOMP - bool "Enable SECCOMP" - select KERNEL_SECCOMP - select PACKAGE_procd-seccomp - depends on (aarch64 || arm || armeb || mips || mipsel || mips64 || mips64el || i386 || powerpc || x86_64) - depends on !TARGET_uml - default y - help - This option enables seccomp kernel features to safely - execute untrusted bytecode and selects the seccomp-variants - of procd - endmenu diff --git a/config/Config-devel.in b/config/Config-devel.in index e16e6ecaa..4c40817c5 100644 --- a/config/Config-devel.in +++ b/config/Config-devel.in @@ -95,11 +95,6 @@ menuconfig DEVEL Store ccache in this directory. If not set, uses './.ccache' - config KERNEL_CFLAGS - string "Kernel extra CFLAGS" if DEVEL - default "-falign-functions=32" if TARGET_bcm53xx - default "" - config EXTERNAL_KERNEL_TREE string "Use external kernel tree" if DEVEL default "" diff --git a/config/Config-images.in b/config/Config-images.in index 6c1408614..891195c09 100644 --- a/config/Config-images.in +++ b/config/Config-images.in @@ -48,7 +48,6 @@ menu "Target Images" bool "xz" config TARGET_INITRAMFS_COMPRESSION_ZSTD - depends on !LINUX_5_4 bool "zstd" endchoice @@ -152,7 +151,7 @@ menu "Target Images" bool "squashfs" default y if USES_SQUASHFS help - Build a squashfs root filesystem. + Build a squashfs-lzma root filesystem. config TARGET_SQUASHFS_BLOCK_SIZE int "Block size (in KiB)" @@ -160,9 +159,6 @@ menu "Target Images" default 64 if LOW_MEMORY_FOOTPRINT default 1024 if (SMALL_FLASH && !LOW_MEMORY_FOOTPRINT) default 1024 - help - Select squashfs block size, must be one of: - 4, 8, 16, 32, 64, 128, 256, 512, 1024 menuconfig TARGET_ROOTFS_UBIFS bool "ubifs" @@ -297,7 +293,7 @@ menu "Target Images" source "target/linux/*/image/Config.in" config TARGET_KERNEL_PARTSIZE - int "Kernel partition size (in MiB)" + int "Kernel partition size (in MB)" depends on USES_BOOT_PART default 8 if TARGET_apm821xx_sata default 64 if TARGET_bcm27xx @@ -305,8 +301,8 @@ menu "Target Images" default 16 config TARGET_ROOTFS_PARTSIZE - int "Root filesystem partition size (in MiB)" - depends on USES_ROOTFS_PART || TARGET_ROOTFS_EXT4FS + int "Root filesystem partition size (in MB)" + depends on USES_ROOTFS_PART || TARGET_ROOTFS_EXT4FS || TARGET_omap || TARGET_sunxi || TARGET_uml default 400 help Select the root filesystem partition size. diff --git a/config/Config-kernel.in b/config/Config-kernel.in index b6177421c..7c6e0e5a8 100644 --- a/config/Config-kernel.in +++ b/config/Config-kernel.in @@ -24,6 +24,11 @@ config KERNEL_PRINTK bool "Enable support for printk" default y +config KERNEL_CRASHLOG + bool "Crash logging" + depends on !(arm || powerpc || sparc || TARGET_uml || i386 || x86_64) + default y + config KERNEL_SWAP bool "Support for paging of anonymous memory (swap)" default y if !SMALL_FLASH @@ -43,7 +48,8 @@ config KERNEL_DEBUG_FS config KERNEL_MIPS_FP_SUPPORT bool - default y if TARGET_pistachio + default y + depends on (mips || mipsel || mips64 || mips64el) config KERNEL_ARM_PMU bool @@ -81,11 +87,6 @@ config KERNEL_PROFILING Enable the extended profiling support mechanisms used by profilers such as OProfile. -config KERNEL_RPI_AXIPERF - bool "Compile the kernel with RaspberryPi AXI Performance monitors" - default y - depends on KERNEL_PERF_EVENTS && TARGET_bcm27xx - config KERNEL_UBSAN bool "Compile the kernel with undefined behaviour sanity checker" help @@ -114,16 +115,6 @@ config KERNEL_UBSAN_ALIGNMENT Enabling this option on architectures that support unaligned accesses may produce a lot of false positives. -config KERNEL_UBSAN_BOUNDS - bool "Perform array index bounds checking" - depends on KERNEL_UBSAN - help - This option enables detection of directly indexed out of bounds array - accesses, where the array size is known at compile time. Note that - this does not protect array overflows via bad calls to the - {str,mem}*cpy() family of functions (that is addressed by - FORTIFY_SOURCE). - config KERNEL_UBSAN_NULL bool "Enable checking of null pointers" depends on KERNEL_UBSAN @@ -131,19 +122,6 @@ config KERNEL_UBSAN_NULL This option enables detection of memory accesses via a null pointer. -config KERNEL_UBSAN_TRAP - bool "On Sanitizer warnings, abort the running kernel code" - depends on KERNEL_UBSAN - help - Building kernels with Sanitizer features enabled tends to grow the - kernel size by around 5%, due to adding all the debugging text on - failure paths. To avoid this, Sanitizer instrumentation can just - issue a trap. This reduces the kernel size overhead but turns all - warnings (including potentially harmless conditions) into full - exceptions that abort the running kernel code (regardless of context, - locks held, etc), which may destabilize the system. For some system - builders this is an acceptable trade-off. - config KERNEL_KASAN bool "Compile the kernel with KASan: runtime memory debugger" select KERNEL_SLUB_DEBUG @@ -170,30 +148,6 @@ config KERNEL_KASAN_EXTRA compile time. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81715 has more -config KERNEL_KASAN_VMALLOC - bool "Back mappings in vmalloc space with real shadow memory" - depends on KERNEL_KASAN - help - By default, the shadow region for vmalloc space is the read-only - zero page. This means that KASAN cannot detect errors involving - vmalloc space. - - Enabling this option will hook in to vmap/vmalloc and back those - mappings with real shadow memory allocated on demand. This allows - for KASAN to detect more sorts of errors (and to support vmapped - stacks), but at the cost of higher memory usage. - - This option depends on HAVE_ARCH_KASAN_VMALLOC, but we can't - depend on that in here, so it is possible that enabling this - will have no effect. - -if KERNEL_KASAN - config KERNEL_KASAN_GENERIC - def_bool y - - config KERNEL_KASAN_SW_TAGS - def_bool n -endif choice prompt "Instrumentation type" @@ -349,19 +303,6 @@ config KERNEL_PREEMPT_TRACER enabled. This option and the irqs-off timing option can be used together or separately.) -config KERNEL_HIST_TRIGGERS - bool "Histogram triggers" - depends on KERNEL_FTRACE - help - Hist triggers allow one or more arbitrary trace event fields to be - aggregated into hash tables and dumped to stdout by reading a - debugfs/tracefs file. They're useful for gathering quick and dirty - (though precise) summaries of event activity as an initial guide for - further investigation using more advanced tools. - - Inter-event tracing of quantities such as latencies is also - supported using hist triggers under this option. - config KERNEL_DEBUG_KERNEL bool default n @@ -373,34 +314,6 @@ config KERNEL_DEBUG_INFO help This will compile your kernel and modules with debug information. -config KERNEL_DEBUG_INFO_BTF - - bool "Enable additional BTF type information" - default n - depends on !HOST_OS_MACOS - depends on KERNEL_DEBUG_INFO && !KERNEL_DEBUG_INFO_REDUCED - select DWARVES - help - Generate BPF Type Format (BTF) information from DWARF debug info. - Turning this on expects presence of pahole tool, which will convert - DWARF type info into equivalent deduplicated BTF type info. - - Required to run BPF CO-RE applications. - -config KERNEL_DEBUG_INFO_REDUCED - bool "Reduce debugging information" - default y - depends on KERNEL_DEBUG_INFO - help - If you say Y here gcc is instructed to generate less debugging - information for structure types. This means that tools that - need full debugging information (like kgdb or systemtap) won't - be happy. But if you merely need debugging information to - resolve line numbers there is no loss. Advantage is that - build directory object sizes shrink dramatically over a full - DEBUG_INFO build and compile times are reduced too. - Only works with newer gcc versions. - config KERNEL_DEBUG_LL_UART_NONE bool default n @@ -414,14 +327,6 @@ config KERNEL_DEBUG_LL help ARM low level debugging. -config KERNEL_DEBUG_VIRTUAL - bool "Compile the kernel with VM translations debugging" - select KERNEL_DEBUG_KERNEL - default n - help - Enable checks sanity checks to catch invalid uses of - virt_to_phys()/phys_to_virt() against the non-linear address space. - config KERNEL_DYNAMIC_DEBUG bool "Compile the kernel with dynamic printk" select KERNEL_DEBUG_FS @@ -463,21 +368,6 @@ config KERNEL_KPROBE_EVENTS bool default y if KERNEL_KPROBES -config KERNEL_BPF_EVENTS - bool "Compile the kernel with BPF event support" - default n - select KERNEL_KPROBES - help - Allows to attach BPF programs to kprobe, uprobe and tracepoint events. - This is required to use BPF maps of type BPF_MAP_TYPE_PERF_EVENT_ARRAY - for sending data from BPF programs to user-space for post-processing - or logging. - -config KERNEL_BPF_KPROBE_OVERRIDE - bool - default n - depends on KERNEL_KPROBES - config KERNEL_AIO bool "Compile the kernel with asynchronous IO support" default y if !SMALL_FLASH @@ -547,22 +437,34 @@ config KERNEL_PROVE_LOCKING select KERNEL_DEBUG_KERNEL default n -config KERNEL_SOFTLOCKUP_DETECTOR - bool "Compile the kernel with detect Soft Lockups" +config KERNEL_LOCKUP_DETECTOR + bool "Compile the kernel with detect Hard and Soft Lockups" depends on KERNEL_DEBUG_KERNEL help Say Y here to enable the kernel to act as a watchdog to detect - soft lockups. + hard and soft lockups. Softlockups are bugs that cause the kernel to loop in kernel mode for more than 20 seconds, without giving other tasks a chance to run. The current stack trace is displayed upon detection and the system will stay locked up. + Hardlockups are bugs that cause the CPU to loop in kernel mode + for more than 10 seconds, without letting other interrupts have a + chance to run. The current stack trace is displayed upon detection + and the system will stay locked up. + + The overhead should be minimal. A periodic hrtimer runs to + generate interrupts and kick the watchdog task every 4 seconds. + An NMI is generated every 10 seconds or so to check for hardlockups. + + The frequency of hrtimer and NMI events and the soft and hard lockup + thresholds can be controlled through the sysctl watchdog_thresh. + config KERNEL_DETECT_HUNG_TASK bool "Compile the kernel with detect Hung Tasks" depends on KERNEL_DEBUG_KERNEL - default KERNEL_SOFTLOCKUP_DETECTOR + default KERNEL_LOCKUP_DETECTOR help Say Y here to enable the kernel to detect "hung tasks", which are bugs that cause the task to be stuck in @@ -1042,19 +944,6 @@ config KERNEL_IP_MROUTE Multicast routing requires a multicast routing daemon in addition to kernel support. -if KERNEL_IP_MROUTE - - config KERNEL_IP_MROUTE_MULTIPLE_TABLES - def_bool y - - config KERNEL_IP_PIMSM_V1 - def_bool y - - config KERNEL_IP_PIMSM_V2 - def_bool y - -endif - # # IPv6 configuration # @@ -1077,15 +966,8 @@ if KERNEL_IPV6 Multicast routing requires a multicast routing daemon in addition to kernel support. - if KERNEL_IPV6_MROUTE - - config KERNEL_IPV6_MROUTE_MULTIPLE_TABLES - def_bool y - - config KERNEL_IPV6_PIMSM_V2 - def_bool y - - endif + config KERNEL_IPV6_PIMSM_V2 + def_bool n config KERNEL_IPV6_SEG6_LWTUNNEL bool "Enable support for lightweight tunnels" @@ -1098,16 +980,6 @@ if KERNEL_IPV6 endif -# -# Miscellaneous network configuration -# - -config KERNEL_NET_L3_MASTER_DEV - bool "L3 Master device support" - help - This module provides glue between core networking code and device - drivers to support L3 master devices like VRF. - # # NFS related symbols # @@ -1253,7 +1125,7 @@ config KERNEL_SQUASHFS_XATTR bool "Squashfs XATTR support" # -# compile optimization setting +# compile optimiziation setting # choice prompt "Compiler optimization level" diff --git a/include/autotools.mk b/include/autotools.mk index f659bac3c..2bdc43fd2 100644 --- a/include/autotools.mk +++ b/include/autotools.mk @@ -35,7 +35,7 @@ define autoreconf $(patsubst %,rm -f %;,$(2)) \ $(foreach p,$(3), \ if [ -f $(p)/configure.ac ] || [ -f $(p)/configure.in ]; then \ - [ -d $(p)/autom4te.cache ] && rm -rf $(p)/autom4te.cache; \ + [ -d $(p)/autom4te.cache ] && rm -rf autom4te.cache; \ [ -e $(p)/config.rpath ] || \ ln -s $(SCRIPT_DIR)/config.rpath $(p)/config.rpath; \ touch NEWS AUTHORS COPYING ABOUT-NLS ChangeLog; \ diff --git a/include/bpf.mk b/include/bpf.mk index e43fcad50..871ca2aa5 100644 --- a/include/bpf.mk +++ b/include/bpf.mk @@ -64,14 +64,14 @@ BPF_CFLAGS := \ -O2 -emit-llvm -Xclang -disable-llvm-passes ifneq ($(CONFIG_HAS_BPF_TOOLCHAIN),) -ifeq ($(DUMP),) - CLANG_VER:=$(shell $(CLANG) -dM -E - < /dev/null | grep __clang_major__ | cut -d' ' -f3) - CLANG_VER_VALID:=$(shell [ "$(CLANG_VER)" -ge "$(CLANG_MIN_VER)" ] && echo 1 ) - ifeq ($(CLANG_VER_VALID),) - $(error ERROR: LLVM/clang version too old. Minimum required: $(CLANG_MIN_VER), found: $(CLANG_VER)) + ifeq ($(DUMP),) + CLANG_VER:=$(shell $(CLANG) -dM -E - < /dev/null | grep __clang_major__ | cut -d' ' -f3) + CLANG_VER_VALID:=$(shell [ "$(CLANG_VER)" -ge "$(CLANG_MIN_VER)" ] && echo 1 ) + ifeq ($(CLANG_VER_VALID),) + $(error ERROR: LLVM/clang version too old. Minimum required: $(CLANG_MIN_VER), found: $(CLANG_VER)) + endif endif endif -endif define CompileBPF $(CLANG) -g -target $(BPF_ARCH)-linux-gnu $(BPF_CFLAGS) $(2) \ diff --git a/include/image-commands.mk b/include/image-commands.mk index 407dffa0c..f38c9a176 100644 --- a/include/image-commands.mk +++ b/include/image-commands.mk @@ -53,7 +53,6 @@ define Build/append-image-stage cp "$(BIN_DIR)/$(DEVICE_IMG_PREFIX)-$(1)" "$@.stripmeta" fwtool -s /dev/null -t "$@.stripmeta" || : fwtool -i /dev/null -t "$@.stripmeta" || : - mkdir -p "$(STAGING_DIR_IMAGE)" dd if="$@.stripmeta" of="$(STAGING_DIR_IMAGE)/$(BOARD)$(if $(SUBTARGET),-$(SUBTARGET))-$(DEVICE_NAME)-$(1)" dd if="$@.stripmeta" >> "$@" rm "$@.stripmeta" @@ -306,13 +305,8 @@ define Build/fit @mv $@.new $@ endef -define Build/libdeflate-gzip - $(STAGING_DIR_HOST)/bin/libdeflate-gzip -f -12 -c $@ $(1) > $@.new - @mv $@.new $@ -endef - define Build/gzip - $(STAGING_DIR_HOST)/bin/gzip -f -9n -c $@ $(1) > $@.new + gzip -f -9n -c $@ $(1) > $@.new @mv $@.new $@ endef diff --git a/include/image.mk b/include/image.mk index 5d9d4acb4..e9dc53f82 100644 --- a/include/image.mk +++ b/include/image.mk @@ -520,7 +520,6 @@ define Device/Build/compile $$(_COMPILE_TARGET): $(KDIR)/$(1) $(eval $(call Device/Export,$(KDIR)/$(1))) $(KDIR)/$(1): FORCE - rm -f $(KDIR)/$(1) $$(call concat_cmd,$(COMPILE/$(1))) endef diff --git a/include/kernel-5.10 b/include/kernel-5.10 index da007fc72..e52f4b1c4 100644 --- a/include/kernel-5.10 +++ b/include/kernel-5.10 @@ -1,2 +1,2 @@ -LINUX_VERSION-5.10 = .161 -LINUX_KERNEL_HASH-5.10.161 = 7aaaf6d0bcd8a2cfa14ad75f02ca62bb2de08aad3bee3eff198de49ea5254079 +LINUX_VERSION-5.10 = .142 +LINUX_KERNEL_HASH-5.10.142 = 3f47ebdb9afe152a0c32c1157336ef13fa5cc08ac6d884dfc1f6ddc2b7dba268 diff --git a/include/kernel-5.15 b/include/kernel-5.15 index d24c2a001..8ebccec7f 100644 --- a/include/kernel-5.15 +++ b/include/kernel-5.15 @@ -1,2 +1,2 @@ -LINUX_VERSION-5.15 = .86 -LINUX_KERNEL_HASH-5.15.86 = 80fcd9efa443502de9e2750f6dfb59e8de43a5d87a6d2be09dca748d79b5f2ee +LINUX_VERSION-5.15 = .67 +LINUX_KERNEL_HASH-5.15.67 = da47d9a80b694548835ccb553b6eb1a1f3f5d5cddd9e2bd6f4886b99ca14f940 diff --git a/include/kernel.mk b/include/kernel.mk index c657bf5d8..2efa3bf8f 100644 --- a/include/kernel.mk +++ b/include/kernel.mk @@ -130,7 +130,7 @@ ifneq ($(HOST_OS),Linux) export SKIP_STACK_VALIDATION:=1 endif -KERNEL_MAKEOPTS = -C $(LINUX_DIR) $(KERNEL_MAKE_FLAGS) +KERNEL_MAKEOPTS := -C $(LINUX_DIR) $(KERNEL_MAKE_FLAGS) ifdef CONFIG_USE_SPARSE KERNEL_MAKEOPTS += C=1 CHECK=$(STAGING_DIR_HOST)/bin/sparse diff --git a/include/netfilter.mk b/include/netfilter.mk index 92dbf5e1c..e35c58d62 100644 --- a/include/netfilter.mk +++ b/include/netfilter.mk @@ -230,6 +230,11 @@ $(eval $(call nf_add,NF_NATHELPER_EXTRA,CONFIG_NF_CONNTRACK_IRC, $(P_XT)nf_connt $(eval $(call nf_add,NF_NATHELPER_EXTRA,CONFIG_NF_NAT_IRC, $(P_XT)nf_nat_irc)) +# ulog + +$(eval $(call nf_add,IPT_ULOG,CONFIG_IP_NF_TARGET_ULOG, $(P_V4)ipt_ULOG)) + + # nflog $(eval $(call nf_add,IPT_NFLOG,CONFIG_NETFILTER_XT_TARGET_NFLOG, $(P_XT)xt_NFLOG)) @@ -316,6 +321,7 @@ $(eval $(call nf_add,EBTABLES_IP4,CONFIG_BRIDGE_EBT_SNAT, $(P_EBT)ebt_snat)) # watchers $(eval $(call nf_add,EBTABLES_WATCHERS,CONFIG_BRIDGE_EBT_LOG, $(P_EBT)ebt_log)) +$(eval $(call nf_add,EBTABLES_WATCHERS,CONFIG_BRIDGE_EBT_ULOG, $(P_EBT)ebt_ulog)) $(eval $(call nf_add,EBTABLES_WATCHERS,CONFIG_BRIDGE_EBT_NFLOG, $(P_EBT)ebt_nflog)) $(eval $(call nf_add,EBTABLES_WATCHERS,CONFIG_BRIDGE_EBT_NFQUEUE, $(P_EBT)ebt_nfqueue)) @@ -387,6 +393,7 @@ IPT_BUILTIN += $(IPT_NAT6-y) IPT_BUILTIN += $(IPT_NAT_EXTRA-y) IPT_BUILTIN += $(NF_NATHELPER-y) IPT_BUILTIN += $(NF_NATHELPER_EXTRA-y) +IPT_BUILTIN += $(IPT_ULOG-y) IPT_BUILTIN += $(IPT_TPROXY-y) IPT_BUILTIN += $(NFNETLINK-y) IPT_BUILTIN += $(NFNETLINK_LOG-y) diff --git a/include/nls.mk b/include/nls.mk index f054d2bb6..0370a9bd3 100644 --- a/include/nls.mk +++ b/include/nls.mk @@ -9,13 +9,13 @@ ifeq ($(CONFIG_BUILD_NLS),y) INTL_PREFIX:=$(STAGING_DIR)/usr/lib/libintl-full INTL_FULL:=1 - + CMAKE_OPTIONS += -DCMAKE_PREFIX_PATH="$(ICONV_PREFIX);$(INTL_PREFIX)" else ICONV_PREFIX:= ICONV_FULL:= - INTL_PREFIX:= + INTL_PREFIX:=$ INTL_FULL:= endif diff --git a/include/package-defaults.mk b/include/package-defaults.mk index 72f88b9bb..3ee3a965f 100644 --- a/include/package-defaults.mk +++ b/include/package-defaults.mk @@ -2,7 +2,7 @@ # # Copyright (C) 2006-2020 OpenWrt.org -PKG_DEFAULT_DEPENDS = +libc +PKG_DEFAULT_DEPENDS = +libc +USE_GLIBC:librt +USE_GLIBC:libpthread ifneq ($(PKG_NAME),toolchain) PKG_FIXUP_DEPENDS = $(if $(filter kmod-%,$(1)),$(2),$(PKG_DEFAULT_DEPENDS) $(filter-out $(PKG_DEFAULT_DEPENDS),$(2))) diff --git a/include/target.mk b/include/target.mk index bbae8700d..f9c2a9eed 100644 --- a/include/target.mk +++ b/include/target.mk @@ -58,8 +58,7 @@ DEFAULT_PACKAGES.router:=\ iptables-mod-tproxy iptables-mod-extra ipset ip-full default-settings luci luci-newapi \ ddns-scripts_aliyun ddns-scripts_dnspod luci-app-ddns luci-app-upnp luci-app-autoreboot \ luci-app-arpbind luci-app-filetransfer luci-app-vsftpd luci-app-ssr-plus luci-app-vlmcsd \ - luci-app-accesscontrol luci-app-nlbwmon luci-app-turboacc luci-app-wol curl ca-certificates \ - tc-tiny + luci-app-accesscontrol luci-app-nlbwmon luci-app-turboacc luci-app-wol curl ca-certificates ifneq ($(DUMP),) all: dumpinfo @@ -234,7 +233,6 @@ ifeq ($(DUMP),1) ifeq ($(ARCH),powerpc) CPU_CFLAGS_603e:=-mcpu=603e CPU_CFLAGS_8540:=-mcpu=8540 - CPU_CFLAGS_8548:=-mcpu=8548 CPU_CFLAGS_405:=-mcpu=405 CPU_CFLAGS_440:=-mcpu=440 CPU_CFLAGS_464fp:=-mcpu=464fp diff --git a/include/trusted-firmware-a.mk b/include/trusted-firmware-a.mk index 082ada269..46fc52b15 100644 --- a/include/trusted-firmware-a.mk +++ b/include/trusted-firmware-a.mk @@ -1,5 +1,5 @@ PKG_NAME ?= trusted-firmware-a -PKG_CPE_ID ?= cpe:/a:arm:trusted_firmware-a +PKG_CPE_ID ?= cpe:/a:arm:arm_trusted_firmware ifndef PKG_SOURCE_PROTO PKG_SOURCE = trusted-firmware-a-$(PKG_VERSION).tar.gz @@ -81,7 +81,6 @@ define Build/Compile/Trusted-Firmware-A $(if $(DTC),DTC="$(DTC)") \ PLAT=$(PLAT) \ BUILD_STRING="OpenWrt v$(PKG_VERSION)-$(PKG_RELEASE) ($(VARIANT))" \ - $(if $(CONFIG_BINUTILS_VERSION_2_39),LDFLAGS="-no-warn-rwx-segments") \ $(TFA_MAKE_FLAGS) endef diff --git a/include/uclibc++.mk b/include/uclibc++.mk index 10f8d98e1..a1a61f26d 100644 --- a/include/uclibc++.mk +++ b/include/uclibc++.mk @@ -1,2 +1,16 @@ -$(warn uclibc++.mk is deprecated. Please remove it and CXX_DEPENDS) -CXX_DEPENDS = +libstdcpp +ifndef DUMP + ifdef __package_mk + $(error uclibc++.mk must be included before package.mk) + endif +endif + +PKG_PREPARED_DEPENDS += CONFIG_USE_UCLIBCXX +CXX_DEPENDS = +USE_UCLIBCXX:uclibcxx +USE_LIBSTDCXX:libstdcpp + +ifneq ($(CONFIG_USE_UCLIBCXX),) + ifneq ($(CONFIG_CCACHE),) + TARGET_CXX_NOCACHE=g++-uc + else + TARGET_CXX=g++-uc + endif +endif diff --git a/package/base-files/files/etc/init.d/boot b/package/base-files/files/etc/init.d/boot index 369690d1c..1cc699cf3 100755 --- a/package/base-files/files/etc/init.d/boot +++ b/package/base-files/files/etc/init.d/boot @@ -21,9 +21,6 @@ boot() { [ -f /proc/mounts ] || /sbin/mount_root [ -f /proc/jffs2_bbc ] && echo "S" > /proc/jffs2_bbc have_ro_ext4=$(/bin/cat /proc/mounts |/bin/grep ' / ext4'|/bin/grep 'ro'|/usr/bin/wc -l) - if [ "$have_ro_ext4" != "0" ]; then - /usr/bin/mount -o remount,rw / - fi mkdir -p /var/lock chmod 1777 /var/lock diff --git a/scripts/download.pl b/scripts/download.pl index 9a0f48f38..a73c9d1bc 100755 --- a/scripts/download.pl +++ b/scripts/download.pl @@ -249,14 +249,16 @@ foreach my $mirror (@ARGV) { } elsif ($mirror =~ /^\@OPENWRT$/) { # use OpenWrt source server directly } elsif ($mirror =~ /^\@DEBIAN\/(.+)$/) { - push @mirrors, "https://mirrors.aliyun.com/debian/$1"; push @mirrors, "https://mirrors.tencent.com/debian/$1"; + push @mirrors, "https://mirrors.tuna.tsinghua.edu.cn/debian/$1"; + push @mirrors, "https://mirrors.ustc.edu.cn/debian/$1"; push @mirrors, "https://ftp.debian.org/debian/$1"; push @mirrors, "https://mirror.leaseweb.com/debian/$1"; push @mirrors, "https://mirror.netcologne.de/debian/$1"; } elsif ($mirror =~ /^\@APACHE\/(.+)$/) { - push @mirrors, "https://mirrors.aliyun.com/apache/$1"; - push @mirrors, "https://mirrors.tencent.com/apache/$1"; + push @mirrors, "https://mirrors.cloud.tencent.com/apache/$1"; + push @mirrors, "https://mirrors.tuna.tsinghua.edu.cn/apache/$1"; + push @mirrors, "https://mirrors.ustc.edu.cn/apache/$1"; push @mirrors, "https://mirror.netcologne.de/apache.org/$1"; push @mirrors, "https://mirror.aarnet.edu.au/pub/apache/$1"; push @mirrors, "https://mirror.csclub.uwaterloo.ca/apache/$1"; @@ -272,8 +274,8 @@ foreach my $mirror (@ARGV) { push @mirrors, "https://raw.githubusercontent.com/$1"; } } elsif ($mirror =~ /^\@GNU\/(.+)$/) { - push @mirrors, "https://mirrors.aliyun.com/gnu/$1"; - push @mirrors, "https://mirrors.tencent.com/gnu/$1"; + push @mirrors, "https://mirrors.tuna.tsinghua.edu.cn/gnu/$1"; + push @mirrors, "https://mirrors.ustc.edu.cn/gnu/$1"; push @mirrors, "https://mirror.csclub.uwaterloo.ca/gnu/$1"; push @mirrors, "https://mirror.netcologne.de/gnu/$1"; push @mirrors, "http://ftp.kddilabs.jp/GNU/gnu/$1"; @@ -299,7 +301,7 @@ foreach my $mirror (@ARGV) { push @extra, "$extra[0]/longterm/v$1"; } foreach my $dir (@extra) { - push @mirrors, "https://mirror.iscas.ac.cn/kernel.org/$dir"; + push @mirrors, "https://mirrors.tuna.tsinghua.edu.cn/kernel/$dir"; push @mirrors, "https://mirrors.ustc.edu.cn/kernel.org/$dir"; push @mirrors, "https://cdn.kernel.org/pub/$dir"; push @mirrors, "https://download.xs4all.nl/ftp.kernel.org/pub/$dir"; diff --git a/scripts/gen-rddependencies.sh b/scripts/gen-rddependencies.sh deleted file mode 100755 index 509d6a4fa..000000000 --- a/scripts/gen-rddependencies.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh - -TARGETS=$* -READELF="${READELF:-readelf}" -XARGS="${XARGS:-xargs -r}" - -find $TARGETS -type f -a -exec file {} \; | \ - sed -n -e 's/^\(.*\):.*ELF.*\(executable\|shared object\).*,.*/\1/p' | \ - $XARGS -n1 $READELF -l | grep 'Requesting' | cut -d':' -f2 | tr -d ' ]' | \ - $XARGS basename - -cd `dirname ${0}` -./gen-dependencies.sh ${TARGETS} diff --git a/scripts/gen_image_gpt.sh b/scripts/gen_image_gpt.sh deleted file mode 100755 index 68af1f2ff..000000000 --- a/scripts/gen_image_gpt.sh +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/sh -# Copyright (C) 2006-2012 OpenWrt.org -set -e -x -if [ $# -ne 5 ] && [ $# -ne 6 ]; then - echo "SYNTAX: $0 " - exit 1 -fi - -OUTPUT="$1" -KERNELSIZE="$2" -KERNELDIR="$3" -ROOTFSSIZE="$4" -ROOTFSIMAGE="$5" - -UBOOTSIZE=8 -UBOOTOFFSET=8 -KERNELOFFSET="$(($UBOOTOFFSET + $UBOOTSIZE))" -ROOTFSOFFSET="$(($KERNELSIZE + $KERNELOFFSET))" - -rm -f "$OUTPUT" - -# create partition table -set $(ptgen -g -o "$OUTPUT" -a 2 -N uboot -p "$UBOOTSIZE"M@"$UBOOTOFFSET"M -N kernel -p "$KERNELSIZE"M@"$KERNELOFFSET"M -N rootfs -p "$ROOTFSSIZE"M@"$ROOTFSOFFSET"M) - -KERNELOFFSET="$(($3 / 512))" -KERNELSIZE="$4" -ROOTFSOFFSET="$(($5 / 512))" -ROOTFSSIZE="$(($6 / 512))" - -[ -n "$PADDING" ] && dd if=/dev/zero of="$OUTPUT" bs=512 seek="$ROOTFSOFFSET" conv=notrunc count="$ROOTFSSIZE" -dd if="$ROOTFSIMAGE" of="$OUTPUT" bs=512 seek="$ROOTFSOFFSET" conv=notrunc - -if [ -n "$GUID" ]; then - [ -n "$PADDING" ] && dd if=/dev/zero of="$OUTPUT" bs=512 seek="$((ROOTFSOFFSET + ROOTFSSIZE))" conv=notrunc count="$sect" - mkfs.fat -n kernel -C "$OUTPUT.kernel" -S 512 "$((KERNELSIZE / 1024))" - mcopy -s -i "$OUTPUT.kernel" "$KERNELDIR"/* ::/ -else - make_ext4fs -J -L kernel -l "$KERNELSIZE" "$OUTPUT.kernel" "$KERNELDIR" -fi -dd if="$OUTPUT.kernel" of="$OUTPUT" bs=512 seek="$KERNELOFFSET" conv=notrunc -rm -f "$OUTPUT.kernel" diff --git a/scripts/linksys-image.sh b/scripts/linksys-image.sh index d251b5da8..3b4412c06 100755 --- a/scripts/linksys-image.sh +++ b/scripts/linksys-image.sh @@ -17,6 +17,7 @@ # Padding ('0' + 0x20 *7) (8 bytes) # Signature of signer. Not checked so use arbitrary value (16 bytes) # Padding (0x00) (192 bytes) +# 0x0A (1 byte) ## version history # * version 1: initial commit @@ -61,4 +62,6 @@ printf ".LINKSYS.01000409%-15s%-8s%-8s%-16s" "${TYPE}" "${CRC}" "0" "K0000000F02 dd if=/dev/zero bs=1 count=192 conv=notrunc >> "${IMG_TMP_OUT}" +printf '\12' >> "${IMG_TMP_OUT}" + cp "${IMG_TMP_OUT}" "${IMG_OUT}" diff --git a/scripts/sercomm-kernel.sh b/scripts/sercomm-kernel.sh deleted file mode 100755 index 6ce3086c9..000000000 --- a/scripts/sercomm-kernel.sh +++ /dev/null @@ -1,122 +0,0 @@ -#!/usr/bin/env bash -# SPDX-License-Identifier: GPL-2.0-or-later -# -# Copyright (c) 2021 Mikhail Zhilkin -# -### -### sercomm-kernel.sh - calculates and appends a special kernel header. -### Intended for some Sercomm devices (e.g., Beeline -### SmartBox GIGA, Beeline SmartBox Turbo+, Sercomm -### S3). -# -# Credits to @kar200 for the header description. More details are here: -# https://forum.openwrt.org/t/add-support-for-sercomm-s3-on-stock-uboot -# -if [ $# -ne 3 ]; then - echo "SYNTAX: $0 " - exit 1 -fi - -FILE_TMP=$1.shdr -KERNEL_IMG=$1 -KERNEL_OFFSET=$2 -ROOTFS_OFFSET=$3 - -# Sercomm HDR (0x53657200), 0xffffffff for hdr crc32 calc -hdr_sign_offs=0x0 -hdr_sign_val=0x53657200 -# Absoulte lenght for Sercomm footer -hdr_footer_size_offs=0x4 -hdr_footer_size_val= -# Header checksum. 0xffffffff for hdr crc32 calc -hdr_head_chksum_offs=0x8 -hdr_head_chksum_val= -# Magic constant (0x2ffffff) -hdr_int04_offs=0xc -hdr_int04_val=0x2ffffff -# Kernel flash offset -hdr_kern_offs_offs=0x10 -hdr_kern_offs_val=$KERNEL_OFFSET -# Kernel lenght -hdr_kern_len_offs=0x14 -hdr_kern_len_val= -# Kernel checksum -hdr_kern_chksum_offs=0x18 -hdr_kern_chksum_val= -# Magic constant (0x0) -hdr_int08_offs=0x1c -hdr_int08_val=0x0 -# Rootfs flash offset -hdr_rootfs_offs_offs=0x28 -hdr_rootfs_offs_val=$ROOTFS_OFFSET -# Rootfs flash lenght. We're checking only first 4 bytes -hdr_rootfs_len_offs=0x2c -hdr_rootfs_len_val=0x4 -# Rootfs checksum. Checksum is a constant for UBI (first 4 bytes) -hdr_rootfs_chksum_offs=0x30 -hdr_rootfs_chksum_val=0x1cfc552d -# Magic constant (0x0) -hdr_int10_offs=0x34 -hdr_int10_val=0x0 - -pad_zeros () { - awk '{ printf "%8s\n", $0 }' | sed 's/ /0/g' -} - -# Remove leading 0x -trim_hx () { - printf "%x\n" $1 | pad_zeros -} - -# Change endian -swap_hx () { - pad_zeros | awk '{for (i=7;i>=1;i=i-2) printf "%s%s", \ - substr($1,i,2), (i>1?"":"\n")}' -} - -# Check file size -fsize () { - printf "%x\n" `stat -c "%s" $1` -} - -# Calculate checksum -chksum () { - dd if=$1 2>/dev/null | gzip -c | tail -c 8 | od -An -tx4 -N4 \ - --endian=big | tr -d ' \n' | pad_zeros -} - -# Write 4 bytes in the header by offset -write_hdr () { - echo -ne "$(echo $1 | sed 's/../\\x&/g')" | dd of=$FILE_TMP bs=1 \ - seek=$(($2)) count=4 conv=notrunc status=none 2>/dev/null -} - -# Pad a new header with 0xff -dd if=/dev/zero ibs=1 count=256 status=none | tr "\000" "\377" > \ - $FILE_TMP 2>/dev/null - -# Write constants -write_hdr $(trim_hx $hdr_int04_val) $hdr_int04_offs -write_hdr $(trim_hx $hdr_int08_val) $hdr_int08_offs -write_hdr $(trim_hx $hdr_int10_val) $hdr_int10_offs -# Write footer data -hdr_footer_size_val=$(($hdr_rootfs_offs_val + $hdr_rootfs_len_val)) -write_hdr $(trim_hx $hdr_footer_size_val | swap_hx) $hdr_footer_size_offs -# Write kernel data -write_hdr $(trim_hx $hdr_kern_offs_val | swap_hx) $hdr_kern_offs_offs -hdr_kern_len_val=$(fsize $KERNEL_IMG | pad_zeros) -write_hdr $(echo $hdr_kern_len_val | swap_hx) $hdr_kern_len_offs -hdr_kern_chksum_val=$(chksum $KERNEL_IMG) -write_hdr $hdr_kern_chksum_val $hdr_kern_chksum_offs -# Write rootfs data -write_hdr $(trim_hx $hdr_rootfs_offs_val | swap_hx) $hdr_rootfs_offs_offs -write_hdr $(trim_hx $hdr_rootfs_len_val | swap_hx) $hdr_rootfs_len_offs -write_hdr $(trim_hx $hdr_rootfs_chksum_val) $hdr_rootfs_chksum_offs -# Write header checksum -hdr_head_chksum_val=$(chksum $FILE_TMP) -write_hdr $hdr_head_chksum_val $hdr_head_chksum_offs -# Place Sercomm signature -write_hdr $(trim_hx $hdr_sign_val) $hdr_sign_offs - -dd if=$KERNEL_IMG >> $FILE_TMP -mv $FILE_TMP $KERNEL_IMG diff --git a/scripts/target-metadata.pl b/scripts/target-metadata.pl index 223b5aaec..e1d4ef242 100755 --- a/scripts/target-metadata.pl +++ b/scripts/target-metadata.pl @@ -179,7 +179,7 @@ EOF print < -Date: Mon, 8 Aug 2022 13:22:26 +0200 -Subject: [PATCH 005/160] ld: fix NEWS typos - -ld/ChangeLog: - - * NEWS: Fix 2 typos. ---- - ld/NEWS | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - ---- a/ld/NEWS -+++ b/ld/NEWS -@@ -27,10 +27,10 @@ Changes in 2.39: - --enable-warn-rwx-segments=no - will make --no-warn-rwx-segments enabled by default. - -- --enable-defaul-execstack=no -+ --enable-default-execstack=no - will stop the creation of an executable stack simply because an input file - is missing a .note.GNU-stack section, even on architectures where this -- ehaviour is the default. -+ behaviour is the default. - - * TYPE= is now supported in an output section description to set the - section type value. diff --git a/toolchain/binutils/patches/2.39/008-gas-Dwarf-properly-skip-zero-size-functions.patch b/toolchain/binutils/patches/2.39/008-gas-Dwarf-properly-skip-zero-size-functions.patch deleted file mode 100644 index 055da8412..000000000 --- a/toolchain/binutils/patches/2.39/008-gas-Dwarf-properly-skip-zero-size-functions.patch +++ /dev/null @@ -1,90 +0,0 @@ -From e8cf73215187b0c08679d726a5cc7c019fa3ea2e Mon Sep 17 00:00:00 2001 -From: Jan Beulich -Date: Wed, 10 Aug 2022 10:34:22 +0200 -Subject: [PATCH 008/160] gas/Dwarf: properly skip zero-size functions - -PR gas/29451 - -While out_debug_abbrev() properly skips such functions, out_debug_info() -mistakenly didn't. It needs to calculate the high_pc expression ahead of -time, in order to skip emitting any data for the function if the value -is zero. - -The one case which would still leave a zero-size entry is when -symbol_get_obj(symp)->size ends up evaluating to zero. I hope we can -expect that to not be the case, otherwise we'd need to have a way to -post-process .debug_info contents between resolving expressions and -actually writing the data out to the file. Even then it wouldn't be -entirely obvious in which way to alter the data. - -(cherry picked from commit d7abcbcea5ddd40a3bf28758b62f35933c59f996) ---- - gas/dwarf2dbg.c | 39 ++++++++++++++++++++------------------- - 1 file changed, 20 insertions(+), 19 deletions(-) - ---- a/gas/dwarf2dbg.c -+++ b/gas/dwarf2dbg.c -@@ -2882,6 +2882,7 @@ out_debug_info (segT info_seg, segT abbr - { - const char *name; - size_t len; -+ expressionS size = { .X_op = O_constant }; - - /* Skip warning constructs (see above). */ - if (symbol_get_bfdsym (symp)->flags & BSF_WARNING) -@@ -2895,6 +2896,18 @@ out_debug_info (segT info_seg, segT abbr - if (!S_IS_DEFINED (symp) || !S_IS_FUNCTION (symp)) - continue; - -+#if defined (OBJ_ELF) /* || defined (OBJ_MAYBE_ELF) */ -+ size.X_add_number = S_GET_SIZE (symp); -+ if (size.X_add_number == 0 && IS_ELF -+ && symbol_get_obj (symp)->size != NULL) -+ { -+ size.X_op = O_add; -+ size.X_op_symbol = make_expr_symbol (symbol_get_obj (symp)->size); -+ } -+#endif -+ if (size.X_op == O_constant && size.X_add_number == 0) -+ continue; -+ - subseg_set (str_seg, 0); - name_sym = symbol_temp_new_now_octets (); - name = S_GET_NAME (symp); -@@ -2920,29 +2933,17 @@ out_debug_info (segT info_seg, segT abbr - emit_expr (&exp, sizeof_address); - - /* DW_AT_high_pc */ -- exp.X_op = O_constant; --#if defined (OBJ_ELF) /* || defined (OBJ_MAYBE_ELF) */ -- exp.X_add_number = S_GET_SIZE (symp); -- if (exp.X_add_number == 0 && IS_ELF -- && symbol_get_obj (symp)->size != NULL) -- { -- exp.X_op = O_add; -- exp.X_op_symbol = make_expr_symbol (symbol_get_obj (symp)->size); -- } --#else -- exp.X_add_number = 0; --#endif - if (DWARF2_VERSION < 4) - { -- if (exp.X_op == O_constant) -- exp.X_op = O_symbol; -- exp.X_add_symbol = symp; -- emit_expr (&exp, sizeof_address); -+ if (size.X_op == O_constant) -+ size.X_op = O_symbol; -+ size.X_add_symbol = symp; -+ emit_expr (&size, sizeof_address); - } -- else if (exp.X_op == O_constant) -- out_uleb128 (exp.X_add_number); -+ else if (size.X_op == O_constant) -+ out_uleb128 (size.X_add_number); - else -- emit_leb128_expr (symbol_get_value_expression (exp.X_op_symbol), 0); -+ emit_leb128_expr (symbol_get_value_expression (size.X_op_symbol), 0); - } - - /* End of children. */ diff --git a/toolchain/binutils/patches/2.39/009-PR29462-internal-error-in-relocate-at-powerpc.cc-107.patch b/toolchain/binutils/patches/2.39/009-PR29462-internal-error-in-relocate-at-powerpc.cc-107.patch deleted file mode 100644 index e325d3bcb..000000000 --- a/toolchain/binutils/patches/2.39/009-PR29462-internal-error-in-relocate-at-powerpc.cc-107.patch +++ /dev/null @@ -1,270 +0,0 @@ -From e3b5d935247084dca057dea72be61b063fe2357a Mon Sep 17 00:00:00 2001 -From: Alan Modra -Date: Wed, 10 Aug 2022 10:38:52 +0930 -Subject: [PATCH 009/160] PR29462, internal error in relocate, at - powerpc.cc:10796 - -Prior to the inline plt call support (commit 08be322439), the only -local syms with plt entries were local ifunc symbols. There shouldn't -be stubs for other local symbols so don't look for them. The patch -also fixes minor bugs in get_reference_flags; Many relocs are valid -only for ppc64 and a couple only for ppc32. - - PR 29462 - * powerpc.cc (Target_powerpc::Relocate::relocate): Rename - use_plt_offset to pltcal_to_direct, invert logic. For relocs - not used with inline plt sequences against local symbols, only - look for stubs when the symbol is an ifunc. - (Target_powerpc::Scan::get_reference_flags): Correct reloc - handling for relocs not valid for both 32-bit and 64-bit. - -(cherry picked from commit 6158b25f77db11712b84e6a4609898f2615ac749) ---- - gold/powerpc.cc | 129 ++++++++++++++++++++++++++++-------------------- - 1 file changed, 75 insertions(+), 54 deletions(-) - ---- a/gold/powerpc.cc -+++ b/gold/powerpc.cc -@@ -7675,22 +7675,18 @@ Target_powerpc::Scan:: - - switch (r_type) - { -+ case elfcpp::R_PPC64_TOC: -+ if (size != 64) -+ break; -+ // Fall through. - case elfcpp::R_POWERPC_NONE: - case elfcpp::R_POWERPC_GNU_VTINHERIT: - case elfcpp::R_POWERPC_GNU_VTENTRY: -- case elfcpp::R_PPC64_TOC: - // No symbol reference. - break; - - case elfcpp::R_PPC64_ADDR64: - case elfcpp::R_PPC64_UADDR64: -- case elfcpp::R_POWERPC_ADDR32: -- case elfcpp::R_POWERPC_UADDR32: -- case elfcpp::R_POWERPC_ADDR16: -- case elfcpp::R_POWERPC_UADDR16: -- case elfcpp::R_POWERPC_ADDR16_LO: -- case elfcpp::R_POWERPC_ADDR16_HI: -- case elfcpp::R_POWERPC_ADDR16_HA: - case elfcpp::R_PPC64_ADDR16_HIGHER34: - case elfcpp::R_PPC64_ADDR16_HIGHERA34: - case elfcpp::R_PPC64_ADDR16_HIGHEST34: -@@ -7700,6 +7696,16 @@ Target_powerpc::Scan:: - case elfcpp::R_PPC64_D34_HI30: - case elfcpp::R_PPC64_D34_HA30: - case elfcpp::R_PPC64_D28: -+ if (size != 64) -+ break; -+ // Fall through. -+ case elfcpp::R_POWERPC_ADDR32: -+ case elfcpp::R_POWERPC_UADDR32: -+ case elfcpp::R_POWERPC_ADDR16: -+ case elfcpp::R_POWERPC_UADDR16: -+ case elfcpp::R_POWERPC_ADDR16_LO: -+ case elfcpp::R_POWERPC_ADDR16_HI: -+ case elfcpp::R_POWERPC_ADDR16_HA: - ref = Symbol::ABSOLUTE_REF; - break; - -@@ -7710,13 +7716,14 @@ Target_powerpc::Scan:: - ref = Symbol::FUNCTION_CALL | Symbol::ABSOLUTE_REF; - break; - -- case elfcpp::R_PPC64_REL64: -- case elfcpp::R_POWERPC_REL32: - case elfcpp::R_PPC_LOCAL24PC: -- case elfcpp::R_POWERPC_REL16: -- case elfcpp::R_POWERPC_REL16_LO: -- case elfcpp::R_POWERPC_REL16_HI: -- case elfcpp::R_POWERPC_REL16_HA: -+ if (size != 32) -+ break; -+ // Fall through. -+ ref = Symbol::RELATIVE_REF; -+ break; -+ -+ case elfcpp::R_PPC64_REL64: - case elfcpp::R_PPC64_REL16_HIGH: - case elfcpp::R_PPC64_REL16_HIGHA: - case elfcpp::R_PPC64_REL16_HIGHER: -@@ -7729,36 +7736,45 @@ Target_powerpc::Scan:: - case elfcpp::R_PPC64_REL16_HIGHEST34: - case elfcpp::R_PPC64_REL16_HIGHESTA34: - case elfcpp::R_PPC64_PCREL28: -+ if (size != 64) -+ break; -+ // Fall through. -+ case elfcpp::R_POWERPC_REL32: -+ case elfcpp::R_POWERPC_REL16: -+ case elfcpp::R_POWERPC_REL16_LO: -+ case elfcpp::R_POWERPC_REL16_HI: -+ case elfcpp::R_POWERPC_REL16_HA: - ref = Symbol::RELATIVE_REF; - break; - -+ case elfcpp::R_PPC_PLTREL24: -+ if (size != 32) -+ break; -+ ref = Symbol::FUNCTION_CALL | Symbol::RELATIVE_REF; -+ break; -+ - case elfcpp::R_PPC64_REL24_NOTOC: -- if (size == 32) -+ case elfcpp::R_PPC64_REL24_P9NOTOC: -+ case elfcpp::R_PPC64_PLT16_LO_DS: -+ case elfcpp::R_PPC64_PLTSEQ_NOTOC: -+ case elfcpp::R_PPC64_PLTCALL_NOTOC: -+ case elfcpp::R_PPC64_PLT_PCREL34: -+ case elfcpp::R_PPC64_PLT_PCREL34_NOTOC: -+ if (size != 64) - break; - // Fall through. -- case elfcpp::R_PPC64_REL24_P9NOTOC: - case elfcpp::R_POWERPC_REL24: -- case elfcpp::R_PPC_PLTREL24: - case elfcpp::R_POWERPC_REL14: - case elfcpp::R_POWERPC_REL14_BRTAKEN: - case elfcpp::R_POWERPC_REL14_BRNTAKEN: - case elfcpp::R_POWERPC_PLT16_LO: - case elfcpp::R_POWERPC_PLT16_HI: - case elfcpp::R_POWERPC_PLT16_HA: -- case elfcpp::R_PPC64_PLT16_LO_DS: - case elfcpp::R_POWERPC_PLTSEQ: -- case elfcpp::R_PPC64_PLTSEQ_NOTOC: - case elfcpp::R_POWERPC_PLTCALL: -- case elfcpp::R_PPC64_PLTCALL_NOTOC: -- case elfcpp::R_PPC64_PLT_PCREL34: -- case elfcpp::R_PPC64_PLT_PCREL34_NOTOC: - ref = Symbol::FUNCTION_CALL | Symbol::RELATIVE_REF; - break; - -- case elfcpp::R_POWERPC_GOT16: -- case elfcpp::R_POWERPC_GOT16_LO: -- case elfcpp::R_POWERPC_GOT16_HI: -- case elfcpp::R_POWERPC_GOT16_HA: - case elfcpp::R_PPC64_GOT16_DS: - case elfcpp::R_PPC64_GOT16_LO_DS: - case elfcpp::R_PPC64_GOT_PCREL34: -@@ -7768,11 +7784,16 @@ Target_powerpc::Scan:: - case elfcpp::R_PPC64_TOC16_HA: - case elfcpp::R_PPC64_TOC16_DS: - case elfcpp::R_PPC64_TOC16_LO_DS: -+ if (size != 64) -+ break; -+ // Fall through. -+ case elfcpp::R_POWERPC_GOT16: -+ case elfcpp::R_POWERPC_GOT16_LO: -+ case elfcpp::R_POWERPC_GOT16_HI: -+ case elfcpp::R_POWERPC_GOT16_HA: - ref = Symbol::RELATIVE_REF; - break; - -- case elfcpp::R_POWERPC_GOT_TPREL16: -- case elfcpp::R_POWERPC_TLS: - case elfcpp::R_PPC64_TLSGD: - case elfcpp::R_PPC64_TLSLD: - case elfcpp::R_PPC64_TPREL34: -@@ -7781,6 +7802,11 @@ Target_powerpc::Scan:: - case elfcpp::R_PPC64_GOT_TLSLD_PCREL34: - case elfcpp::R_PPC64_GOT_TPREL_PCREL34: - case elfcpp::R_PPC64_GOT_DTPREL_PCREL34: -+ if (size != 64) -+ break; -+ // Fall through. -+ case elfcpp::R_POWERPC_GOT_TPREL16: -+ case elfcpp::R_POWERPC_TLS: - ref = Symbol::TLS_REF; - break; - -@@ -10671,10 +10697,8 @@ Target_powerpc::Reloca - bool has_stub_value = false; - bool localentry0 = false; - unsigned int r_sym = elfcpp::elf_r_sym(rela.get_r_info()); -- bool use_plt_offset -- = (gsym != NULL -- ? gsym->use_plt_offset(Scan::get_reference_flags(r_type, target)) -- : object->local_has_plt_offset(r_sym)); -+ bool pltcall_to_direct = false; -+ - if (is_plt16_reloc(r_type) - || r_type == elfcpp::R_PPC64_PLT_PCREL34 - || r_type == elfcpp::R_PPC64_PLT_PCREL34_NOTOC -@@ -10688,21 +10712,18 @@ Target_powerpc::Reloca - // that the decision depends on the PLTCALL reloc, and we don't - // know the address of that instruction when processing others - // in the sequence. So the decision needs to be made in -- // do_relax(). For now, don't optimise inline plt calls. -- if (gsym) -- use_plt_offset = gsym->has_plt_offset(); -- } -- if (use_plt_offset -- && !is_got_reloc(r_type) -- && !is_plt16_reloc(r_type) -- && r_type != elfcpp::R_PPC64_PLT_PCREL34 -- && r_type != elfcpp::R_PPC64_PLT_PCREL34_NOTOC -- && r_type != elfcpp::R_POWERPC_PLTSEQ -- && r_type != elfcpp::R_POWERPC_PLTCALL -- && r_type != elfcpp::R_PPC64_PLTSEQ_NOTOC -- && r_type != elfcpp::R_PPC64_PLTCALL_NOTOC -- && (!psymval->is_ifunc_symbol() -- || Scan::reloc_needs_plt_for_ifunc(target, object, r_type, false))) -+ // do_relax(). -+ pltcall_to_direct = !(gsym != NULL -+ ? gsym->has_plt_offset() -+ : object->local_has_plt_offset(r_sym)); -+ } -+ else if ((gsym != NULL -+ ? gsym->use_plt_offset(Scan::get_reference_flags(r_type, target)) -+ : psymval->is_ifunc_symbol() && object->local_has_plt_offset(r_sym)) -+ && !is_got_reloc(r_type) -+ && (!psymval->is_ifunc_symbol() -+ || Scan::reloc_needs_plt_for_ifunc(target, object, r_type, -+ false))) - { - if (size == 64 - && gsym != NULL -@@ -10796,9 +10817,9 @@ Target_powerpc::Reloca - gold_assert(has_stub_value || !(os->flags() & elfcpp::SHF_ALLOC)); - } - -- if (use_plt_offset && (is_plt16_reloc(r_type) -- || r_type == elfcpp::R_PPC64_PLT_PCREL34 -- || r_type == elfcpp::R_PPC64_PLT_PCREL34_NOTOC)) -+ if (!pltcall_to_direct && (is_plt16_reloc(r_type) -+ || r_type == elfcpp::R_PPC64_PLT_PCREL34 -+ || r_type == elfcpp::R_PPC64_PLT_PCREL34_NOTOC)) - { - const Output_data_plt_powerpc* plt; - if (gsym) -@@ -10826,7 +10847,7 @@ Target_powerpc::Reloca - value -= target->toc_pointer(); - } - } -- else if (!use_plt_offset -+ else if (pltcall_to_direct - && (is_plt16_reloc(r_type) - || r_type == elfcpp::R_POWERPC_PLTSEQ - || r_type == elfcpp::R_PPC64_PLTSEQ_NOTOC)) -@@ -10835,7 +10856,7 @@ Target_powerpc::Reloca - elfcpp::Swap<32, big_endian>::writeval(iview, nop); - r_type = elfcpp::R_POWERPC_NONE; - } -- else if (!use_plt_offset -+ else if (pltcall_to_direct - && (r_type == elfcpp::R_PPC64_PLT_PCREL34 - || r_type == elfcpp::R_PPC64_PLT_PCREL34_NOTOC)) - { -@@ -11316,8 +11337,8 @@ Target_powerpc::Reloca - } - else if (!has_stub_value) - { -- if (!use_plt_offset && (r_type == elfcpp::R_POWERPC_PLTCALL -- || r_type == elfcpp::R_PPC64_PLTCALL_NOTOC)) -+ if (pltcall_to_direct && (r_type == elfcpp::R_POWERPC_PLTCALL -+ || r_type == elfcpp::R_PPC64_PLTCALL_NOTOC)) - { - // PLTCALL without plt entry => convert to direct call - Insn* iview = reinterpret_cast(view); diff --git a/toolchain/binutils/patches/2.39/011-PR29466-APP-NO_APP-with-.linefile.patch b/toolchain/binutils/patches/2.39/011-PR29466-APP-NO_APP-with-.linefile.patch deleted file mode 100644 index f7b581992..000000000 --- a/toolchain/binutils/patches/2.39/011-PR29466-APP-NO_APP-with-.linefile.patch +++ /dev/null @@ -1,167 +0,0 @@ -From 9e855cffa1fda44629e7f9b76dfa3e5a51a440e9 Mon Sep 17 00:00:00 2001 -From: Alan Modra -Date: Thu, 11 Aug 2022 09:51:03 +0930 -Subject: [PATCH 011/160] PR29466, APP/NO_APP with .linefile - -Commit 53f2b36a54b9 exposed a bug in sb_scrub_and_add_sb that could -result in losing input. If scrubbing results in expansion past the -holding capacity of do_scrub_chars output buffer, then do_scrub_chars -stashes the extra input for the next call. That call never came -because sb_scrub_and_add_sb wrongly decided it was done. Fix that by -allowing sb_scrub_and_add_sb to see whether there is pending input. -Also allow a little extra space so that in most cases we won't need -to resize the output buffer. - -sb_scrub_and_add_sb also limited output to the size of the input, -rather than the actual output buffer size. Fixing that resulted in a -fail of gas/testsuite/macros/dot with an extra warning: "end of file -not at end of a line; newline inserted". OK, so the macro in dot.s -really does finish without end-of-line. Apparently the macro -expansion code relied on do_scrub_chars returning early. So fix that -too by adding a newline if needed in macro_expand_body. - - PR 29466 - * app.c (do_scrub_pending): New function. - * as.h: Declare it. - * input-scrub.c (input_scrub_include_sb): Add extra space for - two .linefile directives. - * sb.c (sb_scrub_and_add_sb): Take into account pending input. - Allow output to max. - * macro.c (macro_expand_body): Add terminating newline. - * testsuite/config/default.exp (SIZE, SIZEFLAGS): Define. - * testsuite/gas/macros/app5.d, - * testsuite/gas/macros/app5.s: New test. - * testsuite/gas/macros/macros.exp: Run it. - -(cherry picked from commit 4d74aab7aa562fe79d4669cdad0c32610531cbc0) ---- - gas/app.c | 13 +++++++++++++ - gas/as.h | 1 + - gas/input-scrub.c | 6 ++++-- - gas/macro.c | 2 ++ - gas/sb.c | 5 +++-- - gas/testsuite/config/default.exp | 8 ++++++++ - gas/testsuite/gas/macros/app5.d | 6 ++++++ - gas/testsuite/gas/macros/app5.s | 5 +++++ - gas/testsuite/gas/macros/macros.exp | 1 + - 9 files changed, 43 insertions(+), 4 deletions(-) - create mode 100644 gas/testsuite/gas/macros/app5.d - create mode 100644 gas/testsuite/gas/macros/app5.s - ---- a/gas/app.c -+++ b/gas/app.c -@@ -1537,3 +1537,16 @@ do_scrub_chars (size_t (*get) (char *, s - last_char = to[-1]; - return to - tostart; - } -+ -+/* Return amount of pending input. */ -+ -+size_t -+do_scrub_pending (void) -+{ -+ size_t len = 0; -+ if (saved_input) -+ len += saved_input_len; -+ if (state == -1) -+ len += strlen (out_string); -+ return len; -+} ---- a/gas/as.h -+++ b/gas/as.h -@@ -460,6 +460,7 @@ void input_scrub_insert_file (char *); - char * input_scrub_new_file (const char *); - char * input_scrub_next_buffer (char **bufp); - size_t do_scrub_chars (size_t (*get) (char *, size_t), char *, size_t); -+size_t do_scrub_pending (void); - bool scan_for_multibyte_characters (const unsigned char *, const unsigned char *, bool); - int gen_to_words (LITTLENUM_TYPE *, int, long); - int had_err (void); ---- a/gas/input-scrub.c -+++ b/gas/input-scrub.c -@@ -278,9 +278,11 @@ input_scrub_include_sb (sb *from, char * - - next_saved_file = input_scrub_push (position); - -- /* Allocate sufficient space: from->len + optional newline. */ -+ /* Allocate sufficient space: from->len plus optional newline -+ plus two ".linefile " directives, plus a little more for other -+ expansion. */ - newline = from->len >= 1 && from->ptr[0] != '\n'; -- sb_build (&from_sb, from->len + newline); -+ sb_build (&from_sb, from->len + newline + 2 * sizeof (".linefile") + 30); - if (expansion == expanding_repeat && from_sb_expansion >= expanding_macro) - expansion = expanding_nested; - from_sb_expansion = expansion; ---- a/gas/macro.c -+++ b/gas/macro.c -@@ -1056,6 +1056,8 @@ macro_expand_body (sb *in, sb *out, form - loclist = f; - } - -+ if (!err && (out->len == 0 || out->ptr[out->len - 1] != '\n')) -+ sb_add_char (out, '\n'); - return err; - } - ---- a/gas/sb.c -+++ b/gas/sb.c -@@ -119,11 +119,12 @@ sb_scrub_and_add_sb (sb *ptr, sb *s) - So we loop until the input S is consumed. */ - while (1) - { -- size_t copy = s->len - (scrub_position - s->ptr); -+ size_t copy = s->len - (scrub_position - s->ptr) + do_scrub_pending (); - if (copy == 0) - break; - sb_check (ptr, copy); -- ptr->len += do_scrub_chars (scrub_from_sb, ptr->ptr + ptr->len, copy); -+ ptr->len += do_scrub_chars (scrub_from_sb, ptr->ptr + ptr->len, -+ ptr->max - ptr->len); - } - - sb_to_scrub = 0; ---- a/gas/testsuite/config/default.exp -+++ b/gas/testsuite/config/default.exp -@@ -52,6 +52,14 @@ if ![info exists NMFLAGS] then { - set NMFLAGS {} - } - -+if ![info exists SIZE] then { -+ set SIZE [findfile $base_dir/size] -+} -+ -+if ![info exists SIZEFLAGS] then { -+ set SIZEFLAGS "" -+} -+ - if ![info exists OBJCOPY] then { - set OBJCOPY [findfile $base_dir/../../binutils/objcopy] - } ---- /dev/null -+++ b/gas/testsuite/gas/macros/app5.d -@@ -0,0 +1,6 @@ -+#name: APP with linefile -+#xfail: tic30-*-* -+#size: -G -+# pr29466 just check that the test assembles -+ -+#pass ---- /dev/null -+++ b/gas/testsuite/gas/macros/app5.s -@@ -0,0 +1,5 @@ -+#NO_APP -+#APP -+# 5 "foo.c" 1 -+# 0 "" 2 -+#NO_APP ---- a/gas/testsuite/gas/macros/macros.exp -+++ b/gas/testsuite/gas/macros/macros.exp -@@ -70,6 +70,7 @@ run_dump_test app2 - run_dump_test app3 - remote_download host "$srcdir/$subdir/app4b.s" - run_dump_test app4 -+run_dump_test app5 - - run_list_test badarg "" - diff --git a/toolchain/binutils/patches/2.39/039-LoongArch-ld-Fix-relocation-error-of-pcrel.patch b/toolchain/binutils/patches/2.39/039-LoongArch-ld-Fix-relocation-error-of-pcrel.patch deleted file mode 100644 index 67e499de6..000000000 --- a/toolchain/binutils/patches/2.39/039-LoongArch-ld-Fix-relocation-error-of-pcrel.patch +++ /dev/null @@ -1,128 +0,0 @@ -From 509a2ec6ad3ea7eb3f4cf59538cf636a2126e4c3 Mon Sep 17 00:00:00 2001 -From: liuzhensong -Date: Fri, 2 Sep 2022 16:29:14 +0800 -Subject: [PATCH 039/160] LoongArch:ld: Fix relocation error of pcrel. - - Patch for branch 2.39. - Need to reduce the address of pc when using - reloction R_LARCH_SOP_PUSH_PCREL. - - bfd/ - * elfnn-loongarch.c ---- - bfd/elfnn-loongarch.c | 3 +- - ld/testsuite/ld-loongarch-elf/pcrel-const.d | 14 +++++++ - ld/testsuite/ld-loongarch-elf/pcrel-const.lds | 14 +++++++ - ld/testsuite/ld-loongarch-elf/pcrel-const.s | 12 ++++++ - ld/testsuite/ld-loongarch-elf/pr.exp | 39 +++++++++++++++++++ - 5 files changed, 81 insertions(+), 1 deletion(-) - create mode 100644 ld/testsuite/ld-loongarch-elf/pcrel-const.d - create mode 100644 ld/testsuite/ld-loongarch-elf/pcrel-const.lds - create mode 100644 ld/testsuite/ld-loongarch-elf/pcrel-const.s - create mode 100644 ld/testsuite/ld-loongarch-elf/pr.exp - ---- a/bfd/elfnn-loongarch.c -+++ b/bfd/elfnn-loongarch.c -@@ -2341,9 +2341,10 @@ loongarch_elf_relocate_section (bfd *out - case R_LARCH_SOP_PUSH_PLT_PCREL: - unresolved_reloc = false; - -- if (resolved_to_const) -+ if (!is_undefweak && resolved_to_const) - { - relocation += rel->r_addend; -+ relocation -= pc; - break; - } - else if (is_undefweak) ---- /dev/null -+++ b/ld/testsuite/ld-loongarch-elf/pcrel-const.d -@@ -0,0 +1,14 @@ -+#as: -mla-global-with-pcrel -+#objdump: -Drsz -+ -+.*:[ ]+file format .* -+ -+ -+Disassembly of section .text: -+ -+.* : -+#... -+[ ]+8:[ ]+02c04084[ ]+addi.d[ ]+\$a0,[ ]+\$a0,[ ]+16\(0x10\) -+#... -+0+14 <__sec_end>: -+#pass ---- /dev/null -+++ b/ld/testsuite/ld-loongarch-elf/pcrel-const.lds -@@ -0,0 +1,14 @@ -+ENTRY(foo); -+SECTIONS -+{ -+ .text : { -+ *(.text*) -+ } -+ -+ .data : { -+ __sec_start = .; -+ *(.gzdata) -+ __sec_end = .; -+ } -+} -+PROVIDE(__sec_size = __sec_end); ---- /dev/null -+++ b/ld/testsuite/ld-loongarch-elf/pcrel-const.s -@@ -0,0 +1,12 @@ -+ .text -+ .align 2 -+ .globl foo -+ .type foo, @function -+foo: -+ nop -+ la.global $r4,__sec_size -+ ldptr.w $r4,$r4,0 -+ jr $r1 -+ .size foo, .-foo -+ .data -+ .word 1 ---- /dev/null -+++ b/ld/testsuite/ld-loongarch-elf/pr.exp -@@ -0,0 +1,39 @@ -+# Expect script for LoongArch ELF linker tests -+# Copyright (C) 2022 Free Software Foundation, Inc. -+# -+# This file is part of the GNU Binutils. -+# -+# This program is free software; you can redistribute it and/or modify -+# it under the terms of the GNU General Public License as published by -+# the Free Software Foundation; either version 3 of the License, or -+# (at your option) any later version. -+# -+# This program is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+# GNU General Public License for more details. -+# -+# You should have received a copy of the GNU General Public License -+# along with this program; if not, write to the Free Software -+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, -+# MA 02110-1301, USA. -+# -+ -+if ![istarget loongarch64-*-*] { -+ return -+} -+ -+set link_tests [list \ -+ [list \ -+ "pcrel const" \ -+ "-T pcrel-const.lds" "" \ -+ "-mla-global-with-pcrel" \ -+ { pcrel-const.s } \ -+ [list \ -+ [list objdump -D pcrel-const.d] \ -+ ] \ -+ "pcrel-const" \ -+ ] \ -+] -+ -+run_ld_link_tests $link_tests diff --git a/toolchain/binutils/patches/2.39/043-Re-PR29466-APP-NO_APP-with-linefile.patch b/toolchain/binutils/patches/2.39/043-Re-PR29466-APP-NO_APP-with-linefile.patch deleted file mode 100644 index 1de501a1a..000000000 --- a/toolchain/binutils/patches/2.39/043-Re-PR29466-APP-NO_APP-with-linefile.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 4233be14a34d754a70b8b6f6fa42d21f35c6e030 Mon Sep 17 00:00:00 2001 -From: Alan Modra -Date: Sat, 10 Sep 2022 07:30:57 +0930 -Subject: [PATCH 043/160] Re: PR29466, APP/NO_APP with linefile - -It looks like I copied the SIZE init across from -binutils/testsuite/config/default.exp without some necessary editing. - - PR 29466 - * testsuite/config/default.exp (SIZE): Adjust relative path. - -(cherry picked from commit 1180f540d5f2f7751b5309bdd6c38d69fcf699e7) ---- - gas/testsuite/config/default.exp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/gas/testsuite/config/default.exp -+++ b/gas/testsuite/config/default.exp -@@ -53,7 +53,7 @@ if ![info exists NMFLAGS] then { - } - - if ![info exists SIZE] then { -- set SIZE [findfile $base_dir/size] -+ set SIZE [findfile $base_dir/../../binutils/size] - } - - if ![info exists SIZEFLAGS] then { diff --git a/toolchain/binutils/patches/2.39/050-PowerPC64-pcrel-got-relocs-against-local-symbols.patch b/toolchain/binutils/patches/2.39/050-PowerPC64-pcrel-got-relocs-against-local-symbols.patch deleted file mode 100644 index 5c89f6804..000000000 --- a/toolchain/binutils/patches/2.39/050-PowerPC64-pcrel-got-relocs-against-local-symbols.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 4d7bba23a39fba18d6d13a2941a3c232011a7064 Mon Sep 17 00:00:00 2001 -From: Alan Modra -Date: Fri, 16 Sep 2022 18:08:44 +0930 -Subject: [PATCH 050/160] PowerPC64 pcrel got relocs against local symbols - -Not that anyone would want to indirect via the GOT when an address can -be loaded directly with pla, the following: - - pld 3,x@got@pcrel -x: - -leads to "Internal error in md_apply_fix", because the generic parts -of assembler fixup handling convert the fx_pcrel fixup to one without -a symbol. Stop that happening. - - * config/tc-ppc.c (ppc_force_relocation): Add PLT_PCREL34 and - assorted GOT_PCREL34 relocs. - -(cherry picked from commit 49c3ed081fed6b8e2b48fdc48f805f11e4589514) ---- - gas/config/tc-ppc.c | 6 ++++++ - 1 file changed, 6 insertions(+) - ---- a/gas/config/tc-ppc.c -+++ b/gas/config/tc-ppc.c -@@ -6676,6 +6676,12 @@ ppc_force_relocation (fixS *fix) - case BFD_RELOC_PPC_BA16_BRNTAKEN: - case BFD_RELOC_24_PLT_PCREL: - case BFD_RELOC_PPC64_TOC: -+ case BFD_RELOC_PPC64_PLT_PCREL34: -+ case BFD_RELOC_PPC64_GOT_PCREL34: -+ case BFD_RELOC_PPC64_GOT_TLSGD_PCREL34: -+ case BFD_RELOC_PPC64_GOT_TLSLD_PCREL34: -+ case BFD_RELOC_PPC64_GOT_TPREL_PCREL34: -+ case BFD_RELOC_PPC64_GOT_DTPREL_PCREL34: - return 1; - case BFD_RELOC_PPC_B26: - case BFD_RELOC_PPC_BA26: diff --git a/toolchain/binutils/patches/2.39/055-Re-PowerPC64-pcrel-got-relocs-against-local-symbols.patch b/toolchain/binutils/patches/2.39/055-Re-PowerPC64-pcrel-got-relocs-against-local-symbols.patch deleted file mode 100644 index 19b80c344..000000000 --- a/toolchain/binutils/patches/2.39/055-Re-PowerPC64-pcrel-got-relocs-against-local-symbols.patch +++ /dev/null @@ -1,94 +0,0 @@ -From 010db38b54b589ca3e95b498aba2831064970171 Mon Sep 17 00:00:00 2001 -From: Alan Modra -Date: Wed, 21 Sep 2022 09:06:29 +0930 -Subject: [PATCH 055/160] Re: PowerPC64 pcrel got relocs against local symbols - -The last patch wasn't all that shiny. There are rather a lot more -relocations that can hit the assertion in md_apply_fix if the symbol -is local or absolute. Fix them all. - - * config/tc-ppc.c (ppc_force_relocation): Add all relocs that - expect a symbol in md_apply_fix. Remove tls pcrel relocs - already covered in general tls match range. - -(cherry picked from commit 8b168f1a1e09e337d2a970f204a0230c091bbe58) ---- - gas/config/tc-ppc.c | 58 ++++++++++++++++++++++++++++++++++++++++----- - 1 file changed, 52 insertions(+), 6 deletions(-) - ---- a/gas/config/tc-ppc.c -+++ b/gas/config/tc-ppc.c -@@ -6666,8 +6666,6 @@ ppc_force_relocation (fixS *fix) - int - ppc_force_relocation (fixS *fix) - { -- /* Branch prediction relocations must force a relocation, as must -- the vtable description relocs. */ - switch (fix->fx_r_type) - { - case BFD_RELOC_PPC_B16_BRTAKEN: -@@ -6676,12 +6674,60 @@ ppc_force_relocation (fixS *fix) - case BFD_RELOC_PPC_BA16_BRNTAKEN: - case BFD_RELOC_24_PLT_PCREL: - case BFD_RELOC_PPC64_TOC: -+ case BFD_RELOC_16_GOTOFF: -+ case BFD_RELOC_LO16_GOTOFF: -+ case BFD_RELOC_HI16_GOTOFF: -+ case BFD_RELOC_HI16_S_GOTOFF: -+ case BFD_RELOC_LO16_PLTOFF: -+ case BFD_RELOC_HI16_PLTOFF: -+ case BFD_RELOC_HI16_S_PLTOFF: -+ case BFD_RELOC_GPREL16: -+ case BFD_RELOC_16_BASEREL: -+ case BFD_RELOC_LO16_BASEREL: -+ case BFD_RELOC_HI16_BASEREL: -+ case BFD_RELOC_HI16_S_BASEREL: -+ case BFD_RELOC_PPC_TOC16: -+ case BFD_RELOC_PPC64_TOC16_LO: -+ case BFD_RELOC_PPC64_TOC16_HI: -+ case BFD_RELOC_PPC64_TOC16_HA: -+ case BFD_RELOC_PPC64_PLTGOT16: -+ case BFD_RELOC_PPC64_PLTGOT16_LO: -+ case BFD_RELOC_PPC64_PLTGOT16_HI: -+ case BFD_RELOC_PPC64_PLTGOT16_HA: -+ case BFD_RELOC_PPC64_GOT16_DS: -+ case BFD_RELOC_PPC64_GOT16_LO_DS: -+ case BFD_RELOC_PPC64_PLT16_LO_DS: -+ case BFD_RELOC_PPC64_SECTOFF_DS: -+ case BFD_RELOC_PPC64_SECTOFF_LO_DS: -+ case BFD_RELOC_PPC64_TOC16_DS: -+ case BFD_RELOC_PPC64_TOC16_LO_DS: -+ case BFD_RELOC_PPC64_PLTGOT16_DS: -+ case BFD_RELOC_PPC64_PLTGOT16_LO_DS: -+ case BFD_RELOC_PPC_EMB_NADDR16: -+ case BFD_RELOC_PPC_EMB_NADDR16_LO: -+ case BFD_RELOC_PPC_EMB_NADDR16_HI: -+ case BFD_RELOC_PPC_EMB_NADDR16_HA: -+ case BFD_RELOC_PPC_EMB_SDAI16: -+ case BFD_RELOC_PPC_EMB_SDA2I16: -+ case BFD_RELOC_PPC_EMB_SDA2REL: -+ case BFD_RELOC_PPC_EMB_SDA21: -+ case BFD_RELOC_PPC_EMB_MRKREF: -+ case BFD_RELOC_PPC_EMB_RELSEC16: -+ case BFD_RELOC_PPC_EMB_RELST_LO: -+ case BFD_RELOC_PPC_EMB_RELST_HI: -+ case BFD_RELOC_PPC_EMB_RELST_HA: -+ case BFD_RELOC_PPC_EMB_BIT_FLD: -+ case BFD_RELOC_PPC_EMB_RELSDA: -+ case BFD_RELOC_PPC_VLE_SDA21: -+ case BFD_RELOC_PPC_VLE_SDA21_LO: -+ case BFD_RELOC_PPC_VLE_SDAREL_LO16A: -+ case BFD_RELOC_PPC_VLE_SDAREL_LO16D: -+ case BFD_RELOC_PPC_VLE_SDAREL_HI16A: -+ case BFD_RELOC_PPC_VLE_SDAREL_HI16D: -+ case BFD_RELOC_PPC_VLE_SDAREL_HA16A: -+ case BFD_RELOC_PPC_VLE_SDAREL_HA16D: - case BFD_RELOC_PPC64_PLT_PCREL34: - case BFD_RELOC_PPC64_GOT_PCREL34: -- case BFD_RELOC_PPC64_GOT_TLSGD_PCREL34: -- case BFD_RELOC_PPC64_GOT_TLSLD_PCREL34: -- case BFD_RELOC_PPC64_GOT_TPREL_PCREL34: -- case BFD_RELOC_PPC64_GOT_DTPREL_PCREL34: - return 1; - case BFD_RELOC_PPC_B26: - case BFD_RELOC_PPC_BA26: diff --git a/toolchain/binutils/patches/2.39/058-elf-Reset-alignment-for-each-PT_LOAD-segment.patch b/toolchain/binutils/patches/2.39/058-elf-Reset-alignment-for-each-PT_LOAD-segment.patch deleted file mode 100644 index aaf7a1b05..000000000 --- a/toolchain/binutils/patches/2.39/058-elf-Reset-alignment-for-each-PT_LOAD-segment.patch +++ /dev/null @@ -1,89 +0,0 @@ -From a98316d5cf970cbc99689797d84c2ea832bcdcbb Mon Sep 17 00:00:00 2001 -From: "H.J. Lu" -Date: Mon, 1 Aug 2022 16:02:39 -0700 -Subject: [PATCH 058/160] elf: Reset alignment for each PT_LOAD segment - -Reset alignment for each PT_LOAD segment to avoid using alignment from -the previous PT_LOAD segment. - -bfd/ - - PR ld/29435 - * elf.c (assign_file_positions_for_load_sections): Reset - alignment for each PT_LOAD segment. - -ld/ - - PR ld/29435 - * testsuite/ld-elf/pr29435.d: New file. - * testsuite/ld-elf/pr29435.s: Likewise. - -(cherry picked from commit 59f214544c50ec7ebbca285ff2b4949f48671690) ---- - bfd/elf.c | 7 ++++--- - ld/testsuite/ld-elf/pr29435.d | 11 +++++++++++ - ld/testsuite/ld-elf/pr29435.s | 6 ++++++ - 3 files changed, 21 insertions(+), 3 deletions(-) - create mode 100644 ld/testsuite/ld-elf/pr29435.d - create mode 100644 ld/testsuite/ld-elf/pr29435.s - ---- a/bfd/elf.c -+++ b/bfd/elf.c -@@ -5438,8 +5438,6 @@ assign_file_positions_for_load_sections - Elf_Internal_Phdr *p; - file_ptr off; /* Octets. */ - bfd_size_type maxpagesize; -- bfd_size_type p_align; -- bool p_align_p = false; - unsigned int alloc, actual; - unsigned int i, j; - struct elf_segment_map **sorted_seg_map; -@@ -5524,7 +5522,6 @@ assign_file_positions_for_load_sections - qsort (sorted_seg_map, alloc, sizeof (*sorted_seg_map), - elf_sort_segments); - -- p_align = bed->p_align; - maxpagesize = 1; - if ((abfd->flags & D_PAGED) != 0) - { -@@ -5559,6 +5556,8 @@ assign_file_positions_for_load_sections - asection **secpp; - bfd_vma off_adjust; /* Octets. */ - bool no_contents; -+ bfd_size_type p_align; -+ bool p_align_p; - - /* An ELF segment (described by Elf_Internal_Phdr) may contain a - number of sections with contents contributing to both p_filesz -@@ -5569,6 +5568,8 @@ assign_file_positions_for_load_sections - p = phdrs + m->idx; - p->p_type = m->p_type; - p->p_flags = m->p_flags; -+ p_align = bed->p_align; -+ p_align_p = false; - - if (m->count == 0) - p->p_vaddr = m->p_vaddr_offset * opb; ---- /dev/null -+++ b/ld/testsuite/ld-elf/pr29435.d -@@ -0,0 +1,11 @@ -+#ld: -shared -z separate-code -z relro -+#xfail: ![check_shared_lib_support] -+#xfail: ![check_relro_support] -+#readelf: -Wl -+ -+#failif -+#... -+ +LOAD +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ .* 0x8000 -+#... -+ +LOAD +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ .* 0x8000 -+#... ---- /dev/null -+++ b/ld/testsuite/ld-elf/pr29435.s -@@ -0,0 +1,6 @@ -+ .text -+ .balign 0x8000 -+ .globl foo -+ .type foo, %function -+foo: -+ .byte 0 diff --git a/toolchain/binutils/patches/2.39/063-PR29542-PowerPC-gold-internal-error-in-get_output_vi.patch b/toolchain/binutils/patches/2.39/063-PR29542-PowerPC-gold-internal-error-in-get_output_vi.patch deleted file mode 100644 index 0d66b7750..000000000 --- a/toolchain/binutils/patches/2.39/063-PR29542-PowerPC-gold-internal-error-in-get_output_vi.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 041c22e35de06d22566f4c71e4425c3351215e66 Mon Sep 17 00:00:00 2001 -From: Alan Modra -Date: Sun, 25 Sep 2022 12:07:36 +0930 -Subject: [PATCH 063/160] PR29542, PowerPC gold internal error in - get_output_view, - -We were attempting to set a BSS style section contents. - - PR 29542 - * powerpc.cc (Output_data_plt_powerpc::do_write): Don't set .plt, - .iplt or .lplt section contents when position independent. - -(cherry picked from commit c21736aed1d4877e090df60362413669dbdc391d) ---- - gold/powerpc.cc | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - ---- a/gold/powerpc.cc -+++ b/gold/powerpc.cc -@@ -4338,7 +4338,8 @@ template - void - Output_data_plt_powerpc::do_write(Output_file* of) - { -- if (!this->sym_ents_.empty()) -+ if (!this->sym_ents_.empty() -+ && !parameters->options().output_is_position_independent()) - { - const section_size_type offset = this->offset(); - const section_size_type oview_size diff --git a/toolchain/binutils/patches/2.39/116-arm-Use-DWARF-numbering-convention-for-pseudo-regist.patch b/toolchain/binutils/patches/2.39/116-arm-Use-DWARF-numbering-convention-for-pseudo-regist.patch deleted file mode 100644 index 82a015ee2..000000000 --- a/toolchain/binutils/patches/2.39/116-arm-Use-DWARF-numbering-convention-for-pseudo-regist.patch +++ /dev/null @@ -1,301 +0,0 @@ -From 88ac930a725b8aac8284a2738f03b843f4343dd0 Mon Sep 17 00:00:00 2001 -From: Victor Do Nascimento -Date: Thu, 17 Nov 2022 14:48:37 +0000 -Subject: [PATCH 116/160] arm: Use DWARF numbering convention for - pseudo-register representation - -The patch, initially submitted to trunk in -https://sourceware.org/pipermail/binutils/2022-July/122092.html ensures correct -support for handling .save directives for mixed-register type lists involving -the ra_auth_code pseudo-register, whereby the support first introduced in 2.39 -(https://sourceware.org/pipermail/binutils/2022-May/120672.html) led to the -generation of unwinder code popping registers in reversed order. - -gas/Changelog: - - * config/tc-arm.c (REG_RA_AUTH_CODE): New. - (parse_dot_save): Likewise. - (parse_reg_list): Remove obsolete code. - (reg_names): Set ra_auth_code to 143. - (s_arm_unwind_save): Handle core and pseudo-register lists via - parse_dot_save. - (s_arm_unwind_save_mixed): Deleted. - (s_arm_unwind_save_pseudo): Handle one register at a time. - * testsuite/gas/arm/unwind-pacbti-m-readelf.d: Fix test. - * testsuite/gas/arm/unwind-pacbti-m.d: Likewise. - -(cherry picked from commit 3a368c4c248f6e9f4bda3a5369befa17a4560293) ---- - gas/config/tc-arm.c | 159 ++++++++++-------- - .../gas/arm/unwind-pacbti-m-readelf.d | 4 +- - gas/testsuite/gas/arm/unwind-pacbti-m.d | 2 +- - 3 files changed, 95 insertions(+), 70 deletions(-) - ---- a/gas/config/tc-arm.c -+++ b/gas/config/tc-arm.c -@@ -742,6 +742,7 @@ const char * const reg_expected_msgs[] = - #define REG_SP 13 - #define REG_LR 14 - #define REG_PC 15 -+#define REG_RA_AUTH_CODE 143 - - /* ARM instructions take 4bytes in the object file, Thumb instructions - take 2: */ -@@ -1943,21 +1944,6 @@ parse_reg_list (char ** strp, enum reg_l - - reg = arm_reg_parse (&str, rt); - -- /* Skip over allowed registers of alternative types in mixed-type -- register lists. */ -- if (reg == FAIL && rt == REG_TYPE_PSEUDO -- && ((reg = arm_reg_parse (&str, REG_TYPE_RN)) != FAIL)) -- { -- cur_reg = reg; -- continue; -- } -- else if (reg == FAIL && rt == REG_TYPE_RN -- && ((reg = arm_reg_parse (&str, REG_TYPE_PSEUDO)) != FAIL)) -- { -- cur_reg = reg; -- continue; -- } -- - if (etype == REGLIST_CLRM) - { - if (reg == REG_SP || reg == REG_PC) -@@ -4139,7 +4125,6 @@ s_arm_unwind_fnstart (int ignored ATTRIB - unwind.sp_restored = 0; - } - -- - /* Parse a handlerdata directive. Creates the exception handling table entry - for the function. */ - -@@ -4297,15 +4282,19 @@ s_arm_unwind_personality (int ignored AT - /* Parse a directive saving pseudo registers. */ - - static void --s_arm_unwind_save_pseudo (long range) -+s_arm_unwind_save_pseudo (int regno) - { - valueT op; - -- if (range & (1 << 12)) -+ switch (regno) - { -+ case REG_RA_AUTH_CODE: - /* Opcode for restoring RA_AUTH_CODE. */ - op = 0xb4; - add_unwind_opcode (op, 1); -+ break; -+ default: -+ as_bad (_("Unknown register %d encountered\n"), regno); - } - } - -@@ -4375,6 +4364,80 @@ s_arm_unwind_save_core (long range) - } - } - -+/* Implement correct handling of .save lists enabling the split into -+sublists where necessary, while preserving correct sublist ordering. */ -+ -+static void -+parse_dot_save (char **str_p, int prev_reg) -+{ -+ long core_regs = 0; -+ int reg; -+ int in_range = 0; -+ -+ if (**str_p == ',') -+ *str_p += 1; -+ if (**str_p == '}') -+ { -+ *str_p += 1; -+ return; -+ } -+ -+ while ((reg = arm_reg_parse (str_p, REG_TYPE_RN)) != FAIL) -+ { -+ if (!in_range) -+ { -+ if (core_regs & (1 << reg)) -+ as_tsktsk (_("Warning: duplicated register (r%d) in register list"), -+ reg); -+ else if (reg <= prev_reg) -+ as_tsktsk (_("Warning: register list not in ascending order")); -+ -+ core_regs |= (1 << reg); -+ prev_reg = reg; -+ if (skip_past_char(str_p, '-') != FAIL) -+ in_range = 1; -+ else if (skip_past_comma(str_p) == FAIL) -+ first_error (_("bad register list")); -+ } -+ else -+ { -+ int i; -+ if (reg <= prev_reg) -+ first_error (_("bad range in register list")); -+ for (i = prev_reg + 1; i <= reg; i++) -+ { -+ if (core_regs & (1 << i)) -+ as_tsktsk (_("Warning: duplicated register (r%d) in register list"), -+ i); -+ else -+ core_regs |= 1 << i; -+ } -+ in_range = 0; -+ } -+ } -+ if (core_regs) -+ { -+ /* Higher register numbers go in higher memory addresses. When splitting a list, -+ right-most sublist should therefore be .saved first. Use recursion for this. */ -+ parse_dot_save (str_p, reg); -+ /* We're back from recursion, so emit .save insn for sublist. */ -+ s_arm_unwind_save_core (core_regs); -+ return; -+ } -+ /* Handle pseudo-regs, under assumption these are emitted singly. */ -+ else if ((reg = arm_reg_parse (str_p, REG_TYPE_PSEUDO)) != FAIL) -+ { -+ /* Recurse for remainder of input. Note: No assumption is made regarding which -+ register in core register set holds pseudo-register. It's not considered in -+ ordering check beyond ensuring it's not sandwiched between 2 consecutive -+ registers. */ -+ parse_dot_save (str_p, prev_reg + 1); -+ s_arm_unwind_save_pseudo (reg); -+ return; -+ } -+ else -+ as_bad (BAD_SYNTAX); -+} - - /* Parse a directive saving FPA registers. */ - -@@ -4716,39 +4779,13 @@ s_arm_unwind_save_mmxwcg (void) - ignore_rest_of_line (); - } - --/* Convert range and mask_range into a sequence of s_arm_unwind_core -- and s_arm_unwind_pseudo operations. We assume that mask_range will -- not have consecutive bits set, or that one operation per bit is -- acceptable. */ -- --static void --s_arm_unwind_save_mixed (long range, long mask_range) --{ -- while (mask_range) -- { -- long mask_bit = mask_range & -mask_range; -- long subrange = range & (mask_bit - 1); -- -- if (subrange) -- s_arm_unwind_save_core (subrange); -- -- s_arm_unwind_save_pseudo (mask_bit); -- range &= ~subrange; -- mask_range &= ~mask_bit; -- } -- -- if (range) -- s_arm_unwind_save_core (range); --} -- - /* Parse an unwind_save directive. - If the argument is non-zero, this is a .vsave directive. */ - - static void - s_arm_unwind_save (int arch_v6) - { -- char *peek, *mask_peek; -- long range, mask_range; -+ char *peek; - struct reg_entry *reg; - bool had_brace = false; - -@@ -4756,7 +4793,7 @@ s_arm_unwind_save (int arch_v6) - as_bad (MISSING_FNSTART); - - /* Figure out what sort of save we have. */ -- peek = mask_peek = input_line_pointer; -+ peek = input_line_pointer; - - if (*peek == '{') - { -@@ -4788,20 +4825,13 @@ s_arm_unwind_save (int arch_v6) - - case REG_TYPE_PSEUDO: - case REG_TYPE_RN: -- mask_range = parse_reg_list (&mask_peek, REGLIST_PSEUDO); -- range = parse_reg_list (&input_line_pointer, REGLIST_RN); -- -- if (range == FAIL || mask_range == FAIL) -- { -- as_bad (_("expected register list")); -- ignore_rest_of_line (); -- return; -- } -- -- demand_empty_rest_of_line (); -- -- s_arm_unwind_save_mixed (range, mask_range); -- return; -+ { -+ if (had_brace) -+ input_line_pointer++; -+ parse_dot_save (&input_line_pointer, -1); -+ demand_empty_rest_of_line (); -+ return; -+ } - - case REG_TYPE_VFD: - if (arch_v6) -@@ -23993,12 +24023,8 @@ static const struct reg_entry reg_names[ - /* XScale accumulator registers. */ - REGNUM(acc,0,XSCALE), REGNUM(ACC,0,XSCALE), - -- /* DWARF ABI defines RA_AUTH_CODE to 143. It also reserves 134-142 for future -- expansion. RA_AUTH_CODE here is given the value 143 % 134 to make it easy -- for tc_arm_regname_to_dw2regnum to translate to DWARF reg number using -- 134 + reg_number should the range 134 to 142 be used for more pseudo regs -- in the future. This also helps fit RA_AUTH_CODE into a bitmask. */ -- REGDEF(ra_auth_code,12,PSEUDO), -+ /* AADWARF32 defines RA_AUTH_CODE to 143. */ -+ REGDEF(ra_auth_code,143,PSEUDO), - }; - #undef REGDEF - #undef REGNUM -@@ -27905,7 +27931,6 @@ create_unwind_entry (int have_data) - return 0; - } - -- - /* Initialize the DWARF-2 unwind information for this procedure. */ - - void ---- a/gas/testsuite/gas/arm/unwind-pacbti-m-readelf.d -+++ b/gas/testsuite/gas/arm/unwind-pacbti-m-readelf.d -@@ -10,11 +10,11 @@ Unwind section '.ARM.exidx' at offset 0x - - 0x0 : @0x0 - Compact model index: 1 -- 0x84 0x00 pop {r14} - 0xb4 pop {ra_auth_code} - 0x84 0x00 pop {r14} -- 0xb4 pop {ra_auth_code} - 0xa3 pop {r4, r5, r6, r7} - 0xb4 pop {ra_auth_code} -+ 0x84 0x00 pop {r14} -+ 0xb4 pop {ra_auth_code} - 0xa8 pop {r4, r14} - 0xb0 finish ---- a/gas/testsuite/gas/arm/unwind-pacbti-m.d -+++ b/gas/testsuite/gas/arm/unwind-pacbti-m.d -@@ -8,4 +8,4 @@ - .*: file format.* - - Contents of section .ARM.extab: -- 0000 (00840281 b40084b4 b0a8b4a3|81028400 b48400b4 a3b4a8b0) 00000000 .* -+ 0000 (84b40281 84b4a300 b0a8b400|8102b484 00a3b484 00b4a8b0) 00000000 .* diff --git a/toolchain/build_version b/toolchain/build_version deleted file mode 100644 index d00491fd7..000000000 --- a/toolchain/build_version +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/toolchain/gcc/Config.in b/toolchain/gcc/Config.in index 8a31bf0d2..69eacaef9 100644 --- a/toolchain/gcc/Config.in +++ b/toolchain/gcc/Config.in @@ -10,9 +10,12 @@ choice config GCC_USE_VERSION_8 bool "gcc 8.x" + config GCC_USE_VERSION_10 + bool "gcc 10.x" + config GCC_USE_VERSION_11 bool "gcc 11.x" - + config GCC_USE_VERSION_12 bool "gcc 12.x" endchoice diff --git a/toolchain/gcc/Config.version b/toolchain/gcc/Config.version index da915851a..8bfb17d03 100644 --- a/toolchain/gcc/Config.version +++ b/toolchain/gcc/Config.version @@ -3,6 +3,10 @@ config GCC_VERSION_8 default y if mips || mipsel || mips64 || mips64el bool +config GCC_VERSION_10 + default y if GCC_USE_VERSION_10 + bool + config GCC_VERSION_12 default y if GCC_USE_VERSION_12 bool @@ -10,5 +14,6 @@ config GCC_VERSION_12 config GCC_VERSION string default "8.4.0" if GCC_VERSION_8 + default "10.3.0" if GCC_VERSION_10 default "12.2.0" if GCC_VERSION_12 default "11.3.0" diff --git a/toolchain/gcc/common.mk b/toolchain/gcc/common.mk index 1a4a849e4..e7d45bcb6 100644 --- a/toolchain/gcc/common.mk +++ b/toolchain/gcc/common.mk @@ -33,6 +33,10 @@ ifeq ($(PKG_VERSION),8.4.0) PKG_HASH:=e30a6e52d10e1f27ed55104ad233c30bd1e99cfb5ff98ab022dc941edd1b2dd4 endif +ifeq ($(PKG_VERSION),10.3.0) + PKG_HASH:=64f404c1a650f27fc33da242e1f2df54952e3963a49e06e73f6940f3223ac344 +endif + ifeq ($(PKG_VERSION),11.3.0) PKG_HASH:=b47cf2818691f5b1e21df2bb38c795fac2cfbd640ede2d0a5e1c89e338a3ac39 endif @@ -109,7 +113,6 @@ GCC_CONFIGURE:= \ $(if $(CONFIG_mips64)$(CONFIG_mips64el),--with-arch=mips64 \ --with-abi=$(call qstrip,$(CONFIG_MIPS64_ABI))) \ $(if $(CONFIG_arc),--with-cpu=$(CONFIG_CPU_TYPE)) \ - $(if $(CONFIG_powerpc64), $(if $(CONFIG_USE_MUSL),--with-abi=elfv2)) \ --with-gmp=$(TOPDIR)/staging_dir/host \ --with-mpfr=$(TOPDIR)/staging_dir/host \ --with-mpc=$(TOPDIR)/staging_dir/host \ diff --git a/toolchain/gcc/patches-10.x/002-case_insensitive.patch b/toolchain/gcc/patches-10.x/002-case_insensitive.patch new file mode 100644 index 000000000..409497e5a --- /dev/null +++ b/toolchain/gcc/patches-10.x/002-case_insensitive.patch @@ -0,0 +1,24 @@ +commit 81cc26c706b2bc8c8c1eb1a322e5c5157900836e +Author: Felix Fietkau +Date: Sun Oct 19 21:45:51 2014 +0000 + + gcc: do not assume that the Mac OS X filesystem is case insensitive + + Signed-off-by: Felix Fietkau + + SVN-Revision: 42973 + +--- a/include/filenames.h ++++ b/include/filenames.h +@@ -44,11 +44,6 @@ extern "C" { + # define IS_DIR_SEPARATOR(c) IS_DOS_DIR_SEPARATOR (c) + # define IS_ABSOLUTE_PATH(f) IS_DOS_ABSOLUTE_PATH (f) + #else /* not DOSish */ +-# if defined(__APPLE__) +-# ifndef HAVE_CASE_INSENSITIVE_FILE_SYSTEM +-# define HAVE_CASE_INSENSITIVE_FILE_SYSTEM 1 +-# endif +-# endif /* __APPLE__ */ + # define HAS_DRIVE_SPEC(f) (0) + # define IS_DIR_SEPARATOR(c) IS_UNIX_DIR_SEPARATOR (c) + # define IS_ABSOLUTE_PATH(f) IS_UNIX_ABSOLUTE_PATH (f) diff --git a/toolchain/gcc/patches-10.x/010-documentation.patch b/toolchain/gcc/patches-10.x/010-documentation.patch new file mode 100644 index 000000000..85990e5ac --- /dev/null +++ b/toolchain/gcc/patches-10.x/010-documentation.patch @@ -0,0 +1,35 @@ +commit 098bd91f5eae625c7d2ee621e10930fc4434e5e2 +Author: Luka Perkov +Date: Tue Feb 26 16:16:33 2013 +0000 + + gcc: don't build documentation + + This closes #13039. + + Signed-off-by: Luka Perkov + + SVN-Revision: 35807 + +--- a/gcc/Makefile.in ++++ b/gcc/Makefile.in +@@ -3285,18 +3285,10 @@ doc/gcc.info: $(TEXI_GCC_FILES) + doc/gccint.info: $(TEXI_GCCINT_FILES) + doc/cppinternals.info: $(TEXI_CPPINT_FILES) + +-doc/%.info: %.texi +- if [ x$(BUILD_INFO) = xinfo ]; then \ +- $(MAKEINFO) $(MAKEINFOFLAGS) -I . -I $(gcc_docdir) \ +- -I $(gcc_docdir)/include -o $@ $<; \ +- fi ++doc/%.info: + + # Duplicate entry to handle renaming of gccinstall.info +-doc/gccinstall.info: $(TEXI_GCCINSTALL_FILES) +- if [ x$(BUILD_INFO) = xinfo ]; then \ +- $(MAKEINFO) $(MAKEINFOFLAGS) -I $(gcc_docdir) \ +- -I $(gcc_docdir)/include -o $@ $<; \ +- fi ++doc/gccinstall.info: + + doc/cpp.dvi: $(TEXI_CPP_FILES) + doc/gcc.dvi: $(TEXI_GCC_FILES) diff --git a/toolchain/gcc/patches-10.x/110-Fix-MIPS-PR-84790.patch b/toolchain/gcc/patches-10.x/110-Fix-MIPS-PR-84790.patch new file mode 100644 index 000000000..82ac013d3 --- /dev/null +++ b/toolchain/gcc/patches-10.x/110-Fix-MIPS-PR-84790.patch @@ -0,0 +1,20 @@ +Fix https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84790. +MIPS16 functions have a static assembler prologue which clobbers +registers v0 and v1. Add these register clobbers to function call +instructions. + +--- a/gcc/config/mips/mips.c ++++ b/gcc/config/mips/mips.c +@@ -3132,6 +3132,12 @@ mips_emit_call_insn (rtx pattern, rtx or + emit_insn (gen_update_got_version ()); + } + ++ if (TARGET_MIPS16 && TARGET_USE_GOT) ++ { ++ clobber_reg (&CALL_INSN_FUNCTION_USAGE (insn), MIPS16_PIC_TEMP); ++ clobber_reg (&CALL_INSN_FUNCTION_USAGE (insn), MIPS_PROLOGUE_TEMP (word_mode)); ++ } ++ + if (TARGET_MIPS16 + && TARGET_EXPLICIT_RELOCS + && TARGET_CALL_CLOBBERED_GP) diff --git a/toolchain/gcc/patches-10.x/230-musl_libssp.patch b/toolchain/gcc/patches-10.x/230-musl_libssp.patch new file mode 100644 index 000000000..63f37662f --- /dev/null +++ b/toolchain/gcc/patches-10.x/230-musl_libssp.patch @@ -0,0 +1,13 @@ +--- a/gcc/gcc.c ++++ b/gcc/gcc.c +@@ -875,7 +875,9 @@ proper position among the other output f + #endif + + #ifndef LINK_SSP_SPEC +-#ifdef TARGET_LIBC_PROVIDES_SSP ++#if DEFAULT_LIBC == LIBC_MUSL ++#define LINK_SSP_SPEC "-lssp_nonshared" ++#elif defined(TARGET_LIBC_PROVIDES_SSP) + #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ + "|fstack-protector-strong|fstack-protector-explicit:}" + #else diff --git a/toolchain/gcc/patches-10.x/300-mips_Os_cpu_rtx_cost_model.patch b/toolchain/gcc/patches-10.x/300-mips_Os_cpu_rtx_cost_model.patch new file mode 100644 index 000000000..8c4a5fce1 --- /dev/null +++ b/toolchain/gcc/patches-10.x/300-mips_Os_cpu_rtx_cost_model.patch @@ -0,0 +1,21 @@ +commit ecf7671b769fe96f7b5134be442089f8bdba55d2 +Author: Felix Fietkau +Date: Thu Aug 4 20:29:45 2016 +0200 + +gcc: add a patch to generate better code with Os on mips + +Also happens to reduce compressed code size a bit + +Signed-off-by: Felix Fietkau + +--- a/gcc/config/mips/mips.c ++++ b/gcc/config/mips/mips.c +@@ -20041,7 +20041,7 @@ mips_option_override (void) + flag_pcc_struct_return = 0; + + /* Decide which rtx_costs structure to use. */ +- if (optimize_size) ++ if (0 && optimize_size) + mips_cost = &mips_rtx_cost_optimize_size; + else + mips_cost = &mips_rtx_cost_data[mips_tune]; diff --git a/toolchain/gcc/patches-10.x/810-arm-softfloat-libgcc.patch b/toolchain/gcc/patches-10.x/810-arm-softfloat-libgcc.patch new file mode 100644 index 000000000..5c9d86aea --- /dev/null +++ b/toolchain/gcc/patches-10.x/810-arm-softfloat-libgcc.patch @@ -0,0 +1,33 @@ +commit 8570c4be394cff7282f332f97da2ff569a927ddb +Author: Imre Kaloz +Date: Wed Feb 2 20:06:12 2011 +0000 + + fixup arm soft-float symbols + + SVN-Revision: 25325 + +--- a/libgcc/config/arm/t-linux ++++ b/libgcc/config/arm/t-linux +@@ -1,6 +1,10 @@ + LIB1ASMSRC = arm/lib1funcs.S + LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx _clzsi2 _clzdi2 \ +- _ctzsi2 _arm_addsubdf3 _arm_addsubsf3 ++ _ctzsi2 _arm_addsubdf3 _arm_addsubsf3 \ ++ _arm_negdf2 _arm_muldivdf3 _arm_cmpdf2 _arm_unorddf2 \ ++ _arm_fixdfsi _arm_fixunsdfsi _arm_truncdfsf2 \ ++ _arm_negsf2 _arm_muldivsf3 _arm_cmpsf2 _arm_unordsf2 \ ++ _arm_fixsfsi _arm_fixunssfsi + + # Just for these, we omit the frame pointer since it makes such a big + # difference. +--- a/gcc/config/arm/linux-elf.h ++++ b/gcc/config/arm/linux-elf.h +@@ -58,8 +58,6 @@ + %{shared:-lc} \ + %{!shared:%{profile:-lc_p}%{!profile:-lc}}" + +-#define LIBGCC_SPEC "%{mfloat-abi=soft*:-lfloat} -lgcc" +- + #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" + + #define LINUX_TARGET_LINK_SPEC "%{h*} \ diff --git a/toolchain/gcc/patches-10.x/820-libgcc_pic.patch b/toolchain/gcc/patches-10.x/820-libgcc_pic.patch new file mode 100644 index 000000000..ddd6cf873 --- /dev/null +++ b/toolchain/gcc/patches-10.x/820-libgcc_pic.patch @@ -0,0 +1,44 @@ +commit c96312958c0621e72c9b32da5bc224ffe2161384 +Author: Felix Fietkau +Date: Mon Oct 19 23:26:09 2009 +0000 + + gcc: create a proper libgcc_pic.a static library for relinking (4.3.3+ for now, backport will follow) + + SVN-Revision: 18086 + +--- a/libgcc/Makefile.in ++++ b/libgcc/Makefile.in +@@ -929,11 +929,12 @@ $(libgcov-driver-objects): %$(objext): $ + + # Static libraries. + libgcc.a: $(libgcc-objects) ++libgcc_pic.a: $(libgcc-s-objects) + libgcov.a: $(libgcov-objects) + libunwind.a: $(libunwind-objects) + libgcc_eh.a: $(libgcc-eh-objects) + +-libgcc.a libgcov.a libunwind.a libgcc_eh.a: ++libgcc.a libgcov.a libunwind.a libgcc_eh.a libgcc_pic.a: + -rm -f $@ + + objects="$(objects)"; \ +@@ -957,7 +958,7 @@ all: libunwind.a + endif + + ifeq ($(enable_shared),yes) +-all: libgcc_eh.a libgcc_s$(SHLIB_EXT) ++all: libgcc_eh.a libgcc_pic.a libgcc_s$(SHLIB_EXT) + ifneq ($(LIBUNWIND),) + all: libunwind$(SHLIB_EXT) + libgcc_s$(SHLIB_EXT): libunwind$(SHLIB_EXT) +@@ -1163,6 +1164,10 @@ install-shared: + chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_eh.a + $(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_eh.a + ++ $(INSTALL_DATA) libgcc_pic.a $(mapfile) $(DESTDIR)$(inst_libdir)/ ++ chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_pic.a ++ $(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_pic.a ++ + $(subst @multilib_dir@,$(MULTIDIR),$(subst \ + @shlib_base_name@,libgcc_s,$(subst \ + @shlib_slibdir_qual@,$(MULTIOSSUBDIR),$(SHLIB_INSTALL)))) diff --git a/toolchain/gcc/patches-10.x/840-armv4_pass_fix-v4bx_to_ld.patch b/toolchain/gcc/patches-10.x/840-armv4_pass_fix-v4bx_to_ld.patch new file mode 100644 index 000000000..e3cb616c4 --- /dev/null +++ b/toolchain/gcc/patches-10.x/840-armv4_pass_fix-v4bx_to_ld.patch @@ -0,0 +1,28 @@ +commit 7edc8ca5456d9743dd0075eb3cc5b04f4f24c8cc +Author: Imre Kaloz +Date: Wed Feb 2 19:34:36 2011 +0000 + + add armv4 fixup patches + + SVN-Revision: 25322 + + +--- a/gcc/config/arm/linux-eabi.h ++++ b/gcc/config/arm/linux-eabi.h +@@ -91,10 +91,15 @@ + #define MUSL_DYNAMIC_LINKER \ + "/lib/ld-musl-arm" MUSL_DYNAMIC_LINKER_E "%{mfloat-abi=hard:hf}%{mfdpic:-fdpic}.so.1" + ++/* For armv4 we pass --fix-v4bx to linker to support EABI */ ++#undef TARGET_FIX_V4BX_SPEC ++#define TARGET_FIX_V4BX_SPEC " %{mcpu=arm8|mcpu=arm810|mcpu=strongarm*"\ ++ "|march=armv4|mcpu=fa526|mcpu=fa626:--fix-v4bx}" ++ + /* At this point, bpabi.h will have clobbered LINK_SPEC. We want to + use the GNU/Linux version, not the generic BPABI version. */ + #undef LINK_SPEC +-#define LINK_SPEC EABI_LINK_SPEC \ ++#define LINK_SPEC EABI_LINK_SPEC TARGET_FIX_V4BX_SPEC \ + LINUX_OR_ANDROID_LD (LINUX_TARGET_LINK_SPEC, \ + LINUX_TARGET_LINK_SPEC " " ANDROID_LINK_SPEC) + diff --git a/toolchain/gcc/patches-10.x/850-use_shared_libgcc.patch b/toolchain/gcc/patches-10.x/850-use_shared_libgcc.patch new file mode 100644 index 000000000..8b17f1374 --- /dev/null +++ b/toolchain/gcc/patches-10.x/850-use_shared_libgcc.patch @@ -0,0 +1,54 @@ +commit dcfc40358b5a3cae7320c17f8d1cebd5ad5540cd +Author: Felix Fietkau +Date: Sun Feb 12 20:25:47 2012 +0000 + + gcc 4.6: port over the missing patch 850-use_shared_libgcc.patch to prevent libgcc crap from leaking into every single binary + + SVN-Revision: 30486 +--- a/gcc/config/arm/linux-eabi.h ++++ b/gcc/config/arm/linux-eabi.h +@@ -132,10 +132,6 @@ + "%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s} " \ + LINUX_OR_ANDROID_LD (GNU_USER_TARGET_ENDFILE_SPEC, ANDROID_ENDFILE_SPEC) + +-/* Use the default LIBGCC_SPEC, not the version in linux-elf.h, as we +- do not use -lfloat. */ +-#undef LIBGCC_SPEC +- + /* Clear the instruction cache from `beg' to `end'. This is + implemented in lib1funcs.S, so ensure an error if this definition + is used. */ +--- a/gcc/config/linux.h ++++ b/gcc/config/linux.h +@@ -66,6 +66,10 @@ see the files COPYING3 and COPYING.RUNTI + builtin_version ("CRuntime_Musl"); \ + } while (0) + ++#ifndef LIBGCC_SPEC ++#define LIBGCC_SPEC "%{static|static-libgcc:-lgcc}%{!static:%{!static-libgcc:-lgcc_s}}" ++#endif ++ + /* Determine which dynamic linker to use depending on whether GLIBC or + uClibc or Bionic or musl is the default C library and whether + -muclibc or -mglibc or -mbionic or -mmusl has been passed to change +--- a/libgcc/mkmap-symver.awk ++++ b/libgcc/mkmap-symver.awk +@@ -136,5 +136,5 @@ function output(lib) { + else if (inherit[lib]) + printf("} %s;\n", inherit[lib]); + else +- printf ("\n local:\n\t*;\n};\n"); ++ printf ("\n\t*;\n};\n"); + } +--- a/gcc/config/rs6000/linux.h ++++ b/gcc/config/rs6000/linux.h +@@ -62,6 +62,9 @@ + #undef CPP_OS_DEFAULT_SPEC + #define CPP_OS_DEFAULT_SPEC "%(cpp_os_linux)" + ++#undef LIBGCC_SPEC ++#define LIBGCC_SPEC "%{!static:%{!static-libgcc:-lgcc_s}} -lgcc" ++ + #undef LINK_SHLIB_SPEC + #define LINK_SHLIB_SPEC "%{shared:-shared} %{!shared: %{static:-static}} \ + %{static-pie:-static -pie --no-dynamic-linker -z text}" diff --git a/toolchain/gcc/patches-10.x/851-libgcc_no_compat.patch b/toolchain/gcc/patches-10.x/851-libgcc_no_compat.patch new file mode 100644 index 000000000..d710e4071 --- /dev/null +++ b/toolchain/gcc/patches-10.x/851-libgcc_no_compat.patch @@ -0,0 +1,22 @@ +commit 64661de100da1ec1061ef3e5e400285dce115e6b +Author: Felix Fietkau +Date: Sun May 10 13:16:35 2015 +0000 + + gcc: add some size optimization patches + + Signed-off-by: Felix Fietkau + + SVN-Revision: 45664 + +--- a/libgcc/config/t-libunwind ++++ b/libgcc/config/t-libunwind +@@ -2,8 +2,7 @@ + + HOST_LIBGCC2_CFLAGS += -DUSE_GAS_SYMVER + +-LIB2ADDEH = $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c \ +- $(srcdir)/unwind-compat.c $(srcdir)/unwind-dw2-fde-compat.c ++LIB2ADDEH = $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c + LIB2ADDEHSTATIC = $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c + + # Override the default value from t-slibgcc-elf-ver and mention -lunwind diff --git a/toolchain/gcc/patches-10.x/870-ppc_no_crtsavres.patch b/toolchain/gcc/patches-10.x/870-ppc_no_crtsavres.patch new file mode 100644 index 000000000..bc182f0ce --- /dev/null +++ b/toolchain/gcc/patches-10.x/870-ppc_no_crtsavres.patch @@ -0,0 +1,11 @@ +--- a/gcc/config/rs6000/rs6000-logue.c ++++ b/gcc/config/rs6000/rs6000-logue.c +@@ -348,7 +348,7 @@ rs6000_savres_strategy (rs6000_stack_t * + /* Define cutoff for using out-of-line functions to save registers. */ + if (DEFAULT_ABI == ABI_V4 || TARGET_ELF) + { +- if (!optimize_size) ++ if (1) + { + strategy |= SAVE_INLINE_FPRS | REST_INLINE_FPRS; + strategy |= SAVE_INLINE_GPRS | REST_INLINE_GPRS; diff --git a/toolchain/gcc/patches-10.x/881-no_tm_section.patch b/toolchain/gcc/patches-10.x/881-no_tm_section.patch new file mode 100644 index 000000000..2029910fd --- /dev/null +++ b/toolchain/gcc/patches-10.x/881-no_tm_section.patch @@ -0,0 +1,11 @@ +--- a/libgcc/crtstuff.c ++++ b/libgcc/crtstuff.c +@@ -152,7 +152,7 @@ call_ ## FUNC (void) \ + #endif + + #if !defined(USE_TM_CLONE_REGISTRY) && defined(OBJECT_FORMAT_ELF) +-# define USE_TM_CLONE_REGISTRY 1 ++# define USE_TM_CLONE_REGISTRY 0 + #elif !defined(USE_TM_CLONE_REGISTRY) + # define USE_TM_CLONE_REGISTRY 0 + #endif diff --git a/toolchain/gcc/patches-10.x/900-bad-mips16-crt.patch b/toolchain/gcc/patches-10.x/900-bad-mips16-crt.patch new file mode 100644 index 000000000..dd6e9dc88 --- /dev/null +++ b/toolchain/gcc/patches-10.x/900-bad-mips16-crt.patch @@ -0,0 +1,9 @@ +--- a/libgcc/config/mips/t-mips16 ++++ b/libgcc/config/mips/t-mips16 +@@ -43,3 +43,6 @@ SYNC_CFLAGS = -mno-mips16 + + # Version these symbols if building libgcc.so. + SHLIB_MAPFILES += $(srcdir)/config/mips/libgcc-mips16.ver ++ ++CRTSTUFF_T_CFLAGS += -mno-mips16 ++CRTSTUFF_T_CFLAGS_S += -mno-mips16 diff --git a/toolchain/gcc/patches-10.x/910-mbsd_multi.patch b/toolchain/gcc/patches-10.x/910-mbsd_multi.patch new file mode 100644 index 000000000..3ed623831 --- /dev/null +++ b/toolchain/gcc/patches-10.x/910-mbsd_multi.patch @@ -0,0 +1,146 @@ +commit 99368862e44740ff4fd33760893f04e14f9dbdf1 +Author: Felix Fietkau +Date: Tue Jul 31 00:52:27 2007 +0000 + + Port the mbsd_multi patch from freewrt, which adds -fhonour-copts. This will emit warnings in packages that don't use our target cflags properly + + SVN-Revision: 8256 + + This patch brings over a feature from MirBSD: + * -fhonour-copts + If this option is not given, it's warned (depending + on environment variables). This is to catch errors + of misbuilt packages which override CFLAGS themselves. + + This patch was authored by Thorsten Glaser + with copyright assignment to the FSF in effect. + +--- a/gcc/c-family/c-opts.c ++++ b/gcc/c-family/c-opts.c +@@ -107,6 +107,9 @@ static dump_flags_t original_dump_flags; + /* Whether any standard preincluded header has been preincluded. */ + static bool done_preinclude; + ++/* Check if a port honours COPTS. */ ++static int honour_copts = 0; ++ + static void handle_OPT_d (const char *); + static void set_std_cxx98 (int); + static void set_std_cxx11 (int); +@@ -455,6 +458,12 @@ c_common_handle_option (size_t scode, co + flag_no_builtin = !value; + break; + ++ case OPT_fhonour_copts: ++ if (c_language == clk_c) { ++ honour_copts++; ++ } ++ break; ++ + case OPT_fconstant_string_class_: + constant_string_class_name = arg; + break; +@@ -1168,6 +1177,47 @@ c_common_init (void) + return false; + } + ++ if (c_language == clk_c) { ++ char *ev = getenv ("GCC_HONOUR_COPTS"); ++ int evv; ++ if (ev == NULL) ++ evv = -1; ++ else if ((*ev == '0') || (*ev == '\0')) ++ evv = 0; ++ else if (*ev == '1') ++ evv = 1; ++ else if (*ev == '2') ++ evv = 2; ++ else if (*ev == 's') ++ evv = -1; ++ else { ++ warning (0, "unknown GCC_HONOUR_COPTS value, assuming 1"); ++ evv = 1; /* maybe depend this on something like MIRBSD_NATIVE? */ ++ } ++ if (evv == 1) { ++ if (honour_copts == 0) { ++ error ("someone does not honour COPTS at all in lenient mode"); ++ return false; ++ } else if (honour_copts != 1) { ++ warning (0, "someone does not honour COPTS correctly, passed %d times", ++ honour_copts); ++ } ++ } else if (evv == 2) { ++ if (honour_copts == 0) { ++ error ("someone does not honour COPTS at all in strict mode"); ++ return false; ++ } else if (honour_copts != 1) { ++ error ("someone does not honour COPTS correctly, passed %d times", ++ honour_copts); ++ return false; ++ } ++ } else if (evv == 0) { ++ if (honour_copts != 1) ++ inform (UNKNOWN_LOCATION, "someone does not honour COPTS correctly, passed %d times", ++ honour_copts); ++ } ++ } ++ + return true; + } + +--- a/gcc/c-family/c.opt ++++ b/gcc/c-family/c.opt +@@ -1590,6 +1590,9 @@ C++ ObjC++ Optimization Alias(fexception + fhonor-std + C++ ObjC++ WarnRemoved + ++fhonour-copts ++C ObjC C++ ObjC++ RejectNegative ++ + fhosted + C ObjC + Assume normal C execution environment. +--- a/gcc/common.opt ++++ b/gcc/common.opt +@@ -1660,6 +1660,9 @@ fguess-branch-probability + Common Report Var(flag_guess_branch_prob) Optimization + Enable guessing of branch probabilities. + ++fhonour-copts ++Common RejectNegative ++ + ; Nonzero means ignore `#ident' directives. 0 means handle them. + ; Generate position-independent code for executables if possible + ; On SVR4 targets, it also controls whether or not to emit a +--- a/gcc/doc/invoke.texi ++++ b/gcc/doc/invoke.texi +@@ -8171,6 +8171,17 @@ This option is only supported for C and + @option{-Wall} and by @option{-Wpedantic}, which can be disabled with + @option{-Wno-pointer-sign}. + ++@item -fhonour-copts ++@opindex fhonour-copts ++If @env{GCC_HONOUR_COPTS} is set to 1, abort if this option is not ++given at least once, and warn if it is given more than once. ++If @env{GCC_HONOUR_COPTS} is set to 2, abort if this option is not ++given exactly once. ++If @env{GCC_HONOUR_COPTS} is set to 0 or unset, warn if this option ++is not given exactly once. ++The warning is quelled if @env{GCC_HONOUR_COPTS} is set to @samp{s}. ++This flag and environment variable only affect the C language. ++ + @item -Wstack-protector + @opindex Wstack-protector + @opindex Wno-stack-protector +--- a/gcc/opts.c ++++ b/gcc/opts.c +@@ -2318,6 +2318,9 @@ common_handle_option (struct gcc_options + /* Currently handled in a prescan. */ + break; + ++ case OPT_fhonour_copts: ++ break; ++ + case OPT_Werror: + dc->warning_as_error_requested = value; + break; diff --git a/toolchain/gcc/patches-10.x/920-specs_nonfatal_getenv.patch b/toolchain/gcc/patches-10.x/920-specs_nonfatal_getenv.patch new file mode 100644 index 000000000..487b9e47c --- /dev/null +++ b/toolchain/gcc/patches-10.x/920-specs_nonfatal_getenv.patch @@ -0,0 +1,22 @@ +Author: Jo-Philipp Wich +Date: Sat Apr 21 03:02:39 2012 +0000 + + gcc: add patch to make the getenv() spec function nonfatal if requested environment variable is unset + + SVN-Revision: 31390 + +--- a/gcc/gcc.c ++++ b/gcc/gcc.c +@@ -9396,8 +9396,10 @@ getenv_spec_function (int argc, const ch + } + + if (!value) +- fatal_error (input_location, +- "environment variable %qs not defined", varname); ++ { ++ warning (input_location, "environment variable %qs not defined", varname); ++ value = ""; ++ } + + /* We have to escape every character of the environment variable so + they are not interpreted as active spec characters. A diff --git a/toolchain/gcc/patches-10.x/930-fix-mips-noexecstack.patch b/toolchain/gcc/patches-10.x/930-fix-mips-noexecstack.patch new file mode 100644 index 000000000..e795acd1d --- /dev/null +++ b/toolchain/gcc/patches-10.x/930-fix-mips-noexecstack.patch @@ -0,0 +1,111 @@ +From da45b3fde60095756f5f6030f6012c23a3d34429 Mon Sep 17 00:00:00 2001 +From: Andrew McDonnell +Date: Fri, 3 Oct 2014 19:09:00 +0930 +Subject: Add .note.GNU-stack section + +See http://lists.busybox.net/pipermail/uclibc/2014-October/048671.html +Below copied from https://gcc.gnu.org/ml/gcc-patches/2014-09/msg02430.html + +Re: [Patch, MIPS] Add .note.GNU-stack section + + From: Steve Ellcey + +On Wed, 2014-09-10 at 10:15 -0700, Eric Christopher wrote: +> +> +> On Wed, Sep 10, 2014 at 9:27 AM, wrote: + +> This works except you did not update the assembly files in +> libgcc or glibc. We (Cavium) have the same patch in our tree +> for a few released versions. + +> Mind just checking yours in then Andrew? + +> Thanks! +> -eric + +I talked to Andrew about what files he changed in GCC and created and +tested this new patch. Andrew also mentioned changing some assembly +files in glibc but I don't see any use of '.section .note.GNU-stack' in +any assembly files in glibc (for any platform) so I wasn't planning on +creating a glibc to add them to mips glibc assembly language files. + +OK to check in this patch? + +Steve Ellcey +sellcey@mips.com + + + +2014-09-26 Steve Ellcey +--- + gcc/config/mips/mips.c | 3 +++ + libgcc/config/mips/crti.S | 4 ++++ + libgcc/config/mips/crtn.S | 3 +++ + libgcc/config/mips/mips16.S | 4 ++++ + libgcc/config/mips/vr4120-div.S | 4 ++++ + 5 files changed, 18 insertions(+) + +--- a/gcc/config/mips/mips.c ++++ b/gcc/config/mips/mips.c +@@ -22881,6 +22881,9 @@ mips_asm_file_end (void) + #define TARGET_ASM_FILE_END mips_asm_file_end + + ++#undef TARGET_ASM_FILE_END ++#define TARGET_ASM_FILE_END file_end_indicate_exec_stack ++ + struct gcc_target targetm = TARGET_INITIALIZER; + + #include "gt-mips.h" +--- a/libgcc/config/mips/crti.S ++++ b/libgcc/config/mips/crti.S +@@ -24,6 +24,10 @@ see the files COPYING3 and COPYING.RUNTI + /* An executable stack is *not* required for these functions. */ + #include "gnustack.h" + ++ ++/* An executable stack is *not* required for these functions. */ ++ .section .note.GNU-stack,"",%progbits ++ + /* 4 slots for argument spill area. 1 for cpreturn, 1 for stack. + Return spill offset of 40 and 20. Aligned to 16 bytes for n32. */ + +--- a/libgcc/config/mips/crtn.S ++++ b/libgcc/config/mips/crtn.S +@@ -24,6 +24,9 @@ see the files COPYING3 and COPYING.RUNTI + /* An executable stack is *not* required for these functions. */ + #include "gnustack.h" + ++/* An executable stack is *not* required for these functions. */ ++ .section .note.GNU-stack,"",%progbits ++ + /* 4 slots for argument spill area. 1 for cpreturn, 1 for stack. + Return spill offset of 40 and 20. Aligned to 16 bytes for n32. */ + +--- a/libgcc/config/mips/mips16.S ++++ b/libgcc/config/mips/mips16.S +@@ -51,6 +51,10 @@ see the files COPYING3 and COPYING.RUNTI + values using the soft-float calling convention, but do the actual + operation using the hard floating point instructions. */ + ++/* An executable stack is *not* required for these functions. */ ++ .section .note.GNU-stack,"",%progbits ++ .previous ++ + #if defined _MIPS_SIM && (_MIPS_SIM == _ABIO32 || _MIPS_SIM == _ABIO64) + + /* This file contains 32-bit assembly code. */ +--- a/libgcc/config/mips/vr4120-div.S ++++ b/libgcc/config/mips/vr4120-div.S +@@ -29,6 +29,10 @@ see the files COPYING3 and COPYING.RUNTI + -mfix-vr4120. div and ddiv do not give the correct result when one + of the operands is negative. */ + ++/* An executable stack is *not* required for these functions. */ ++ .section .note.GNU-stack,"",%progbits ++ .previous ++ + .set nomips16 + + #define DIV \ diff --git a/toolchain/gcc/patches-10.x/931-libffi-fix-MIPS-softfloat-build-issue.patch b/toolchain/gcc/patches-10.x/931-libffi-fix-MIPS-softfloat-build-issue.patch new file mode 100644 index 000000000..fb4cb1533 --- /dev/null +++ b/toolchain/gcc/patches-10.x/931-libffi-fix-MIPS-softfloat-build-issue.patch @@ -0,0 +1,168 @@ +From c0c62fa4256f805389f16ebfc4a60cf789129b50 Mon Sep 17 00:00:00 2001 +From: BangLang Huang +Date: Wed, 9 Nov 2016 10:36:49 +0800 +Subject: [PATCH] libffi: fix MIPS softfloat build issue + +Backported from github.com/libffi/libffi#272 + +Signed-off-by: BangLang Huang +Signed-off-by: Yousong Zhou +--- + libffi/src/mips/n32.S | 17 +++++++++++++++++ + libffi/src/mips/o32.S | 17 +++++++++++++++++ + 2 files changed, 34 insertions(+) + +--- a/libffi/src/mips/n32.S ++++ b/libffi/src/mips/n32.S +@@ -107,6 +107,16 @@ loadregs: + + REG_L t6, 3*FFI_SIZEOF_ARG($fp) # load the flags word into t6. + ++#ifdef __mips_soft_float ++ REG_L a0, 0*FFI_SIZEOF_ARG(t9) ++ REG_L a1, 1*FFI_SIZEOF_ARG(t9) ++ REG_L a2, 2*FFI_SIZEOF_ARG(t9) ++ REG_L a3, 3*FFI_SIZEOF_ARG(t9) ++ REG_L a4, 4*FFI_SIZEOF_ARG(t9) ++ REG_L a5, 5*FFI_SIZEOF_ARG(t9) ++ REG_L a6, 6*FFI_SIZEOF_ARG(t9) ++ REG_L a7, 7*FFI_SIZEOF_ARG(t9) ++#else + and t4, t6, ((1< +Date: Fri, 4 May 2018 18:20:53 +0800 +Subject: [PATCH] gotools: fix compilation when making cross compiler + +libgo is "the runtime support library for the Go programming language. +This library is intended for use with the Go frontend." + +gccgo will link target files with libgo.so which depends on libgcc_s.so.1, but +the linker will complain that it cannot find it. That's because shared libgcc +is not present in the install directory yet. libgo.so was made without problem +because gcc will emit -lgcc_s when compiled with -shared option. When gotools +were being made, it was supplied with -static-libgcc thus no link option was +provided. Check LIBGO in gcc/go/gcc-spec.c for how gccgo make a builtin spec +for linking with libgo.so + +- GccgoCrossCompilation, https://github.com/golang/go/wiki/GccgoCrossCompilation +- Cross-building instructions, http://www.eglibc.org/archives/patches/msg00078.html + +When 3-pass GCC compilation is used, shared libgcc runtime libraries will be +available after gcc pass2 completed and will meet the gotools link requirement +at gcc pass3 +--- + gotools/Makefile.am | 4 +++- + gotools/Makefile.in | 4 +++- + 2 files changed, 6 insertions(+), 2 deletions(-) + +--- a/gotools/Makefile.am ++++ b/gotools/Makefile.am +@@ -26,6 +26,7 @@ PWD_COMMAND = $${PWDCMD-pwd} + STAMP = echo timestamp > + + libgodir = ../$(target_noncanonical)/libgo ++libgccdir = ../$(target_noncanonical)/libgcc + LIBGODEP = $(libgodir)/libgo.la + + LIBGOTOOL = $(libgodir)/libgotool.a +@@ -41,7 +42,8 @@ GOCFLAGS = $(CFLAGS_FOR_TARGET) + GOCOMPILE = $(GOCOMPILER) $(GOCFLAGS) + + AM_GOCFLAGS = -I $(libgodir) +-AM_LDFLAGS = -L $(libgodir) -L $(libgodir)/.libs ++AM_LDFLAGS = -L $(libgodir) -L $(libgodir)/.libs \ ++ -L $(libgccdir) -L $(libgccdir)/.libs -lgcc_s + GOLINK = $(GOCOMPILER) $(GOCFLAGS) $(AM_GOCFLAGS) $(LDFLAGS) $(AM_LDFLAGS) -o $@ + + libgosrcdir = $(srcdir)/../libgo/go +--- a/gotools/Makefile.in ++++ b/gotools/Makefile.in +@@ -337,6 +337,7 @@ mkinstalldirs = $(SHELL) $(toplevel_srcd + PWD_COMMAND = $${PWDCMD-pwd} + STAMP = echo timestamp > + libgodir = ../$(target_noncanonical)/libgo ++libgccdir = ../$(target_noncanonical)/libgcc + LIBGODEP = $(libgodir)/libgo.la + LIBGOTOOL = $(libgodir)/libgotool.a + @NATIVE_FALSE@GOCOMPILER = $(GOC) +@@ -346,7 +347,8 @@ LIBGOTOOL = $(libgodir)/libgotool.a + GOCFLAGS = $(CFLAGS_FOR_TARGET) + GOCOMPILE = $(GOCOMPILER) $(GOCFLAGS) + AM_GOCFLAGS = -I $(libgodir) +-AM_LDFLAGS = -L $(libgodir) -L $(libgodir)/.libs ++AM_LDFLAGS = -L $(libgodir) -L $(libgodir)/.libs \ ++ -L $(libgccdir) -L $(libgccdir)/.libs -lgcc_s + GOLINK = $(GOCOMPILER) $(GOCFLAGS) $(AM_GOCFLAGS) $(LDFLAGS) $(AM_LDFLAGS) -o $@ + libgosrcdir = $(srcdir)/../libgo/go + cmdsrcdir = $(libgosrcdir)/cmd diff --git a/toolchain/gcc/patches-11.x/400-libsanitizer-cherry-pick-9cf13067cb5088626ba7-from-u.patch b/toolchain/gcc/patches-11.x/400-libsanitizer-cherry-pick-9cf13067cb5088626ba7-from-u.patch deleted file mode 100644 index 39869b474..000000000 --- a/toolchain/gcc/patches-11.x/400-libsanitizer-cherry-pick-9cf13067cb5088626ba7-from-u.patch +++ /dev/null @@ -1,39 +0,0 @@ -From d2356ebb0084a0d80dbfe33040c9afe938c15d19 Mon Sep 17 00:00:00 2001 -From: Martin Liska -Date: Mon, 11 Jul 2022 22:03:14 +0200 -Subject: [PATCH] libsanitizer: cherry-pick 9cf13067cb5088626ba7 from upstream - -9cf13067cb5088626ba7ee1ec4c42ec59c7995a0 [sanitizer] Remove #include to resolve fsconfig_command/mount_attr conflict with glibc 2.36 - -(cherry picked from commit 2701442d0cf6292f6624443c15813d6d1a3562fe) ---- - .../sanitizer_platform_limits_posix.cpp | 10 ++++++---- - 1 file changed, 6 insertions(+), 4 deletions(-) - ---- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp -+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp -@@ -72,7 +72,9 @@ - #include - #include - #include -+#if SANITIZER_ANDROID - #include -+#endif - #include - #include - #include -@@ -828,10 +830,10 @@ unsigned struct_ElfW_Phdr_sz = sizeof(El - unsigned IOCTL_EVIOCGPROP = IOCTL_NOT_PRESENT; - unsigned IOCTL_EVIOCSKEYCODE_V2 = IOCTL_NOT_PRESENT; - #endif -- unsigned IOCTL_FS_IOC_GETFLAGS = FS_IOC_GETFLAGS; -- unsigned IOCTL_FS_IOC_GETVERSION = FS_IOC_GETVERSION; -- unsigned IOCTL_FS_IOC_SETFLAGS = FS_IOC_SETFLAGS; -- unsigned IOCTL_FS_IOC_SETVERSION = FS_IOC_SETVERSION; -+ unsigned IOCTL_FS_IOC_GETFLAGS = _IOR('f', 1, long); -+ unsigned IOCTL_FS_IOC_GETVERSION = _IOR('v', 1, long); -+ unsigned IOCTL_FS_IOC_SETFLAGS = _IOW('f', 2, long); -+ unsigned IOCTL_FS_IOC_SETVERSION = _IOW('v', 2, long); - unsigned IOCTL_GIO_CMAP = GIO_CMAP; - unsigned IOCTL_GIO_FONT = GIO_FONT; - unsigned IOCTL_GIO_UNIMAP = GIO_UNIMAP; diff --git a/toolchain/glibc/common.mk b/toolchain/glibc/common.mk index 314144eea..5acb13b5d 100644 --- a/toolchain/glibc/common.mk +++ b/toolchain/glibc/common.mk @@ -7,13 +7,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=glibc -PKG_VERSION:=2.36 +PKG_VERSION:=2.35 PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) -PKG_SOURCE_VERSION:=3aae843e9e9e6a2502e98ff44d2671b20a023f8e -PKG_MIRROR_HASH:=29bdd6ca699f297de500ea457741d0706d57a69836fa7d45e6cc2cc20484cad4 +PKG_SOURCE_VERSION:=813a8d01716d4e099ec57194a93b14fa08b4beca +PKG_MIRROR_HASH:=8c8d92dde334f0e0f9a0949d25b2950db513ce8723c31ae0b0ef64730a00322f PKG_SOURCE_URL:=https://sourceware.org/git/glibc.git PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz diff --git a/toolchain/glibc/patches/050-Revert-Disallow-use-of-DES-encryption-functions-in-n.patch b/toolchain/glibc/patches/050-Revert-Disallow-use-of-DES-encryption-functions-in-n.patch index c9db70393..7dfc8a558 100644 --- a/toolchain/glibc/patches/050-Revert-Disallow-use-of-DES-encryption-functions-in-n.patch +++ b/toolchain/glibc/patches/050-Revert-Disallow-use-of-DES-encryption-functions-in-n.patch @@ -82,7 +82,7 @@ provides them. int totfails = 0; int main (int argc, char *argv[]); -@@ -119,13 +103,3 @@ put8 (char *cp) +@@ -120,13 +104,3 @@ put8 (char *cp) printf("%02x", t); } } @@ -627,7 +627,7 @@ provides them. range [FROM - N + 1, FROM - 1]. If N is odd the first byte in FROM --- a/stdlib/stdlib.h +++ b/stdlib/stdlib.h -@@ -984,6 +984,12 @@ extern int getsubopt (char **__restrict +@@ -971,6 +971,12 @@ extern int getsubopt (char **__restrict #endif diff --git a/toolchain/glibc/patches/200-add-dl-search-paths.patch b/toolchain/glibc/patches/200-add-dl-search-paths.patch index e927d86f2..fd4af3694 100644 --- a/toolchain/glibc/patches/200-add-dl-search-paths.patch +++ b/toolchain/glibc/patches/200-add-dl-search-paths.patch @@ -2,7 +2,7 @@ add /usr/lib to default search path for the dynamic linker --- a/Makeconfig +++ b/Makeconfig -@@ -631,6 +631,9 @@ else +@@ -618,6 +618,9 @@ else default-rpath = $(libdir) endif diff --git a/tools/Makefile b/tools/Makefile index c7c7d0075..5ba15c641 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -21,44 +21,11 @@ ifneq ($(CONFIG_SDK)$(CONFIG_PACKAGE_kmod-b43)$(CONFIG_BRCMSMAC_USE_FW_FROM_WL), BUILD_B43_TOOLS = y endif -tools-y += autoconf -tools-y += autoconf-archive -tools-y += automake -tools-y += bc -tools-y += bison -tools-y += cmake -tools-y += cpio -tools-y += dosfstools -tools-y += e2fsprogs -tools-y += expat -tools-y += fakeroot -tools-y += findutils -tools-y += firmware-utils -tools-y += flex -tools-y += gengetopt -tools-y += libdeflate -tools-y += libressl -tools-y += libtool -tools-y += lzma -tools-y += m4 -tools-y += make-ext4fs -tools-y += meson -tools-y += missing-macros -tools-y += mkimage -tools-y += mklibs -tools-y += mtd-utils -tools-y += mtools -tools-y += ninja -tools-y += padjffs2 -tools-y += patch-image -tools-y += patchelf -tools-y += pkgconf -tools-y += quilt -tools-y += squashfskit4 -tools-y += sstrip -tools-y += zip -tools-y += zlib -tools-y += zstd +tools-y += autoconf autoconf-archive automake bc bison cmake cpio dosfstools +tools-y += e2fsprogs expat fakeroot findutils firmware-utils flex gengetopt +tools-y += libressl libtool lzma m4 make-ext4fs meson missing-macros mkimage +tools-y += mklibs mtd-utils mtools ninja padjffs2 patch-image +tools-y += patchelf pkgconf quilt squashfskit4 sstrip zip zlib zstd tools-$(if $(CONFIG_BUILD_ALL_HOST_TOOLS)$(BUILD_B43_TOOLS),y) += b43-tools tools-$(if $(CONFIG_BUILD_ALL_HOST_TOOLS)$(BUILD_ISL),y) += isl tools-$(if $(CONFIG_BUILD_ALL_HOST_TOOLS)$(BUILD_TOOLCHAIN),y) += gmp mpc mpfr @@ -89,7 +56,6 @@ $(curdir)/genext2fs/compile := $(curdir)/libtool/compile $(curdir)/gengetopt/compile := $(curdir)/libtool/compile $(curdir)/gmp/compile := $(curdir)/libtool/compile $(curdir)/isl/compile := $(curdir)/gmp/compile -$(curdir)/libdeflate/compile := $(curdir)/cmake/compile $(curdir)/libressl/compile := $(curdir)/pkgconf/compile $(curdir)/libtool/compile := $(curdir)/automake/compile $(curdir)/missing-macros/compile $(curdir)/lzma-old/compile := $(curdir)/zlib/compile diff --git a/tools/libdeflate/Makefile b/tools/libdeflate/Makefile deleted file mode 100644 index d30a8ca67..000000000 --- a/tools/libdeflate/Makefile +++ /dev/null @@ -1,31 +0,0 @@ -# -# Copyright (C) 2022 OpenWrt.org -# -# This is free software, licensed under the GNU General Public License v2. -# See /LICENSE for more information. - -include $(TOPDIR)/rules.mk - -PKG_NAME:=libdeflate -PKG_VERSION:=1.15 -PKG_RELEASE:=1 - -PKG_SOURCE_URL:=https://github.com/ebiggers/libdeflate.git -PKG_SOURCE_PROTO:=git -PKG_SOURCE_VERSION:=v$(PKG_VERSION) -PKG_MIRROR_HASH:=122feff4543541b547dc89e832adf262c81911ae1acbccdc591f0353a85b600a - -include $(INCLUDE_DIR)/host-build.mk -include $(INCLUDE_DIR)/cmake.mk - -define Host/Install - $(INSTALL_BIN) $(HOST_BUILD_DIR)/programs/libdeflate-gzip $(STAGING_DIR_HOST)/bin/ - $(LN) libdeflate-gzip $(STAGING_DIR_HOST)/bin/libdeflate-gunzip -endef - -define Host/Clean - rm -f $(STAGING_DIR_HOST)/bin/libdeflate-gzip - rm -f $(STAGING_DIR_HOST)/bin/libdeflate-gunzip -endef - -$(eval $(call HostBuild))