tech-toolchain archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: [PATCH] VAX libstdc++ common runtime - register used but not saved
Committed:
https://mail-index.netbsd.org/source-changes/2023/07/28/msg146283.html
https://mail-index.netbsd.org/source-changes/2023/07/28/msg146284.html
Kalvis, thanks for your report!
BTW, I think entry mask for __start() is also wrong:
https://nxr.netbsd.org/xref/src/lib/csu/arch/vax/crt0.S#38
> 38 _ENTRY(__start, 0x0101)
This 0x0101 seems like two NOPs copy-paste from pre-ELF code:
http://cvsweb.netbsd.org/bsdweb.cgi/src/lib/csu/vax/Attic/crt0.c.diff?r1=1.8&r2=1.9&hideattic=0&only_with_tag=MAIN&f=h
Can we replace 0x0101 to 0x0000 here?
Thanks,
rin
On Fri, Jul 28, 2023 at 3:23 PM Kalvis Duckmanton <kalvisd%gmail.com@localhost> wrote:
>
> Hello all,
>
> I believe that I've found a problem in libstdc++ for VAX where, in the
> __do_global_ctors_aux function, %r8 is used but not saved. %r11, which
> is saved, is not used.
>
> I'd like to propose the following change against NetBSD 10.99.6 to
> correct it.
>
> Many thanks
> kalvis
>
>
> ---
> lib/csu/arch/vax/crtbegin.S | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/lib/csu/arch/vax/crtbegin.S b/lib/csu/arch/vax/crtbegin.S
> index 208c4658a973..207a9d03ec44 100644
> --- a/lib/csu/arch/vax/crtbegin.S
> +++ b/lib/csu/arch/vax/crtbegin.S
> @@ -132,7 +132,7 @@ END(__do_global_dtors_aux)
>
> .hidden __do_global_ctors_aux
>
> -_ENTRY(__do_global_ctors_aux, 0x0800)
> +_ENTRY(__do_global_ctors_aux, 0x0100) /* save r8 */
> tstb __initialized
> bneq 4f
> movb $1, __initialized
> --
> 2.20.1
>
Home |
Main Index |
Thread Index |
Old Index