Skip to Content.
Sympa Menu

sm-commit - [SM-Commit] GIT changes to master grimoire by Remko van der Vossen (7a6cba2c401ea37814741133536b9e12b47aaf95)

sm-commit AT lists.ibiblio.org

Subject: Source Mage code commit list

List archive

Chronological Thread  
  • From: Remko van der Vossen <scm AT sourcemage.org>
  • To: sm-commit AT lists.ibiblio.org
  • Subject: [SM-Commit] GIT changes to master grimoire by Remko van der Vossen (7a6cba2c401ea37814741133536b9e12b47aaf95)
  • Date: Fri, 26 Feb 2021 17:25:23 +0000

GIT changes to master grimoire by Remko van der Vossen <wich AT sourcemage.org>:

ftp/rsync/BUILD | 15 +++++++++++++++
ftp/rsync/HISTORY | 3 +++
2 files changed, 18 insertions(+)

New commits:
commit 7a6cba2c401ea37814741133536b9e12b47aaf95
Author: Remko van der Vossen <wich AT sourcemage.org>
Commit: Remko van der Vossen <wich AT sourcemage.org>

rsync: rewrite -s option to -Wl,--strip-debug in LDFLAGS

LDFLAGS containing "-s" calls gcc and/or ld with "-s" which means
--strip-all with current (2.36) binutils and perhaps earlier versions
this causes relocation entries in the .rela.plt section of type
R_X86_64_IRELATIV to be replaced with 0-entries having type
R_X86_64_NONE (value 0). This breaks the STT_GNU_IFUNC mechanism used by
certain shared libraries breaking the rsync binary.

Interestingly "strip -s" on the same binary which also is supposed to
"strip all" does not show this behavior so it is somehow different from
the behavior of ld. Perhaps it is a bug in binutils, though I was not
able to find

diff --git a/ftp/rsync/BUILD b/ftp/rsync/BUILD
index d22e99f..1dce478 100755
--- a/ftp/rsync/BUILD
+++ b/ftp/rsync/BUILD
@@ -1,3 +1,18 @@
make_single &&
+
+# LDFLAGS containing "-s" calls gcc and/or ld with "-s" which means
--strip-all
+# with current (2.36) binutils and perhaps earlier versions this causes
+# relocation entries in the .rela.plt section of type R_X86_64_IRELATIV to be
+# replaced with 0-entries having type R_X86_64_NONE (value 0). This breaks
the
+# STT_GNU_IFUNC mechanism used by certain shared libraries breaking the rsync
+# binary.
+#
+# Interestingly "strip -s" on the same binary which also is supposed to
"strip
+# all" does not show this behavior so it is somehow different from the
behavior
+# of ld. Perhaps it is a bug in binutils, though I was not able to find
+# anything relevant.
+
+LDFLAGS=${LDFLAGS//-s /-Wl,--strip-debug } &&
+LDFLAGS=${LDFLAGS/%-s/-Wl,--strip-debug} &&
default_build &&
make_normal
diff --git a/ftp/rsync/HISTORY b/ftp/rsync/HISTORY
index 03e6b65..5603d4e 100644
--- a/ftp/rsync/HISTORY
+++ b/ftp/rsync/HISTORY
@@ -1,3 +1,6 @@
+2021-02-26 Remko van der Vossen <wich AT sourcemage.org>
+ * BUILD: rewrite -s option to -Wl,--strip-debug in LDFLAGS
+
2020-08-07 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
* DETAILS: version 3.2.3




  • [SM-Commit] GIT changes to master grimoire by Remko van der Vossen (7a6cba2c401ea37814741133536b9e12b47aaf95), Remko van der Vossen, 02/26/2021

Archive powered by MHonArc 2.6.24.

Top of Page