summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane2023-04-20 22:12:32 +0000
committerTom Lane2023-04-20 22:12:32 +0000
commiteab2d3147e3c13aca4a9aca52c0a9a581a8d224a (patch)
treef70323df97e12ad3b722eca2a2ef5ab86bbaa9a0
parenta9781ae11ba2fdb44a3a72c9a7ebb727140b25c5 (diff)
Use --strip-unneeded when stripping static libraries with GNU strip.
We've long used "--strip-unneeded" for shared libraries but plain "-x" for static libraries when stripping symbols with GNU strip. There doesn't seem to be any really good reason for that though, since --strip-unneeded produces smaller output (as "-x" alone does not remove debug symbols). Moreover it seems that llvm-strip, although it identifies as GNU strip, misbehaves when given "-x" for this purpose. It's unclear whether that's intentional or a bug in llvm-strip, but in any case it seems like changing to use --strip-unneeded in all cases should be a win. Note that this doesn't change our behavior when dealing with non-GNU strip. Per gripes from Ed Maste and Palle Girgensohn. Back-patch, in case anyone wants to use llvm-strip with stable branches. Discussion: https://postgr.es/m/[email protected] Discussion: https://postgr.es/m/[email protected]
-rw-r--r--config/programs.m42
-rwxr-xr-xconfigure2
-rw-r--r--src/makefiles/meson.build2
3 files changed, 3 insertions, 3 deletions
diff --git a/config/programs.m4 b/config/programs.m4
index ce83155592..8a118b4e03 100644
--- a/config/programs.m4
+++ b/config/programs.m4
@@ -307,7 +307,7 @@ AC_DEFUN([PGAC_CHECK_STRIP],
AC_MSG_CHECKING([whether it is possible to strip libraries])
if test x"$STRIP" != x"" && "$STRIP" -V 2>&1 | grep "GNU strip" >/dev/null; then
- STRIP_STATIC_LIB="$STRIP -x"
+ STRIP_STATIC_LIB="$STRIP --strip-unneeded"
STRIP_SHARED_LIB="$STRIP --strip-unneeded"
AC_MSG_RESULT(yes)
else
diff --git a/configure b/configure
index e585b28bff..15daccc87f 100755
--- a/configure
+++ b/configure
@@ -9712,7 +9712,7 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is possible to strip libraries" >&5
$as_echo_n "checking whether it is possible to strip libraries... " >&6; }
if test x"$STRIP" != x"" && "$STRIP" -V 2>&1 | grep "GNU strip" >/dev/null; then
- STRIP_STATIC_LIB="$STRIP -x"
+ STRIP_STATIC_LIB="$STRIP --strip-unneeded"
STRIP_SHARED_LIB="$STRIP --strip-unneeded"
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
diff --git a/src/makefiles/meson.build b/src/makefiles/meson.build
index 7635771c5a..13045cbd6e 100644
--- a/src/makefiles/meson.build
+++ b/src/makefiles/meson.build
@@ -16,7 +16,7 @@ if strip_bin.found()
strip_version.stdout().contains('GNU strip') or
strip_version.stderr().contains('GNU strip'))
working_strip = true
- strip_static_cmd = strip_cmd + ['-x']
+ strip_static_cmd = strip_cmd + ['--strip-unneeded']
strip_shared_cmd = strip_cmd + ['--strip-unneeded']
elif host_system == 'darwin'
working_strip = true