summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Alexander Steffens (heftig) <jan.steffens@gmail.com>2018-04-20 19:46:16 +0200
committerAllan McRae <allan@archlinux.org>2018-05-12 22:57:47 +1000
commit03272ad57142a1c7dacf1d9933d52650d3936225 (patch)
tree42d81c805b276cdc680d71691d14448e379c21c2
parent40937b381abd013cf3473af4ea04bf52fecf0854 (diff)
downloadpacman-03272ad57142a1c7dacf1d9933d52650d3936225.tar.gz
pacman-03272ad57142a1c7dacf1d9933d52650d3936225.zip
libmakepkg: Support file 5.33's application/x-pie-executable
file 5.33 introduces a new MIME type "application/x-pie-executable", which is used for relocatable binaries. makepkg ignored these binaries and did not attempt to strip them. Handle the new MIME type like the old "application/x-sharedlib". Stripping the binaries with --strip-unneeded to keep relocation information should be the correct thing to do. file 5.33 also misidentifies actual libraries as PIE executables, so we didn't strip any shared libraries, either. We now work around this bug. Signed-off-by: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
-rw-r--r--doc/makepkg.conf.5.txt4
-rw-r--r--scripts/libmakepkg/tidy/strip.sh.in2
2 files changed, 4 insertions, 2 deletions
diff --git a/doc/makepkg.conf.5.txt b/doc/makepkg.conf.5.txt
index 267dc9e9..5417aa0e 100644
--- a/doc/makepkg.conf.5.txt
+++ b/doc/makepkg.conf.5.txt
@@ -193,8 +193,8 @@ Options
for details.
**STRIP_SHARED=**"--strip-unneeded"::
- Options to be used when stripping shared libraries. See linkman:strip[1]
- for details.
+ Options to be used when stripping shared libraries or PIE executables.
+ See linkman:strip[1] for details.
**STRIP_STATIC=**"--strip-debug"::
Options to be used when stripping static libraries. See linkman:strip[1]
diff --git a/scripts/libmakepkg/tidy/strip.sh.in b/scripts/libmakepkg/tidy/strip.sh.in
index e20114c0..36d1b89e 100644
--- a/scripts/libmakepkg/tidy/strip.sh.in
+++ b/scripts/libmakepkg/tidy/strip.sh.in
@@ -125,6 +125,8 @@ tidy_strip() {
esac;;
*application/x-executable*) # Binaries
strip_flags="$STRIP_BINARIES";;
+ *application/x-pie-executable*) # Relocatable binaries
+ strip_flags="$STRIP_SHARED";;
*)
continue ;;
esac