diff options
author | Andreas Baumann <mail@andreasbaumann.cc> | 2018-05-12 08:09:11 +0200 |
---|---|---|
committer | Andreas Baumann <mail@andreasbaumann.cc> | 2018-05-12 08:09:11 +0200 |
commit | aa25476ddd62d0858b9b9db89df901089e3d024b (patch) | |
tree | 5ea9dba14d804c8b93cc136cf466b8ee5df3829d /core | |
parent | 3d5ece893f85808c4b1a63df306e21d5fd97659e (diff) | |
download | packages-aa25476ddd62d0858b9b9db89df901089e3d024b.tar.xz |
core/binutils: testing a static PIE patch
Diffstat (limited to 'core')
-rw-r--r-- | core/binutils/PKGBUILD | 13 | ||||
-rw-r--r-- | core/binutils/elf32_hppa_static_pie.patch | 22 |
2 files changed, 35 insertions, 0 deletions
diff --git a/core/binutils/PKGBUILD b/core/binutils/PKGBUILD index 35c2db26..469392fc 100644 --- a/core/binutils/PKGBUILD +++ b/core/binutils/PKGBUILD @@ -4,3 +4,16 @@ eval "$( s/--enable/--enable-64-bit-bfd \0/ ' )" + +# see https://sourceware.org/bugzilla/show_bug.cgi?id=22537 +# linking segfault in glibc + +source+=(elf32_hppa_static_pie.patch) +md5sums+=('68e3ce93b66ddec6c36b5146df1ed713') + +eval "$( + declare -f prepare | \ + sed ' + /}/i patch -p1 -i "$srcdir/elf32_hppa_static_pie.patch" + ' +)" diff --git a/core/binutils/elf32_hppa_static_pie.patch b/core/binutils/elf32_hppa_static_pie.patch new file mode 100644 index 00000000..df6a53dd --- /dev/null +++ b/core/binutils/elf32_hppa_static_pie.patch @@ -0,0 +1,22 @@ +diff -rauN binutils-2.30/bfd/elf32-hppa.c binutils-2.30-elf32_hppa_static_pie-patch/bfd/elf32-hppa.c +--- binutils-2.30/bfd/elf32-hppa.c 2018-01-13 14:31:15.000000000 +0100 ++++ binutils-2.30-elf32_hppa_static_pie-patch/bfd/elf32-hppa.c 2018-05-12 07:50:42.001547947 +0200 +@@ -612,6 +612,9 @@ + return hppa_stub_import; + } + ++ if (destination == (bfd_vma) -1) ++ return hppa_stub_none; ++ + /* Determine where the call point is. */ + location = (input_sec->output_offset + + input_sec->output_section->vma +@@ -2842,7 +2845,7 @@ + section. */ + sym_sec = NULL; + sym_value = 0; +- destination = 0; ++ destination = -1; + hh = NULL; + if (r_indx < symtab_hdr->sh_info) + { |