[pacman-dev] [PATCH] libmakepkg: Support file 5.33's application/x-pie-executable

Gabriel C nix.or.die at gmail.com
Sun Apr 22 16:21:58 UTC 2018


2018-04-20 19:46 GMT+02:00 Jan Alexander Steffens (heftig)
<jan.steffens at gmail.com>:
> 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 at gmail.com>
> ---
>  scripts/libmakepkg/tidy/strip.sh.in | 2 ++
>  1 file changed, 2 insertions(+)
>
> 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

I don't think that's  enough .. since everything , .so ,
.a ( possible glibc2.7+gcc8 ) and any binary is
now marked  application/x-pie-executable in PIE builds.

So probably something like this is what you wish :

https://github.com/abucodonosor/pacman/commit/f38df66ad39383dbce92cef53d3da7ec19208fed

Regards,

Gabriel C


More information about the pacman-dev mailing list