This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

V2 [PATCH 3/5] i386: Add _CET_ENDBR to assembly files without ENTRY


Add _CET_ENDBR to i386 assembly files which don't use ENTRY to add
ENDBR32 at function entries when CET is enabled.
---
 sysdeps/i386/i386-mcount.S              | 2 ++
 sysdeps/i386/nptl/pthread_spin_lock.S   | 2 ++
 sysdeps/i386/nptl/pthread_spin_unlock.S | 3 +++
 sysdeps/i386/pthread_spin_trylock.S     | 2 ++
 4 files changed, 9 insertions(+)

diff --git a/sysdeps/i386/i386-mcount.S b/sysdeps/i386/i386-mcount.S
index 9516265bcb..8b60bd20fe 100644
--- a/sysdeps/i386/i386-mcount.S
+++ b/sysdeps/i386/i386-mcount.S
@@ -30,6 +30,7 @@
 	.type C_SYMBOL_NAME(_mcount), @function
 	.align ALIGNARG(4)
 C_LABEL(_mcount)
+	_CET_ENDBR
 	/* Save the caller-clobbered registers.  */
 	pushl %eax
 	pushl %ecx
@@ -58,6 +59,7 @@ weak_alias (_mcount, mcount)
 	.type C_SYMBOL_NAME(__fentry__), @function
 	.align ALIGNARG(4)
 C_LABEL(__fentry__)
+	_CET_ENDBR
 	/* Save the caller-clobbered registers.  */
 	pushl %eax
 	pushl %ecx
diff --git a/sysdeps/i386/nptl/pthread_spin_lock.S b/sysdeps/i386/nptl/pthread_spin_lock.S
index 5736c82078..7eb8f0e069 100644
--- a/sysdeps/i386/nptl/pthread_spin_lock.S
+++ b/sysdeps/i386/nptl/pthread_spin_lock.S
@@ -15,12 +15,14 @@
    License along with the GNU C Library; if not, see
    <https://www.gnu.org/licenses/>.  */
 
+#include <sysdep.h>
 #include <lowlevellock.h>
 
 	.globl	pthread_spin_lock
 	.type	pthread_spin_lock,@function
 	.align	16
 pthread_spin_lock:
+	_CET_ENDBR
 	mov	4(%esp), %eax
 1:	LOCK
 	decl	0(%eax)
diff --git a/sysdeps/i386/nptl/pthread_spin_unlock.S b/sysdeps/i386/nptl/pthread_spin_unlock.S
index e7757d0a03..dac730af1f 100644
--- a/sysdeps/i386/nptl/pthread_spin_unlock.S
+++ b/sysdeps/i386/nptl/pthread_spin_unlock.S
@@ -16,10 +16,13 @@
    License along with the GNU C Library; if not, see
    <https://www.gnu.org/licenses/>.  */
 
+#include <sysdep.h>
+
 	.globl	pthread_spin_unlock
 	.type	pthread_spin_unlock,@function
 	.align	16
 pthread_spin_unlock:
+	_CET_ENDBR
 	movl	4(%esp), %eax
 	movl	$1, (%eax)
 	xorl	%eax, %eax
diff --git a/sysdeps/i386/pthread_spin_trylock.S b/sysdeps/i386/pthread_spin_trylock.S
index dd08d38f8d..b3965a150f 100644
--- a/sysdeps/i386/pthread_spin_trylock.S
+++ b/sysdeps/i386/pthread_spin_trylock.S
@@ -16,6 +16,7 @@
    License along with the GNU C Library; if not, see
    <https://www.gnu.org/licenses/>.  */
 
+#include <sysdep.h>
 #include <pthread-errnos.h>
 
 
@@ -29,6 +30,7 @@
 	.type	pthread_spin_trylock,@function
 	.align	16
 pthread_spin_trylock:
+	_CET_ENDBR
 	movl	4(%esp), %edx
 	movl	$1, %eax
 	xorl	%ecx, %ecx
-- 
2.24.1


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]