diff mbox series

RISC-V: Add _dl_start_user.

Message ID 20201110005323.17583-1-jimw@sifive.com
State Committed
Commit 1f67f23fdf2ad5c4fa26525f0cd74aba7ebf3375
Headers show
Series RISC-V: Add _dl_start_user. | expand

Commit Message

Jim Wilson Nov. 10, 2020, 12:53 a.m. UTC
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
---
 sysdeps/riscv/dl-machine.h | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Andrew Waterman Nov. 10, 2020, 1:06 a.m. UTC | #1
LGTM.


On Mon, Nov 9, 2020 at 4:53 PM Jim Wilson <jimw@sifive.com> wrote:
>
> 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
> ---
>  sysdeps/riscv/dl-machine.h | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> 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" \
>  );
>
> --
> 2.25.0
>
Jim Wilson Nov. 10, 2020, 4:44 p.m. UTC | #2
On Mon, Nov 9, 2020 at 5:06 PM Andrew Waterman <andrew@sifive.com> wrote:

> LGTM.
>

I don't have glibc write access, so I would need someone else to commit
this for me.

Jim
Palmer Dabbelt Nov. 21, 2020, 12:36 a.m. UTC | #3
On Tue, 10 Nov 2020 08:44:59 PST (-0800), Jim Wilson wrote:
> On Mon, Nov 9, 2020 at 5:06 PM Andrew Waterman <andrew@sifive.com> wrote:
>
>> LGTM.
>>
>
> I don't have glibc write access, so I would need someone else to commit
> this for me.

Looks like someone did?  I don't see anything on the thread, but I do in git.
diff mbox series

Patch

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" \
 );