diff --git a/.github/workflows/Dockerfile.tools b/.github/workflows/Dockerfile.tools index a3804750445..df5892618a7 100644 --- a/.github/workflows/Dockerfile.tools +++ b/.github/workflows/Dockerfile.tools @@ -1,4 +1,4 @@ -FROM registry.gitlab.com/openwrt/buildbot/buildworker-3.4.1 +FROM ghcr.io/openwrt/buildbot/buildworker-v3.8.0:v2 COPY --chown=buildbot staging_dir/host /prebuilt_tools/staging_dir/host COPY --chown=buildbot build_dir/host /prebuilt_tools/build_dir/host diff --git a/.github/workflows/build-tools.yml b/.github/workflows/build-tools.yml index 1507b0b056b..9b865f2608f 100644 --- a/.github/workflows/build-tools.yml +++ b/.github/workflows/build-tools.yml @@ -13,7 +13,7 @@ jobs: build: name: Build tools runs-on: ubuntu-latest - container: registry.gitlab.com/openwrt/buildbot/buildworker-3.4.1 + container: ghcr.io/openwrt/buildbot/buildworker-v3.8.0:v2 steps: - name: Checkout diff --git a/package/devel/strace/Makefile b/package/devel/strace/Makefile index ce9122cc8a3..9400608cddf 100644 --- a/package/devel/strace/Makefile +++ b/package/devel/strace/Makefile @@ -9,12 +9,12 @@ include $(TOPDIR)/rules.mk include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=strace -PKG_VERSION:=6.2 +PKG_VERSION:=6.3 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=https://strace.io/files/$(PKG_VERSION) -PKG_HASH:=0c7d38a449416268d3004029a220a15a77c2206a03cc88120f37f46e949177e8 +PKG_HASH:=e17878e301506c1cc301611118ad14efee7f8bcef63b27ace5d290acce7bb731 PKG_MAINTAINER:=Felix Fietkau PKG_LICENSE:=LGPL-2.1-or-later diff --git a/package/firmware/linux-firmware/Makefile b/package/firmware/linux-firmware/Makefile index 3ef4536724f..bed11fdbe1f 100644 --- a/package/firmware/linux-firmware/Makefile +++ b/package/firmware/linux-firmware/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=linux-firmware -PKG_VERSION:=20230310 +PKG_VERSION:=20230515 PKG_RELEASE:=1 PKG_SOURCE_URL:=@KERNEL/linux/kernel/firmware PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz -PKG_HASH:=5968d4e5178ca1ecad3c41c36bba4602c288f25c7a48eeaa74113537578199b2 +PKG_HASH:=8b1acfa16f1ee94732a6acb50d9d6c835cf53af11068bd89ed207bbe04a1e951 PKG_MAINTAINER:=Felix Fietkau diff --git a/package/firmware/linux-firmware/mediatek.mk b/package/firmware/linux-firmware/mediatek.mk index c18058dd64e..a0eccb8f4d5 100644 --- a/package/firmware/linux-firmware/mediatek.mk +++ b/package/firmware/linux-firmware/mediatek.mk @@ -1,9 +1,9 @@ Package/mt7601u-firmware = $(call Package/firmware-default,MediaTek MT7601U firmware) define Package/mt7601u-firmware/install - $(INSTALL_DIR) $(1)/lib/firmware + $(INSTALL_DIR) $(1)/lib/firmware/mediatek $(INSTALL_DATA) \ - $(PKG_BUILD_DIR)/mt7601u.bin \ - $(1)/lib/firmware + $(PKG_BUILD_DIR)/mediatek/mt7601u.bin \ + $(1)/lib/firmware/mediatek endef $(eval $(call BuildPackage,mt7601u-firmware)) @@ -69,6 +69,15 @@ define Package/mt7922bt-firmware/install endef $(eval $(call BuildPackage,mt7922bt-firmware)) +Package/mt7981-wo-firmware = $(call Package/firmware-default,MT7981 offload firmware) +define Package/mt7981-wo-firmware/install + $(INSTALL_DIR) $(1)/lib/firmware/mediatek + $(INSTALL_DATA) \ + $(PKG_BUILD_DIR)/mediatek/mt7981_wo.bin \ + $(1)/lib/firmware/mediatek +endef +$(eval $(call BuildPackage,mt7981-wo-firmware)) + Package/mt7986-wo-firmware = $(call Package/firmware-default,MT7986 offload firmware) define Package/mt7986-wo-firmware/install $(INSTALL_DIR) $(1)/lib/firmware/mediatek diff --git a/package/kernel/lantiq/ltq-ptm/src/ifxmips_ptm_vdsl.c b/package/kernel/lantiq/ltq-ptm/src/ifxmips_ptm_vdsl.c index d751680853a..1007e74cec4 100644 --- a/package/kernel/lantiq/ltq-ptm/src/ifxmips_ptm_vdsl.c +++ b/package/kernel/lantiq/ltq-ptm/src/ifxmips_ptm_vdsl.c @@ -557,7 +557,6 @@ static inline int get_tx_desc(unsigned int itf, unsigned int *f_full) static irqreturn_t mailbox_irq_handler(int irq, void *dev_id) { unsigned int isr; - int i; isr = IFX_REG_R32(MBOX_IGU1_ISR); IFX_REG_W32(isr, MBOX_IGU1_ISRC); diff --git a/package/libs/gettext-full/Makefile b/package/libs/gettext-full/Makefile index c8700de550a..1ed0e82df05 100644 --- a/package/libs/gettext-full/Makefile +++ b/package/libs/gettext-full/Makefile @@ -22,10 +22,10 @@ PKG_LICENSE:=GPL-3.0-or-later PKG_CPE_ID:=cpe:/a:gnu:gettext PKG_INSTALL:=1 -PKG_BUILD_DEPENDS:=gettext-full/host libxml2 +PKG_BUILD_DEPENDS:=gettext-full/host libunistring libxml2 PKG_BUILD_PARALLEL:=0 -HOST_BUILD_DEPENDS:=gperf/host libxml2/host +HOST_BUILD_DEPENDS:=gperf/host libunistring/host libxml2/host HOST_BUILD_PARALLEL:=0 PKG_SUBDIRS:= \ @@ -87,6 +87,7 @@ CONFIGURE_ARGS += \ --with-included-gettext \ --without-libintl-prefix \ --without-libexpat-prefix \ + --with-libunistring-prefix=$(STAGING_DIR)/usr \ --with-libxml2-prefix=$(STAGING_DIR) \ --without-emacs @@ -98,6 +99,7 @@ HOST_CONFIGURE_ARGS += \ --disable-java \ --disable-openmp \ --without-emacs \ + --with-libunistring-prefix=$(STAGING_DIR_HOSTPKG) \ --with-libxml2-prefix=$(STAGING_DIR_HOSTPKG) HOST_CONFIGURE_VARS += \ diff --git a/package/libs/gettext-full/patches/200-libunistring-missing-link.patch b/package/libs/gettext-full/patches/200-libunistring-missing-link.patch new file mode 100644 index 00000000000..2e1dbf84e87 --- /dev/null +++ b/package/libs/gettext-full/patches/200-libunistring-missing-link.patch @@ -0,0 +1,21 @@ +--- a/autogen.sh ++++ b/autogen.sh +@@ -78,6 +78,7 @@ if ! $skip_gnulib; then + getopt-gnu + gettext-h + havelib ++ libunistring-optional + memmove + noreturn + progname +--- a/gettext-runtime/src/Makefile.am ++++ b/gettext-runtime/src/Makefile.am +@@ -40,7 +40,7 @@ envsubst_SOURCES = envsubst.c + + # Link dependencies. + # Need @LTLIBICONV@ because striconv.c uses iconv(). +-LDADD = ../gnulib-lib/libgrt.a @LTLIBINTL@ @LTLIBICONV@ $(WOE32_LDADD) ++LDADD = ../gnulib-lib/libgrt.a $(LTLIBUNISTRING) @LTLIBINTL@ @LTLIBICONV@ $(WOE32_LDADD) + + # Specify installation directory, for --enable-relocatable. + gettext_CFLAGS = -DINSTALLDIR=\"$(bindir)\" diff --git a/package/libs/libselinux/Makefile b/package/libs/libselinux/Makefile index 7246d855668..a7942704504 100644 --- a/package/libs/libselinux/Makefile +++ b/package/libs/libselinux/Makefile @@ -115,6 +115,7 @@ HOST_MAKE_FLAGS += \ ifeq ($(CONFIG_USE_MUSL),y) MAKE_FLAGS += FTS_LDLIBS=-lfts +TARGET_CFLAGS += -D_LARGEFILE64_SOURCE endif MAKE_FLAGS += \ diff --git a/package/libs/libunistring/Makefile b/package/libs/libunistring/Makefile new file mode 100644 index 00000000000..9b41cc3ce38 --- /dev/null +++ b/package/libs/libunistring/Makefile @@ -0,0 +1,64 @@ +include $(TOPDIR)/rules.mk + +PKG_NAME:=libunistring +PKG_VERSION:=1.1 +PKG_RELEASE:=1 + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz +PKG_SOURCE_URL:=@GNU/$(PKG_NAME) +PKG_HASH:=827c1eb9cb6e7c738b171745dac0888aa58c5924df2e59239318383de0729b98 + +PKG_BUILD_PARALLEL:=1 +PKG_INSTALL:=1 + +PKG_LICENSE:=GPL-3.0 +PKG_LICENSE_FILES:=COPYING +PKG_CPE_ID:=cpe:/a:gnu:$(PKG_NAME) + +include $(INCLUDE_DIR)/host-build.mk +include $(INCLUDE_DIR)/package.mk + +define Package/libunistring + SECTION:=libs + CATEGORY:=Libraries + TITLE:=libunistring + URL:=https://www.gnu.org/software/libunistring +endef + +define Package/libunistring/description + This library provides functions for manipulating Unicode strings + and for manipulating C strings according to the Unicode standard. +endef + +HOST_CFLAGS += $(HOST_FPIC) + +TARGET_CFLAGS += $(FPIC) + +HOST_CONFIGURE_ARGS += \ + --enable-static \ + --disable-shared \ + --without-libiconv-prefix \ + --with-pic + +CONFIGURE_ARGS += \ + --enable-static \ + --enable-shared \ + --without-libiconv-prefix \ + --with-pic + +define Build/InstallDev + $(INSTALL_DIR) $(1)/usr/include + $(CP) $(PKG_INSTALL_DIR)/usr/include/*.h $(1)/usr/include/ + $(INSTALL_DIR) $(1)/usr/include/unistring + $(CP) $(PKG_INSTALL_DIR)/usr/include/unistring/*.h $(1)/usr/include/unistring/ + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libunistring.{a,so*} $(1)/usr/lib/ +endef + +define Package/libunistring/install + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libunistring.so.* $(1)/usr/lib/ +endef + +$(eval $(call HostBuild)) +$(eval $(call BuildPackage,libunistring)) diff --git a/package/network/utils/ethtool/Makefile b/package/network/utils/ethtool/Makefile index b18320bf05d..10fecd4a9c5 100644 --- a/package/network/utils/ethtool/Makefile +++ b/package/network/utils/ethtool/Makefile @@ -8,13 +8,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=ethtool -PKG_VERSION:=6.2 +PKG_VERSION:=6.3 PKG_RELEASE:=1 PKG_MAINTAINER:=Felix Fietkau PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=@KERNEL/software/network/ethtool -PKG_HASH:=86df0114064d4d73f6bf72bf03e85c33964a519ee0c1d1ba65005ad2d0e570e1 +PKG_HASH:=d9425f0a3df138734001fccc4175fe178c025f938460ac25c4ebc39960168822 PKG_LICENSE:=GPL-2.0 PKG_LICENSE_FILES:=COPYING diff --git a/target/linux/ath79/image/common-mikrotik.mk b/target/linux/ath79/image/common-mikrotik.mk index ce349b60b1d..b37c8b71970 100644 --- a/target/linux/ath79/image/common-mikrotik.mk +++ b/target/linux/ath79/image/common-mikrotik.mk @@ -18,4 +18,8 @@ endef define Device/mikrotik_nand $(Device/mikrotik) IMAGE/sysupgrade.bin = append-kernel | sysupgrade-tar | append-metadata + DEVICE_COMPAT_MESSAGE := \ + NAND images switched to yafut. If running older image, reinstall from initramfs. + DEVICE_COMPAT_VERSION := 1.1 + endef diff --git a/target/linux/generic/backport-5.15/733-v6.4-21-net-mtk_eth_soc-use-WO-firmware-for-MT7981.patch b/target/linux/generic/backport-5.15/733-v6.4-21-net-mtk_eth_soc-use-WO-firmware-for-MT7981.patch new file mode 100644 index 00000000000..9ce2735951c --- /dev/null +++ b/target/linux/generic/backport-5.15/733-v6.4-21-net-mtk_eth_soc-use-WO-firmware-for-MT7981.patch @@ -0,0 +1,46 @@ +From f5af7931d2a2cae66d0f9dad4ba517b1b00620b3 Mon Sep 17 00:00:00 2001 +From: Daniel Golle +Date: Wed, 19 Apr 2023 19:07:23 +0100 +Subject: [PATCH] net: mtk_eth_soc: use WO firmware for MT7981 + +In order to support wireless offloading on MT7981 we need to load the +appropriate firmware. Recognize MT7981 and load mt7981_wo.bin. + +Signed-off-by: Daniel Golle +--- + drivers/net/ethernet/mediatek/mtk_wed_mcu.c | 7 ++++++- + drivers/net/ethernet/mediatek/mtk_wed_wo.h | 1 + + 2 files changed, 7 insertions(+), 1 deletion(-) + +--- a/drivers/net/ethernet/mediatek/mtk_wed_mcu.c ++++ b/drivers/net/ethernet/mediatek/mtk_wed_mcu.c +@@ -326,7 +326,11 @@ mtk_wed_mcu_load_firmware(struct mtk_wed + wo->hw->index + 1); + + /* load firmware */ +- fw_name = wo->hw->index ? MT7986_FIRMWARE_WO1 : MT7986_FIRMWARE_WO0; ++ if (of_device_is_compatible(wo->hw->node, "mediatek,mt7981-wed")) ++ fw_name = MT7981_FIRMWARE_WO; ++ else ++ fw_name = wo->hw->index ? MT7986_FIRMWARE_WO1 : MT7986_FIRMWARE_WO0; ++ + ret = request_firmware(&fw, fw_name, wo->hw->dev); + if (ret) + return ret; +@@ -386,5 +390,6 @@ int mtk_wed_mcu_init(struct mtk_wed_wo * + 100, MTK_FW_DL_TIMEOUT); + } + ++MODULE_FIRMWARE(MT7981_FIRMWARE_WO); + MODULE_FIRMWARE(MT7986_FIRMWARE_WO0); + MODULE_FIRMWARE(MT7986_FIRMWARE_WO1); +--- a/drivers/net/ethernet/mediatek/mtk_wed_wo.h ++++ b/drivers/net/ethernet/mediatek/mtk_wed_wo.h +@@ -88,6 +88,7 @@ enum mtk_wed_dummy_cr_idx { + MTK_WED_DUMMY_CR_WO_STATUS, + }; + ++#define MT7981_FIRMWARE_WO "mediatek/mt7981_wo.bin" + #define MT7986_FIRMWARE_WO0 "mediatek/mt7986_wo_0.bin" + #define MT7986_FIRMWARE_WO1 "mediatek/mt7986_wo_1.bin" + diff --git a/target/linux/generic/backport-5.15/733-v6.4-22-net-ethernet-mtk_eth_soc-fix-NULL-pointer-dereferenc.patch b/target/linux/generic/backport-5.15/733-v6.4-22-net-ethernet-mtk_eth_soc-fix-NULL-pointer-dereferenc.patch new file mode 100644 index 00000000000..d715c4aa686 --- /dev/null +++ b/target/linux/generic/backport-5.15/733-v6.4-22-net-ethernet-mtk_eth_soc-fix-NULL-pointer-dereferenc.patch @@ -0,0 +1,28 @@ +From 7c83e28f10830aa5105c25eaabe890e3adac36aa Mon Sep 17 00:00:00 2001 +From: Daniel Golle +Date: Tue, 9 May 2023 03:20:06 +0200 +Subject: [PATCH] net: ethernet: mtk_eth_soc: fix NULL pointer dereference + +Check for NULL pointer to avoid kernel crashing in case of missing WO +firmware in case only a single WEDv2 device has been initialized, e.g. on +MT7981 which can connect just one wireless frontend. + +Fixes: 86ce0d09e424 ("net: ethernet: mtk_eth_soc: use WO firmware for MT7981") +Signed-off-by: Daniel Golle +Reviewed-by: Simon Horman +Signed-off-by: David S. Miller +--- + drivers/net/ethernet/mediatek/mtk_wed.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/net/ethernet/mediatek/mtk_wed.c ++++ b/drivers/net/ethernet/mediatek/mtk_wed.c +@@ -647,7 +647,7 @@ __mtk_wed_detach(struct mtk_wed_device * + BIT(hw->index), BIT(hw->index)); + } + +- if (!hw_list[!hw->index]->wed_dev && ++ if ((!hw_list[!hw->index] || !hw_list[!hw->index]->wed_dev) && + hw->eth->dma_dev != hw->eth->dev) + mtk_eth_set_dma_device(hw->eth, hw->eth->dev); + diff --git a/target/linux/mediatek/patches-5.15/942-net-ethernet-mtk_wed-move-cpuboot-in-a-dedicated-dts.patch b/target/linux/mediatek/patches-5.15/942-net-ethernet-mtk_wed-move-cpuboot-in-a-dedicated-dts.patch index 3de1b27622d..9de4ffa433e 100644 --- a/target/linux/mediatek/patches-5.15/942-net-ethernet-mtk_wed-move-cpuboot-in-a-dedicated-dts.patch +++ b/target/linux/mediatek/patches-5.15/942-net-ethernet-mtk_wed-move-cpuboot-in-a-dedicated-dts.patch @@ -77,7 +77,7 @@ Signed-off-by: Lorenzo Bianconi wed_w32(wo->hw->wed_dev, MTK_WED_SCR0 + 4 * MTK_WED_DUMMY_CR_FWDL, --- a/drivers/net/ethernet/mediatek/mtk_wed_wo.h +++ b/drivers/net/ethernet/mediatek/mtk_wed_wo.h -@@ -227,7 +227,8 @@ struct mtk_wed_wo_queue { +@@ -228,7 +228,8 @@ struct mtk_wed_wo_queue { struct mtk_wed_wo { struct mtk_wed_hw *hw; diff --git a/toolchain/musl/common.mk b/toolchain/musl/common.mk index 040127c3bcc..0901fe7d6f4 100644 --- a/toolchain/musl/common.mk +++ b/toolchain/musl/common.mk @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk include $(INCLUDE_DIR)/target.mk PKG_NAME:=musl -PKG_VERSION:=1.2.3 +PKG_VERSION:=1.2.4 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://musl.libc.org/releases/ -PKG_HASH:=7d5b0b6062521e4627e099e4c9dc8248d32a30285e959b7eecaa780cf8cfd4a4 +PKG_HASH:=7a35eae33d5372a7c0da1188de798726f68825513b7ae3ebe97aaaa52114f039 LIBC_SO_VERSION:=$(PKG_VERSION) PATCH_DIR:=$(PATH_PREFIX)/patches diff --git a/toolchain/musl/patches/600-nftw-support-common-gnu-extension.patch b/toolchain/musl/patches/600-nftw-support-common-gnu-extension.patch index 2a7436cf848..7a1ab3f99a3 100644 --- a/toolchain/musl/patches/600-nftw-support-common-gnu-extension.patch +++ b/toolchain/musl/patches/600-nftw-support-common-gnu-extension.patch @@ -33,7 +33,7 @@ Signed-off-by: Tony Ambardar #include #include #include -@@ -72,8 +73,20 @@ static int do_nftw(char *path, int (*fn) +@@ -74,8 +75,20 @@ static int do_nftw(char *path, int (*fn) if (!fd_limit) close(dfd); } @@ -56,7 +56,7 @@ Signed-off-by: Tony Ambardar for (; h; h = h->chain) if (h->dev == st.st_dev && h->ino == st.st_ino) -@@ -101,7 +114,10 @@ static int do_nftw(char *path, int (*fn) +@@ -103,7 +116,10 @@ static int do_nftw(char *path, int (*fn) strcpy(path+j+1, de->d_name); if ((r=do_nftw(path, fn, fd_limit-1, flags, &new))) { closedir(d); @@ -68,7 +68,7 @@ Signed-off-by: Tony Ambardar } } closedir(d); -@@ -112,8 +128,16 @@ static int do_nftw(char *path, int (*fn) +@@ -114,8 +130,16 @@ static int do_nftw(char *path, int (*fn) } path[l] = 0; @@ -87,9 +87,9 @@ Signed-off-by: Tony Ambardar return 0; } -@@ -139,4 +163,5 @@ int nftw(const char *path, int (*fn)(con +@@ -140,3 +164,5 @@ int nftw(const char *path, int (*fn)(con + pthread_setcancelstate(cs, 0); return r; } - ++ +#undef nftw64 - weak_alias(nftw, nftw64); diff --git a/toolchain/musl/patches/800-mips_pie_debug.patch b/toolchain/musl/patches/800-mips_pie_debug.patch deleted file mode 100644 index 80fe15e8418..00000000000 --- a/toolchain/musl/patches/800-mips_pie_debug.patch +++ /dev/null @@ -1,61 +0,0 @@ -Fix DT_DEBUG handling on MIPS in musl libc. -With this change gdb will load the symbol files for shared libraries on MIPS too. - -This patch was taken from this thread: https://www.openwall.com/lists/musl/2022/01/09/4 - ---- a/arch/mips/reloc.h -+++ b/arch/mips/reloc.h -@@ -29,6 +29,7 @@ - - #define NEED_MIPS_GOT_RELOCS 1 - #define DT_DEBUG_INDIRECT DT_MIPS_RLD_MAP -+#define DT_DEBUG_INDIRECT_REL DT_MIPS_RLD_MAP_REL - #define ARCH_SYM_REJECT_UND(s) (!((s)->st_other & STO_MIPS_PLT)) - - #define CRTJMP(pc,sp) __asm__ __volatile__( \ ---- a/arch/mips64/reloc.h -+++ b/arch/mips64/reloc.h -@@ -38,6 +38,7 @@ - - #define NEED_MIPS_GOT_RELOCS 1 - #define DT_DEBUG_INDIRECT DT_MIPS_RLD_MAP -+#define DT_DEBUG_INDIRECT_REL DT_MIPS_RLD_MAP_REL - #define ARCH_SYM_REJECT_UND(s) (!((s)->st_other & STO_MIPS_PLT)) - - #define CRTJMP(pc,sp) __asm__ __volatile__( \ ---- a/arch/mipsn32/reloc.h -+++ b/arch/mipsn32/reloc.h -@@ -29,6 +29,7 @@ - - #define NEED_MIPS_GOT_RELOCS 1 - #define DT_DEBUG_INDIRECT DT_MIPS_RLD_MAP -+#define DT_DEBUG_INDIRECT_REL DT_MIPS_RLD_MAP_REL - #define ARCH_SYM_REJECT_UND(s) (!((s)->st_other & STO_MIPS_PLT)) - - #define CRTJMP(pc,sp) __asm__ __volatile__( \ ---- a/ldso/dynlink.c -+++ b/ldso/dynlink.c -@@ -1923,6 +1923,10 @@ void __dls3(size_t *sp, size_t *auxv) - size_t *ptr = (size_t *) app.dynv[i+1]; - *ptr = (size_t)&debug; - } -+ if (app.dynv[i]==DT_DEBUG_INDIRECT_REL) { -+ size_t *ptr = (size_t *)((size_t)&app.dynv[i] + app.dynv[i+1]); -+ *ptr = (size_t)&debug; -+ } - } - - /* This must be done before final relocations, since it calls ---- a/src/internal/dynlink.h -+++ b/src/internal/dynlink.h -@@ -92,6 +92,10 @@ struct fdpic_dummy_loadmap { - #define DT_DEBUG_INDIRECT 0 - #endif - -+#ifndef DT_DEBUG_INDIRECT_REL -+#define DT_DEBUG_INDIRECT_REL 0 -+#endif -+ - #define AUX_CNT 32 - #define DYN_CNT 32 -