forked from pool/glibc
This commit is contained in:
parent
c22496d4ba
commit
37f9b64fc4
@ -1,4 +1,4 @@
|
|||||||
From e3a1c61d1a69c66a5635bb23318531d5ef651e15 Mon Sep 17 00:00:00 2001
|
From 17a5177cbb228f22ef3e00d4bb66af71724a6d07 Mon Sep 17 00:00:00 2001
|
||||||
From: Giuliano Belinassi <gbelinassi@suse.de>
|
From: Giuliano Belinassi <gbelinassi@suse.de>
|
||||||
Date: Wed, 24 May 2023 18:03:15 -0300
|
Date: Wed, 24 May 2023 18:03:15 -0300
|
||||||
Subject: [PATCH] Add Userspace Livepatch prologue into ASM functions
|
Subject: [PATCH] Add Userspace Livepatch prologue into ASM functions
|
||||||
@ -15,17 +15,17 @@ Signed-off-by: Giuliano Belinassi <gbelinassi@suse.de>
|
|||||||
Makeconfig | 5 +++++
|
Makeconfig | 5 +++++
|
||||||
config.h.in | 3 +++
|
config.h.in | 3 +++
|
||||||
config.make.in | 1 +
|
config.make.in | 1 +
|
||||||
configure | 20 ++++++++++++++++++
|
configure | 20 ++++++++++++++++++++
|
||||||
configure.ac | 13 ++++++++++++
|
configure.ac | 13 +++++++++++++
|
||||||
sysdeps/x86/sysdep.h | 22 ++++++++++++++++----
|
sysdeps/x86/sysdep.h | 22 ++++++++++++++++++----
|
||||||
sysdeps/x86_64/multiarch/strcmp-avx2.S | 5 +----
|
sysdeps/x86_64/multiarch/strcmp-avx2.S | 5 +----
|
||||||
sysdeps/x86_64/multiarch/strcmp-evex.S | 5 +----
|
sysdeps/x86_64/multiarch/strcmp-evex.S | 5 +----
|
||||||
sysdeps/x86_64/multiarch/strcmp-sse4_2.S | 5 +----
|
sysdeps/x86_64/multiarch/strcmp-sse4_2.S | 5 +----
|
||||||
sysdeps/x86_64/sysdep.h | 26 ++++++++++++++++++++++++
|
sysdeps/x86_64/sysdep.h | 13 +++++++++++++
|
||||||
10 files changed, 89 insertions(+), 16 deletions(-)
|
10 files changed, 76 insertions(+), 16 deletions(-)
|
||||||
|
|
||||||
diff --git a/Makeconfig b/Makeconfig
|
diff --git a/Makeconfig b/Makeconfig
|
||||||
index 2514db35f6..37df019873 100644
|
index 2fda4af5f7..52a79bc0c0 100644
|
||||||
--- a/Makeconfig
|
--- a/Makeconfig
|
||||||
+++ b/Makeconfig
|
+++ b/Makeconfig
|
||||||
@@ -961,6 +961,11 @@ endif # $(+cflags) == ""
|
@@ -961,6 +961,11 @@ endif # $(+cflags) == ""
|
||||||
@ -41,7 +41,7 @@ index 2514db35f6..37df019873 100644
|
|||||||
# used to compile and will be installed. Each can also contain an
|
# used to compile and will be installed. Each can also contain an
|
||||||
# include/ subdirectory, whose header files will be used to compile
|
# include/ subdirectory, whose header files will be used to compile
|
||||||
diff --git a/config.h.in b/config.h.in
|
diff --git a/config.h.in b/config.h.in
|
||||||
index 44a34072a4..430627dcaf 100644
|
index 43d32518ab..32fc79a357 100644
|
||||||
--- a/config.h.in
|
--- a/config.h.in
|
||||||
+++ b/config.h.in
|
+++ b/config.h.in
|
||||||
@@ -199,6 +199,9 @@
|
@@ -199,6 +199,9 @@
|
||||||
@ -55,10 +55,10 @@ index 44a34072a4..430627dcaf 100644
|
|||||||
#define TIMEOUTFACTOR 1
|
#define TIMEOUTFACTOR 1
|
||||||
|
|
||||||
diff --git a/config.make.in b/config.make.in
|
diff --git a/config.make.in b/config.make.in
|
||||||
index 4afd37feaf..84d957cb1c 100644
|
index d7c416cbea..c6f6909d68 100644
|
||||||
--- a/config.make.in
|
--- a/config.make.in
|
||||||
+++ b/config.make.in
|
+++ b/config.make.in
|
||||||
@@ -83,6 +83,7 @@ nss-crypt = @libc_cv_nss_crypt@
|
@@ -86,6 +86,7 @@ nss-crypt = @libc_cv_nss_crypt@
|
||||||
static-nss-crypt = @libc_cv_static_nss_crypt@
|
static-nss-crypt = @libc_cv_static_nss_crypt@
|
||||||
|
|
||||||
# Configuration options.
|
# Configuration options.
|
||||||
@ -67,7 +67,7 @@ index 4afd37feaf..84d957cb1c 100644
|
|||||||
build-profile = @profile@
|
build-profile = @profile@
|
||||||
build-static-nss = @static_nss@
|
build-static-nss = @static_nss@
|
||||||
diff --git a/configure b/configure
|
diff --git a/configure b/configure
|
||||||
index f84040644b..490800c75c 100755
|
index efb891456a..4030ccf701 100755
|
||||||
--- a/configure
|
--- a/configure
|
||||||
+++ b/configure
|
+++ b/configure
|
||||||
@@ -591,6 +591,7 @@ LIBOBJS
|
@@ -591,6 +591,7 @@ LIBOBJS
|
||||||
@ -78,7 +78,7 @@ index f84040644b..490800c75c 100755
|
|||||||
mach_interface_list
|
mach_interface_list
|
||||||
DEFINES
|
DEFINES
|
||||||
static_nss
|
static_nss
|
||||||
@@ -783,6 +784,7 @@ enable_mathvec
|
@@ -789,6 +790,7 @@ enable_mathvec
|
||||||
enable_cet
|
enable_cet
|
||||||
enable_scv
|
enable_scv
|
||||||
with_cpu
|
with_cpu
|
||||||
@ -86,7 +86,7 @@ index f84040644b..490800c75c 100755
|
|||||||
'
|
'
|
||||||
ac_precious_vars='build_alias
|
ac_precious_vars='build_alias
|
||||||
host_alias
|
host_alias
|
||||||
@@ -1452,6 +1454,8 @@ Optional Features:
|
@@ -1462,6 +1464,8 @@ Optional Features:
|
||||||
(CET), x86 only
|
(CET), x86 only
|
||||||
--disable-scv syscalls will not use scv instruction, even if the
|
--disable-scv syscalls will not use scv instruction, even if the
|
||||||
kernel supports it, powerpc only
|
kernel supports it, powerpc only
|
||||||
@ -95,7 +95,7 @@ index f84040644b..490800c75c 100755
|
|||||||
|
|
||||||
Optional Packages:
|
Optional Packages:
|
||||||
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
|
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
|
||||||
@@ -6708,6 +6712,22 @@ libc_cv_multidir=`${CC-cc} $CFLAGS $CPPFLAGS -print-multi-directory`
|
@@ -6751,6 +6755,22 @@ libc_cv_multidir=`${CC-cc} $CFLAGS $CPPFLAGS -print-multi-directory`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -119,10 +119,10 @@ index f84040644b..490800c75c 100755
|
|||||||
RELEASE=`sed -n -e 's/^#define RELEASE "\([^"]*\)"/\1/p' < $srcdir/version.h`
|
RELEASE=`sed -n -e 's/^#define RELEASE "\([^"]*\)"/\1/p' < $srcdir/version.h`
|
||||||
|
|
||||||
diff --git a/configure.ac b/configure.ac
|
diff --git a/configure.ac b/configure.ac
|
||||||
index 88df3e5eed..1c2983de75 100644
|
index 011844a3d4..26c1a78009 100644
|
||||||
--- a/configure.ac
|
--- a/configure.ac
|
||||||
+++ b/configure.ac
|
+++ b/configure.ac
|
||||||
@@ -1803,6 +1803,19 @@ AC_SUBST(DEFINES)
|
@@ -1827,6 +1827,19 @@ AC_SUBST(DEFINES)
|
||||||
dnl See sysdeps/mach/configure.ac for this variable.
|
dnl See sysdeps/mach/configure.ac for this variable.
|
||||||
AC_SUBST(mach_interface_list)
|
AC_SUBST(mach_interface_list)
|
||||||
|
|
||||||
@ -229,10 +229,10 @@ index f93c34465e..f96f66d54c 100644
|
|||||||
/*
|
/*
|
||||||
* This implementation uses SSE to compare up to 16 bytes at a time.
|
* This implementation uses SSE to compare up to 16 bytes at a time.
|
||||||
diff --git a/sysdeps/x86_64/sysdep.h b/sysdeps/x86_64/sysdep.h
|
diff --git a/sysdeps/x86_64/sysdep.h b/sysdeps/x86_64/sysdep.h
|
||||||
index 6ca169573d..a4265a3ef4 100644
|
index 6ca169573d..c18f0ef914 100644
|
||||||
--- a/sysdeps/x86_64/sysdep.h
|
--- a/sysdeps/x86_64/sysdep.h
|
||||||
+++ b/sysdeps/x86_64/sysdep.h
|
+++ b/sysdeps/x86_64/sysdep.h
|
||||||
@@ -24,6 +24,32 @@
|
@@ -24,6 +24,19 @@
|
||||||
|
|
||||||
#ifdef __ASSEMBLER__
|
#ifdef __ASSEMBLER__
|
||||||
|
|
||||||
@ -240,24 +240,11 @@ index 6ca169573d..a4265a3ef4 100644
|
|||||||
+ prologue of all functions. This works for C functions. For functions
|
+ prologue of all functions. This works for C functions. For functions
|
||||||
+ written in ASM, the way we do this is by adding this prologue manually. */
|
+ written in ASM, the way we do this is by adding this prologue manually. */
|
||||||
+
|
+
|
||||||
+#if ENABLE_USERSPACE_LIVEPATCH == 1
|
+#if ENABLE_USERSPACE_LIVEPATCH
|
||||||
+# undef ULP_PRE_PROLOGUE
|
+# undef ULP_PRE_PROLOGUE
|
||||||
+# undef ULP_POST_PROLOGUE
|
+# undef ULP_POST_PROLOGUE
|
||||||
+# define ULP_PRE_PROLOGUE \
|
+# define ULP_PRE_PROLOGUE \
|
||||||
+ nop; \
|
+ .rept 14; nop; .endr
|
||||||
+ nop; \
|
|
||||||
+ nop; \
|
|
||||||
+ nop; \
|
|
||||||
+ nop; \
|
|
||||||
+ nop; \
|
|
||||||
+ nop; \
|
|
||||||
+ nop; \
|
|
||||||
+ nop; \
|
|
||||||
+ nop; \
|
|
||||||
+ nop; \
|
|
||||||
+ nop; \
|
|
||||||
+ nop; \
|
|
||||||
+ nop;
|
|
||||||
+# define ULP_POST_PROLOGUE \
|
+# define ULP_POST_PROLOGUE \
|
||||||
+ xchg %ax, %ax
|
+ xchg %ax, %ax
|
||||||
+#endif
|
+#endif
|
||||||
@ -266,5 +253,5 @@ index 6ca169573d..a4265a3ef4 100644
|
|||||||
|
|
||||||
/* This macro is for setting proper CFI with DW_CFA_expression describing
|
/* This macro is for setting proper CFI with DW_CFA_expression describing
|
||||||
--
|
--
|
||||||
2.39.0
|
2.40.1
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user