diff mbox series

AArch64: Remove BTI from outline atomics

Message ID PAWPR08MB8982AEB5FE30726A1FDB466283C3A@PAWPR08MB8982.eurprd08.prod.outlook.com
State New
Headers show
Series AArch64: Remove BTI from outline atomics | expand

Commit Message

Wilco Dijkstra Sept. 26, 2023, 1:46 p.m. UTC
The outline atomic functions have hidden visibility and can only be called
directly.  Therefore we can remove the BTI at function entry.  This improves
security by reducing the number of indirect entry points in a binary.
The BTI markings on the objects are still emitted.

Passes regress, OK for commit?

libgcc/ChangeLog:
        * config/aarch64/lse.S (BTI_C): Remove define.

---

Comments

Richard Earnshaw (lists) Sept. 26, 2023, 2:15 p.m. UTC | #1
On 26/09/2023 14:46, Wilco Dijkstra wrote:
> 
> The outline atomic functions have hidden visibility and can only be called
> directly.  Therefore we can remove the BTI at function entry.  This improves
> security by reducing the number of indirect entry points in a binary.
> The BTI markings on the objects are still emitted.

Please can you add a comment to that effect in the source code.  OK with that change.

R.

> 
> Passes regress, OK for commit?
> 
> libgcc/ChangeLog:
>         * config/aarch64/lse.S (BTI_C): Remove define.
> 
> ---
> 
> diff --git a/libgcc/config/aarch64/lse.S b/libgcc/config/aarch64/lse.S
> index ba05047ff02b6fc5752235bffa924fc4a2f48c04..dbfb83fb09083641bf06c50b631a5f27bdf61b80 100644
> --- a/libgcc/config/aarch64/lse.S
> +++ b/libgcc/config/aarch64/lse.S
> @@ -163,8 +163,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
>  #define tmp3    14
>  #define tmp4    13
>  
> -#define BTI_C  hint    34
> -
>  /* Start and end a function.  */
>  .macro  STARTFN name
>          .text
> @@ -174,7 +172,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
>          .type   \name, %function
>          .cfi_startproc
>  \name:
> -       BTI_C
>  .endm
>  
>  .macro  ENDFN name
diff mbox series

Patch

diff --git a/libgcc/config/aarch64/lse.S b/libgcc/config/aarch64/lse.S
index ba05047ff02b6fc5752235bffa924fc4a2f48c04..dbfb83fb09083641bf06c50b631a5f27bdf61b80 100644
--- a/libgcc/config/aarch64/lse.S
+++ b/libgcc/config/aarch64/lse.S
@@ -163,8 +163,6 @@  see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #define tmp3    14
 #define tmp4    13
 
-#define BTI_C  hint    34
-
 /* Start and end a function.  */
 .macro  STARTFN name
         .text
@@ -174,7 +172,6 @@  see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
         .type   \name, %function
         .cfi_startproc
 \name:
-       BTI_C
 .endm
 
 .macro  ENDFN name