feat(config): Add -z pack-relative-relocs to LDFLAGS

This moves relative relocations from the `.rela.dyn` section into a new
`.relr.dyn` section with a significantly more compact encoding,
supported since glibc 2.36, GNU Binutils 2.38 and LLVM 15.

This can reduce the size of libraries a lot, e.g. the installed size of
`libphonenumber` dropped from about 17 MB to 7 MB.

For more info, see
https://gitlab.archlinux.org/archlinux/rfcs/-/merge_requests/23.

Signed-off-by: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
This commit is contained in:
Jan Alexander Steffens (heftig) 2023-09-01 23:53:03 +02:00 committed by Levente Polyak
parent 1535a69af6
commit c356995dc1
No known key found for this signature in database
GPG Key ID: FC1B547C8D8172C8
2 changed files with 4 additions and 2 deletions

View File

@ -44,7 +44,8 @@ CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions \
-Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security \
-fstack-clash-protection -fcf-protection"
CXXFLAGS="$CFLAGS -Wp,-D_GLIBCXX_ASSERTIONS"
LDFLAGS="-Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now"
LDFLAGS="-Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now \
-Wl,-z,pack-relative-relocs"
LTOFLAGS="-flto=auto"
RUSTFLAGS=""
#-- Make Flags: change this for DistCC/SMP systems

View File

@ -44,7 +44,8 @@ CFLAGS="-march=x86-64-v3 -mtune=generic -O2 -pipe -fno-plt -fexceptions \
-Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security \
-fstack-clash-protection -fcf-protection"
CXXFLAGS="$CFLAGS -Wp,-D_GLIBCXX_ASSERTIONS"
LDFLAGS="-Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now"
LDFLAGS="-Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now \
-Wl,-z,pack-relative-relocs"
LTOFLAGS="-flto=auto"
RUSTFLAGS=""
#-- Make Flags: change this for DistCC/SMP systems