diff options
author | psykose <alice@ayaya.dev> | 2022-11-10 18:23:48 +0000 |
---|---|---|
committer | psykose <alice@ayaya.dev> | 2022-11-12 12:19:53 +0100 |
commit | 9bb1c89d8ef20e9a69fea9ac7035a01deb27d680 (patch) | |
tree | 3f7940330121bc1f187a5e1cf4798e21ed8132f3 | |
parent | 976bb53b3b4d95a5b6f75b7191302c0de8459e57 (diff) | |
download | aports-9bb1c89d8ef20e9a69fea9ac7035a01deb27d680.tar.gz aports-9bb1c89d8ef20e9a69fea9ac7035a01deb27d680.tar.bz2 aports-9bb1c89d8ef20e9a69fea9ac7035a01deb27d680.tar.xz |
main/musl: add correct relr patch for loader
acked by dalias
-rw-r--r-- | main/musl/APKBUILD | 4 | ||||
-rw-r--r-- | main/musl/relr-4.patch | 12 |
2 files changed, 15 insertions, 1 deletions
diff --git a/main/musl/APKBUILD b/main/musl/APKBUILD index 8b6aa73b3dc..92e99b1f953 100644 --- a/main/musl/APKBUILD +++ b/main/musl/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: Timo Teräs <timo.teras@iki.fi> pkgname=musl pkgver=1.2.3 -pkgrel=1 +pkgrel=2 pkgdesc="the musl c library (libc) implementation" url="https://musl.libc.org/" arch="all" @@ -26,6 +26,7 @@ source="musl-$_commit.tar.gz::https://git.musl-libc.org/cgit/musl/snapshot/$_com relr-1.patch relr-2.patch relr-3.patch + relr-4.patch ldconfig __stack_chk_fail_local.c @@ -173,6 +174,7 @@ a76f79b801497ad994746cf82bb6eaf86f9e1ae646e6819fbae8532a7f4eee53a96ac1d4e789ec8f 8ebcde1e07819de208ab89ed0a71fdcc67a5b1cecec5aa19a92bc9f4f3c2708a9ff1528370089de0b71e9ec3b2e08dfa49694db433ac190ba055aa112ae12bde relr-1.patch 38b40ebedf57ba05ba14807a55a26261eeca8b6226a90a7aaebaaa31bae0bb7f5b98e0ce3ed727b704b828c9e509a21745f3e089585f8dea7092be164ec9d908 relr-2.patch 9dc41f682887ef9a7b00253f576d0b738936c20d9bc5a54fa96552a82a2f056f0111936ad9778b96745befd6a660276618b4e05bef3c7f52d8c2a9e6d41e386c relr-3.patch +ee6ec5943df10597af0df3d6f792720a22d2070debb6933656a10a906725d1170c28c32ba8ad53efc72e77bd1d97efdbd3c80e91eddb856f377e917ff14ae8f3 relr-4.patch 8d3a2d5315fc56fee7da9abb8b89bb38c6046c33d154c10d168fb35bfde6b0cf9f13042a3bceee34daf091bc409d699223735dcf19f382eeee1f6be34154f26f ldconfig 062bb49fa54839010acd4af113e20f7263dde1c8a2ca359b5fb2661ef9ed9d84a0f7c3bc10c25dcfa10bb3c5a4874588dff636ac43d5dbb3d748d75400756d0b __stack_chk_fail_local.c 0d80f37b34a35e3d14b012257c50862dfeb9d2c81139ea2dfa101d981d093b009b9fa450ba27a708ac59377a48626971dfc58e20a3799084a65777a0c32cbc7d getconf.c diff --git a/main/musl/relr-4.patch b/main/musl/relr-4.patch new file mode 100644 index 00000000000..68c5446b880 --- /dev/null +++ b/main/musl/relr-4.patch @@ -0,0 +1,12 @@ +diff --git a/ldso/dynlink.c b/ldso/dynlink.c +index 7b47b163..753de91d 100644 +--- a/ldso/dynlink.c ++++ b/ldso/dynlink.c +@@ -552,6 +552,7 @@ static void do_relocs(struct dso *dso, size_t *rel, size_t rel_size, size_t stri + + static void do_relr_relocs(struct dso *dso, size_t *relr, size_t relr_size) + { ++ if (dso == &ldso) return; // self-relocation already done a entry point + unsigned char *base = dso->base; + size_t *reloc_addr; + for (; relr_size; relr++, relr_size-=sizeof(size_t)) |