about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJim Wilson <jimw@sifive.com>2020-11-09 16:53:23 -0800
committerDJ Delorie <dj@redhat.com>2020-11-10 14:02:46 -0500
commit1f67f23fdf2ad5c4fa26525f0cd74aba7ebf3375 (patch)
tree6e20421c384ec5b4f7e30df3670808f8ccd699ea
parent75a193b7611bade31a150dfcc528b973e3d46231 (diff)
downloadglibc-1f67f23fdf2ad5c4fa26525f0cd74aba7ebf3375.tar.gz
glibc-1f67f23fdf2ad5c4fa26525f0cd74aba7ebf3375.tar.xz
glibc-1f67f23fdf2ad5c4fa26525f0cd74aba7ebf3375.zip
RISC-V: Add _dl_start_user.
This is required for the debugglibc.sh script to work.  Tested by
successfully using this patched script, and a riscv64-linux testsuite
run.

We could perhaps call RTLD_EPILOGUE for ENTRY_POINT before calling
RTLD_PROLOGUE for _dl_start_user, but I don't think it matters.

OK?

Jim
-rw-r--r--sysdeps/riscv/dl-machine.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/sysdeps/riscv/dl-machine.h b/sysdeps/riscv/dl-machine.h
index 03db94aeba..511140864e 100644
--- a/sysdeps/riscv/dl-machine.h
+++ b/sysdeps/riscv/dl-machine.h
@@ -105,6 +105,7 @@ elf_machine_load_address (void)
 	" _RTLD_PROLOGUE (ENTRY_POINT) "\
 	mv a0, sp\n\
 	jal _dl_start\n\
+	" _RTLD_PROLOGUE (_dl_start_user) "\
 	# Stash user entry point in s0.\n\
 	mv s0, a0\n\
 	# See if we were run as a command with the executable file\n\
@@ -131,7 +132,8 @@ elf_machine_load_address (void)
 	lla a0, _dl_fini\n\
 	# Jump to the user entry point.\n\
 	jr s0\n\
-	" _RTLD_EPILOGUE (ENTRY_POINT) "\
+	" _RTLD_EPILOGUE (ENTRY_POINT) \
+	  _RTLD_EPILOGUE (_dl_start_user) "\
 	.previous" \
 );