RISC-V: Add _dl_start_user.
Commit Message
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
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
>
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
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.
@@ -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" \
);