From patchwork Wed Jan 8 16:15:33 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "H.J. Lu" X-Patchwork-Id: 37262 Received: (qmail 11111 invoked by alias); 8 Jan 2020 16:15:44 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 11024 invoked by uid 89); 8 Jan 2020 16:15:43 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-25.4 required=5.0 tests=BAYES_00, FREEMAIL_FROM, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_SHORT, KAM_STOCKGEN, RCVD_IN_DNSWL_NONE, SPF_PASS autolearn=ham version=3.3.1 spammy=HX-Languages-Length:2486, 1512 X-HELO: mail-pj1-f65.google.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=z+Qi9m9qPs7GOCTBsFQdPct2cakFncJRbNjq3/g82H4=; b=ZeppYiHUoqzQh6GOAm5URh6tsEPZdUKFMDXO9zClanszqyHNAhsfi7jW12Z3Xz+7En iSZP+mRYQgD3zn7SrWdPxeRzW3wGHnYbekYiZVnqAm3JMZJhLXllKTxzAcbuXHmFN53A 3wHQS817mkVfYEBOXx4kOcLrn5iFpiT90bm/OxZpBFkjejKpxmxSo1w3Y7J1q0rTLMmC aZczKaghZrL8rSbFvkocWrw6OPKlvu3gR0IYrRBUTWmIdqpPYG29r6N8dNfIJcFxuJIu z0jt//4CX7lO1Yctq7KVVIapUbHyGjjKGg6H67mCc/ofHFKaYqFKnviM2Zgk/qBRimY8 12DQ== Return-Path: From: "H.J. Lu" To: libc-alpha@sourceware.org Subject: V2 [PATCH 3/5] i386: Add _CET_ENDBR to assembly files without ENTRY Date: Wed, 8 Jan 2020 08:15:33 -0800 Message-Id: <20200108161535.6141-4-hjl.tools@gmail.com> In-Reply-To: <20200108161535.6141-1-hjl.tools@gmail.com> References: <20200108161535.6141-1-hjl.tools@gmail.com> MIME-Version: 1.0 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 . */ +#include #include .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 . */ +#include + .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 . */ +#include #include @@ -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