This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH 02/12] x86-64: Add endbr64 to tst-quadmod[12].S
On 07/21/2018 10:20 AM, H.J. Lu wrote:
> Add endbr64 to tst-quadmod1.S and tst-quadmod2.S so that func and foo
> can be called indirectly.
>
> * sysdeps/x86_64/tst-quadmod1.S (func): Add endbr64 if IBT is
> enabled.
> (foo): Likewise.
> * sysdeps/x86_64/tst-quadmod2.S (func) : Likewise.
> (foo): Likewise.
> ---
> sysdeps/x86_64/tst-quadmod1.S | 6 ++++++
> sysdeps/x86_64/tst-quadmod2.S | 6 ++++++
> 2 files changed, 12 insertions(+)
This is OK as-is, but marking foo with enbr64 seems
beyond what is needed. Only foo calls func directly,
so I would expect only func needing markup. If you can
tighten this up it would be better.
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
>
> diff --git a/sysdeps/x86_64/tst-quadmod1.S b/sysdeps/x86_64/tst-quadmod1.S
> index 26f2f1b599..c60f9dc89d 100644
> --- a/sysdeps/x86_64/tst-quadmod1.S
> +++ b/sysdeps/x86_64/tst-quadmod1.S
> @@ -28,6 +28,9 @@
> .type func, @function
> func:
> .cfi_startproc
> +#if defined __CET__ && (__CET__ & 1) != 0
> + endbr64
> +#endif
OK.
> xorl %edi, %edi
> jmp exit@PLT
> .cfi_endproc
> @@ -37,6 +40,9 @@ func:
> foo:
> .cfi_startproc
> .cfi_def_cfa_register 6
> +#if defined __CET__ && (__CET__ & 1) != 0
> + endbr64
OK.
> +#endif
> movq .Ljmp(%rip), %rax
> subq $BIAS, %rax
> jmp *%rax
> diff --git a/sysdeps/x86_64/tst-quadmod2.S b/sysdeps/x86_64/tst-quadmod2.S
> index e923adf672..af03444d4f 100644
> --- a/sysdeps/x86_64/tst-quadmod2.S
> +++ b/sysdeps/x86_64/tst-quadmod2.S
> @@ -27,6 +27,9 @@
> .type func, @function
> func:
> .cfi_startproc
> +#if defined __CET__ && (__CET__ & 1) != 0
> + endbr64
OK. Foo calls func directly.
> +#endif
> xorl %edi, %edi
> jmp exit@PLT
> .cfi_endproc
> @@ -36,6 +39,9 @@ func:
> foo:
> .cfi_startproc
> .cfi_def_cfa_register 6
> +#if defined __CET__ && (__CET__ & 1) != 0
> + endbr64
> +#endif
> movq .Ljmp(%rip), %rax
> subq $BIAS, %rax
> jmp *%rax
>
OK.
c.