diff options
author | Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | 2014-02-04 16:36:18 +0100 |
---|---|---|
committer | Peter Korsgaard <peter@korsgaard.com> | 2014-02-04 18:10:15 +0100 |
commit | 12d150727a8dff2d6a4c3013936c27fe71ce588d (patch) | |
tree | b5c627479cfaa513b66a77431bb9185b007355cf /package/gcc | |
parent | dcd0b3cc7b585835a9f4fb76264919946456dcaf (diff) | |
download | buildroot-12d150727a8dff2d6a4c3013936c27fe71ce588d.tar.gz buildroot-12d150727a8dff2d6a4c3013936c27fe71ce588d.zip |
Strip *.so* and not only executable files
Our current stripping strategy requires that shared libraries have the
executable permission. However, this is by far not something
recognized as a standard behavior: Debian/Ubuntu distributions for
example do not have executable permissions on their
libraries. Therefore, pushing to upstream packages fixes that add the
executable permissions is not easy.
As a result, this commit improves the stripping logic so that it not
only strips the files that are executable, but also the ones that
match '*.so*', which should match both the shared libraries and the
dlopen()'able plugins, as long as they have a .so extension.
Thanks to this addition, a number of manual "chmod +x" done by various
packages can be removed.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Diffstat (limited to 'package/gcc')
-rw-r--r-- | package/gcc/gcc-final/gcc-final.mk | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/package/gcc/gcc-final/gcc-final.mk b/package/gcc/gcc-final/gcc-final.mk index 47b30da105..ecc4068b49 100644 --- a/package/gcc/gcc-final/gcc-final.mk +++ b/package/gcc/gcc-final/gcc-final.mk @@ -103,14 +103,12 @@ HOST_GCC_FINAL_POST_INSTALL_HOOKS += HOST_GCC_FINAL_LD_LINUX_LINK endif # Cannot use the HOST_GCC_FINAL_USR_LIBS mechanism below, because we want -# libgcc_s to be installed in /lib and not /usr/lib. We add +x on -# libgcc_s to ensure it will be stripped. +# libgcc_s to be installed in /lib and not /usr/lib. define HOST_GCC_FINAL_INSTALL_LIBGCC -cp -dpf $(HOST_DIR)/usr/$(GNU_TARGET_NAME)/lib*/libgcc_s* \ $(STAGING_DIR)/lib/ -cp -dpf $(HOST_DIR)/usr/$(GNU_TARGET_NAME)/lib*/libgcc_s* \ $(TARGET_DIR)/lib/ - -chmod +x $(TARGET_DIR)/lib/libgcc_s.so.1 endef HOST_GCC_FINAL_POST_INSTALL_HOOKS += HOST_GCC_FINAL_INSTALL_LIBGCC |