diff options
author | Robert Marko <robimarko@gmail.com> | 2024-09-16 11:51:45 +0200 |
---|---|---|
committer | Robert Marko <robimarko@gmail.com> | 2024-09-16 22:47:44 +0200 |
commit | 7e1d0925526a104364630b7af5355b799ef884d9 (patch) | |
tree | 6b4cc5cf3d1a0d8c0c37039763a3961ddae30a4a | |
parent | 93881ec190c2d0f9d974d19c0f328637c0cc170a (diff) | |
download | openwrt-7e1d0925526a104364630b7af5355b799ef884d9.tar.gz openwrt-7e1d0925526a104364630b7af5355b799ef884d9.tar.bz2 openwrt-7e1d0925526a104364630b7af5355b799ef884d9.zip |
generic: enable RELR relocations
RELR is a relocation packing format for relative relocations.
Linux has supported using it for ARM64 since 5.4, and more recently
for LoongArch as well.
It requires compatible tooling as well, so only with binutils 2.43
TOOLS_SUPPORT_RELR is set and thus RELR available.
RELR should always decrease the binary size and while testing this
the default build for Dynalink WRX-36 (qualcommax/ipq807x) reduced
the compressed kernel size by 38k and uncompressed one by 640k.
So, lets enable it in the default config.
Link: https://github.com/openwrt/openwrt/pull/16403
Signed-off-by: Robert Marko <robimarko@gmail.com>
-rw-r--r-- | target/linux/generic/config-5.15 | 1 | ||||
-rw-r--r-- | target/linux/generic/config-6.1 | 1 | ||||
-rw-r--r-- | target/linux/generic/config-6.6 | 1 |
3 files changed, 3 insertions, 0 deletions
diff --git a/target/linux/generic/config-5.15 b/target/linux/generic/config-5.15 index a34ba551be..4c5b808799 100644 --- a/target/linux/generic/config-5.15 +++ b/target/linux/generic/config-5.15 @@ -5074,6 +5074,7 @@ CONFIG_REISERFS_FS_XATTR=y # CONFIG_REISERFS_PROC_INFO is not set # CONFIG_RELAY is not set # CONFIG_RELOCATABLE is not set +CONFIG_RELR=y # CONFIG_REMOTEPROC is not set # CONFIG_RENESAS_PHY is not set # CONFIG_RESET_ATH79 is not set diff --git a/target/linux/generic/config-6.1 b/target/linux/generic/config-6.1 index ef61717d78..f6163e3294 100644 --- a/target/linux/generic/config-6.1 +++ b/target/linux/generic/config-6.1 @@ -5280,6 +5280,7 @@ CONFIG_REISERFS_FS_XATTR=y # CONFIG_REISERFS_PROC_INFO is not set # CONFIG_RELAY is not set # CONFIG_RELOCATABLE is not set +CONFIG_RELR=y # CONFIG_REMOTEPROC is not set # CONFIG_RENESAS_PHY is not set # CONFIG_RESET_ATH79 is not set diff --git a/target/linux/generic/config-6.6 b/target/linux/generic/config-6.6 index 71fdf59d33..eb8011d3f7 100644 --- a/target/linux/generic/config-6.6 +++ b/target/linux/generic/config-6.6 @@ -4977,6 +4977,7 @@ CONFIG_REISERFS_FS_XATTR=y # CONFIG_REISERFS_PROC_INFO is not set # CONFIG_RELAY is not set # CONFIG_RELOCATABLE is not set +CONFIG_RELR=y # CONFIG_REMOTEPROC is not set # CONFIG_RENESAS_PHY is not set # CONFIG_RESET_ATH79 is not set |