unofficial mirror of libc-alpha@sourceware.org
 help / color / mirror / Atom feed
From: "H.J. Lu" <hjl.tools@gmail.com>
To: libc-alpha@sourceware.org
Subject: [PATCH 3/4] i386: Add _CET_ENDBR to assembly files without ENTRY
Date: Tue, 10 Dec 2019 12:47:09 -0800	[thread overview]
Message-ID: <20191210204710.4832-4-hjl.tools@gmail.com> (raw)
In-Reply-To: <20191210204710.4832-1-hjl.tools@gmail.com>

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 ++
 sysdeps/unix/sysv/linux/i386/_exit.S    | 1 +
 5 files changed, 10 insertions(+)

diff --git a/sysdeps/i386/i386-mcount.S b/sysdeps/i386/i386-mcount.S
index 32b2a5f0bf..6575b84a1b 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 62c72b9063..2876a8b1cf 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 d190ca562d..dc412190ae 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 0ec09d8b64..c7f94375a7 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
diff --git a/sysdeps/unix/sysv/linux/i386/_exit.S b/sysdeps/unix/sysv/linux/i386/_exit.S
index d59c127501..a21d5f69b3 100644
--- a/sysdeps/unix/sysv/linux/i386/_exit.S
+++ b/sysdeps/unix/sysv/linux/i386/_exit.S
@@ -21,6 +21,7 @@
 	.type	_exit,@function
 	.global	_exit
 _exit:
+	_CET_ENDBR
 	movl	4(%esp), %ebx
 
 	/* Try the new syscall first.  */
-- 
2.21.0


  parent reply	other threads:[~2019-12-10 20:47 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-10 20:47 [PATCH 0/4] i386: Finish CET support H.J. Lu
2019-12-10 20:47 ` [PATCH 1/4] i386: Don't unnecessarily save and restore EAX, ECX and EDX [BZ# 25262] H.J. Lu
2019-12-10 20:47 ` [PATCH 2/4] i386/sub_n.S: Add a missing _CET_ENDBR to indirect jump target H.J. Lu
2019-12-10 20:47 ` H.J. Lu [this message]
2020-01-07 22:05   ` [PATCH 3/4] i386: Add _CET_ENDBR to assembly files without ENTRY Adhemerval Zanella
2020-01-07 23:38     ` H.J. Lu
2019-12-10 20:47 ` [PATCH 4/4] i386: Enable CET support in ucontext functions H.J. Lu
2019-12-12 12:46 ` [PATCH 0/4] i386: Finish CET support Florian Weimer
2019-12-12 15:57   ` H.J. Lu
2020-01-07 20:43 ` H.J. Lu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/libc/involved.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20191210204710.4832-4-hjl.tools@gmail.com \
    --to=hjl.tools@gmail.com \
    --cc=libc-alpha@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).