This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH 00/23] CET: Prepare for CET enabling
- From: "H.J. Lu" <hjl dot tools at gmail dot com>
- To: libc-alpha at sourceware dot org
- Cc: Carlos O'Donell <carlos at redhat dot com>
- Date: Tue, 8 May 2018 13:39:58 -0700
- Subject: [PATCH 00/23] CET: Prepare for CET enabling
This is the first set of patches to enable CET, excluding changes which
use the new CET system calls. The complete set of patches is available
on hjl/cet/master branch at:
https://github.com/hjl-tools/glibc/tree/hjl/cet/master
I will submit the second set of patches with the new CET system calls,
which are on Linux kernel CET branch:
https://github.com/yyu168/linux_cet
later.
H.J. Lu (23):
x86: Add feature_1 to tcbhead_t [BZ #22563]
x86: Support shadow stack pointer in setjmp/longjmp
x86: Support IBT and SHSTK in Intel CET [BZ #21598]
x86: Add _CET_ENDBR to functions in crti.S
x86: Add _CET_ENDBR to functions in dl-tlsdesc.S
x86-64: Add _CET_ENDBR to STRCMP_SSE42
i386: Add _CET_ENDBR to indirect jump targets in add_n.S/sub_n.S
x86: Update vfork to pop shadow stack
x86_64: Use _CET_NOTRACK in strcmp.S
x86-64: Use _CET_NOTRACK in strcpy-sse2-unaligned.S
x86-64: Use _CET_NOTRACK in strcmp-sse42.S
x86-64: Use _CET_NOTRACK in memcpy-ssse3-back.S
x86-64: Use _CET_NOTRACK in memcmp-sse4.S
x86-64: Use _CET_NOTRACK in memcpy-ssse3.S
i386: Use _CET_NOTRACK in i686/memcmp.S
i386: Use _CET_NOTRACK in memset-sse2.S
i386: Use _CET_NOTRACK in memcmp-sse4.S
i386: Use _CET_NOTRACK in memcpy-ssse3-rep.S
i386: Use _CET_NOTRACK in memcpy-ssse3.S
i386: Use _CET_NOTRACK in strcpy-sse2.S
i386: Use _CET_NOTRACK in strcat-sse2.S
i386: Use _CET_NOTRACK in memset-sse2-rep.S
x86-64: Add endbr64 to tst-quadmod[12].S
config.h.in | 4 +
configure | 11 ++
configure.ac | 6 +
elf/dl-load.c | 61 +++---
elf/dl-open.c | 4 +
elf/rtld.c | 12 ++
nptl/pthread_create.c | 5 +
sysdeps/i386/__longjmp.S | 78 ++++++++
sysdeps/i386/add_n.S | 27 ++-
sysdeps/i386/bsd-_setjmp.S | 21 ++
sysdeps/i386/bsd-setjmp.S | 21 ++
sysdeps/i386/crti.S | 2 +
sysdeps/i386/dl-tlsdesc.S | 7 +
sysdeps/i386/dl-trampoline.S | 72 +++++++
sysdeps/i386/i686/add_n.S | 27 ++-
sysdeps/i386/i686/memcmp.S | 4 +-
sysdeps/i386/i686/multiarch/memcmp-sse4.S | 4 +-
.../i386/i686/multiarch/memcpy-ssse3-rep.S | 8 +-
sysdeps/i386/i686/multiarch/memcpy-ssse3.S | 4 +-
sysdeps/i386/i686/multiarch/memset-sse2-rep.S | 4 +-
sysdeps/i386/i686/multiarch/memset-sse2.S | 4 +-
sysdeps/i386/i686/multiarch/strcat-sse2.S | 4 +-
sysdeps/i386/i686/multiarch/strcpy-sse2.S | 4 +-
sysdeps/i386/nptl/tcb-offsets.sym | 1 +
sysdeps/i386/nptl/tls.h | 4 +
sysdeps/i386/setjmp.S | 21 ++
sysdeps/i386/sub_n.S | 26 ++-
.../unix/sysv/linux/i386/____longjmp_chk.S | 40 ++++
sysdeps/unix/sysv/linux/i386/dl-cet.c | 67 +++++++
sysdeps/unix/sysv/linux/i386/dl-machine.h | 23 +++
sysdeps/unix/sysv/linux/i386/vfork.S | 54 +++++
sysdeps/unix/sysv/linux/x86/Makefile | 43 +++-
sysdeps/unix/sysv/linux/x86/check-cet.awk | 53 +++++
sysdeps/unix/sysv/linux/x86/configure | 72 +++++++
sysdeps/unix/sysv/linux/x86/configure.ac | 48 +++++
sysdeps/unix/sysv/linux/x86/dl-cet.c | 186 ++++++++++++++++++
sysdeps/unix/sysv/linux/x86/dl-cet.h | 125 ++++++++++++
sysdeps/unix/sysv/linux/x86/dl-procruntime.c | 57 ++++++
sysdeps/unix/sysv/linux/x86/ldsodefs.h | 29 +++
sysdeps/unix/sysv/linux/x86/link_map.h | 26 +++
sysdeps/unix/sysv/linux/x86/pthreaddef.h | 24 +++
.../unix/sysv/linux/x86_64/____longjmp_chk.S | 41 ++++
sysdeps/unix/sysv/linux/x86_64/dl-machine.h | 27 +++
sysdeps/unix/sysv/linux/x86_64/vfork.S | 35 ++++
sysdeps/x86/Makefile | 1 +
sysdeps/x86/cpu-features.h | 5 +
sysdeps/x86/jmp_buf-ssp.sym | 1 +
sysdeps/x86/sysdep.h | 8 +
sysdeps/x86_64/__longjmp.S | 45 +++++
sysdeps/x86_64/crti.S | 2 +
sysdeps/x86_64/dl-tlsdesc.S | 5 +
sysdeps/x86_64/dl-trampoline.h | 2 +
sysdeps/x86_64/multiarch/memcmp-sse4.S | 2 +-
sysdeps/x86_64/multiarch/memcpy-ssse3-back.S | 6 +-
sysdeps/x86_64/multiarch/memcpy-ssse3.S | 124 ++++++------
sysdeps/x86_64/multiarch/strcmp-sse42.S | 3 +-
.../x86_64/multiarch/strcpy-sse2-unaligned.S | 2 +-
sysdeps/x86_64/nptl/tcb-offsets.sym | 1 +
sysdeps/x86_64/nptl/tls.h | 5 +-
sysdeps/x86_64/setjmp.S | 21 ++
sysdeps/x86_64/strcmp.S | 2 +-
sysdeps/x86_64/tst-quadmod1.S | 6 +
sysdeps/x86_64/tst-quadmod2.S | 6 +
63 files changed, 1526 insertions(+), 117 deletions(-)
create mode 100644 sysdeps/unix/sysv/linux/i386/dl-cet.c
create mode 100644 sysdeps/unix/sysv/linux/i386/dl-machine.h
create mode 100644 sysdeps/unix/sysv/linux/x86/check-cet.awk
create mode 100644 sysdeps/unix/sysv/linux/x86/configure
create mode 100644 sysdeps/unix/sysv/linux/x86/configure.ac
create mode 100644 sysdeps/unix/sysv/linux/x86/dl-cet.c
create mode 100644 sysdeps/unix/sysv/linux/x86/dl-cet.h
create mode 100644 sysdeps/unix/sysv/linux/x86/dl-procruntime.c
create mode 100644 sysdeps/unix/sysv/linux/x86/ldsodefs.h
create mode 100644 sysdeps/unix/sysv/linux/x86/link_map.h
create mode 100644 sysdeps/unix/sysv/linux/x86/pthreaddef.h
create mode 100644 sysdeps/unix/sysv/linux/x86_64/dl-machine.h
create mode 100644 sysdeps/x86/jmp_buf-ssp.sym
--
2.17.0