about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSergey Bugaev <bugaevc@gmail.com>2023-05-17 22:14:35 +0300
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2023-05-17 23:03:23 +0200
commitc93ee967cd688bc6d43c795b48e988075655a67f (patch)
tree01db06495111efddd1aa5deebdfb624f93a33e39
parent70fd6b3b230f58782a196b1075513a24f2376077 (diff)
downloadglibc-c93ee967cd688bc6d43c795b48e988075655a67f.tar.gz
glibc-c93ee967cd688bc6d43c795b48e988075655a67f.tar.xz
glibc-c93ee967cd688bc6d43c795b48e988075655a67f.zip
hurd: Also make it possible to call strlen very early
strlen, which is another ifunc-selected function, is invoked during
early static executable startup if the argv arrives from the exec
server. Make it not crash.

Checked on x86_64-gnu: statically linked executables launched after the
exec server is up now start up successfully.

Signed-off-by: Sergey Bugaev <bugaevc@gmail.com>
Message-Id: <20230517191436.73636-10-bugaevc@gmail.com>
-rw-r--r--sysdeps/mach/hurd/x86_64/static-start.S3
1 files changed, 3 insertions, 0 deletions
diff --git a/sysdeps/mach/hurd/x86_64/static-start.S b/sysdeps/mach/hurd/x86_64/static-start.S
index cc8e2410ea..0fed375cdf 100644
--- a/sysdeps/mach/hurd/x86_64/static-start.S
+++ b/sysdeps/mach/hurd/x86_64/static-start.S
@@ -22,6 +22,9 @@ _start:
 
 	leaq __memcpy_sse2_unaligned(%rip), %rax
 	movq %rax, memcpy@GOTPCREL(%rip)
+	leaq __strlen_sse2(%rip), %rax
+	movq %rax, strlen@GOTPCREL(%rip)
+
 	call _hurd_stack_setup
 	xorq %rdx, %rdx
 	jmp _start1