diff mbox series

[2/2] glibc: apply proposed patch from upstream instead of revert

Message ID 20220813123848.3647980-1-Martin.Jansa@gmail.com
State Accepted, archived
Commit 2ea82a52dcbb88aa49d336c9dbd464e4116dba74
Headers show
Series glibc: Bump to latest 2.36 branch | expand

Commit Message

Martin Jansa Aug. 13, 2022, 12:38 p.m. UTC
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
 ...lement-a-useful-version-of-_startup_.patch | 128 ------------------
 .../glibc/glibc/0025-startup-Force-O2.patch   |  28 ++++
 meta/recipes-core/glibc/glibc_2.36.bb         |   2 +-
 3 files changed, 29 insertions(+), 129 deletions(-)
 delete mode 100644 meta/recipes-core/glibc/glibc/0025-Revert-Linux-Implement-a-useful-version-of-_startup_.patch
 create mode 100644 meta/recipes-core/glibc/glibc/0025-startup-Force-O2.patch

Comments

Martin Jansa Aug. 15, 2022, 9:17 p.m. UTC | #1
Another version was proposed upstream
https://sourceware.org/bugzilla/attachment.cgi?id=14283

lets wait a bit more on this one.

On Sat, Aug 13, 2022 at 2:39 PM Martin Jansa <martin.jansa@gmail.com> wrote:

> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
> ---
>  ...lement-a-useful-version-of-_startup_.patch | 128 ------------------
>  .../glibc/glibc/0025-startup-Force-O2.patch   |  28 ++++
>  meta/recipes-core/glibc/glibc_2.36.bb         |   2 +-
>  3 files changed, 29 insertions(+), 129 deletions(-)
>  delete mode 100644
> meta/recipes-core/glibc/glibc/0025-Revert-Linux-Implement-a-useful-version-of-_startup_.patch
>  create mode 100644
> meta/recipes-core/glibc/glibc/0025-startup-Force-O2.patch
>
> diff --git
> a/meta/recipes-core/glibc/glibc/0025-Revert-Linux-Implement-a-useful-version-of-_startup_.patch
> b/meta/recipes-core/glibc/glibc/0025-Revert-Linux-Implement-a-useful-version-of-_startup_.patch
> deleted file mode 100644
> index 1982598339..0000000000
> ---
> a/meta/recipes-core/glibc/glibc/0025-Revert-Linux-Implement-a-useful-version-of-_startup_.patch
> +++ /dev/null
> @@ -1,128 +0,0 @@
> -From 18b04419d5984f5c6c89fab5e72fcdd1942491cb Mon Sep 17 00:00:00 2001
> -From: Martin Jansa <Martin.Jansa@gmail.com>
> -Date: Sun, 7 Aug 2022 12:51:48 +0200
> -Subject: [PATCH] Revert "Linux: Implement a useful version of
> _startup_fatal"
> -
> -This reverts commit a2a6bce7d7e52c1c34369a7da62c501cc350bc31.
> -
> -Upstream-Status: Inappropriate [temporary work around]
> -
> -Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
> ----
> - sysdeps/unix/sysv/linux/i386/startup.h | 23 ++++++++++++---
> - sysdeps/unix/sysv/linux/ia64/startup.h | 22 ---------------
> - sysdeps/unix/sysv/linux/startup.h      | 39 --------------------------
> - 3 files changed, 19 insertions(+), 65 deletions(-)
> - delete mode 100644 sysdeps/unix/sysv/linux/ia64/startup.h
> - delete mode 100644 sysdeps/unix/sysv/linux/startup.h
> -
> -diff --git a/sysdeps/unix/sysv/linux/i386/startup.h
> b/sysdeps/unix/sysv/linux/i386/startup.h
> -index 213805d7d2..67c9310f3a 100644
> ---- a/sysdeps/unix/sysv/linux/i386/startup.h
> -+++ b/sysdeps/unix/sysv/linux/i386/startup.h
> -@@ -1,5 +1,5 @@
> - /* Linux/i386 definitions of functions used by static libc main startup.
> --   Copyright (C) 2022 Free Software Foundation, Inc.
> -+   Copyright (C) 2017-2022 Free Software Foundation, Inc.
> -    This file is part of the GNU C Library.
> -
> -    The GNU C Library is free software; you can redistribute it and/or
> -@@ -16,7 +16,22 @@
> -    License along with the GNU C Library; if not, see
> -    <https://www.gnu.org/licenses/>.  */
> -
> --/* Can't use "call *%gs:SYSINFO_OFFSET" during startup.  */
> --#define I386_USE_SYSENTER 0
> -+#if BUILD_PIE_DEFAULT
> -+/* Can't use "call *%gs:SYSINFO_OFFSET" during statup in static PIE.  */
> -+# define I386_USE_SYSENTER 0
> -
> --#include_next <startup.h>
> -+# include <sysdep.h>
> -+# include <abort-instr.h>
> -+
> -+__attribute__ ((__noreturn__))
> -+static inline void
> -+_startup_fatal (const char *message __attribute__ ((unused)))
> -+{
> -+  /* This is only called very early during startup in static PIE.
> -+     FIXME: How can it be improved?  */
> -+  ABORT_INSTRUCTION;
> -+  __builtin_unreachable ();
> -+}
> -+#else
> -+# include_next <startup.h>
> -+#endif
> -diff --git a/sysdeps/unix/sysv/linux/ia64/startup.h
> b/sysdeps/unix/sysv/linux/ia64/startup.h
> -deleted file mode 100644
> -index 77f29f15a2..0000000000
> ---- a/sysdeps/unix/sysv/linux/ia64/startup.h
> -+++ /dev/null
> -@@ -1,22 +0,0 @@
> --/* Linux/ia64 definitions of functions used by static libc main startup.
> --   Copyright (C) 2022 Free Software Foundation, Inc.
> --   This file is part of the GNU C Library.
> --
> --   The GNU C Library is free software; you can redistribute it and/or
> --   modify it under the terms of the GNU Lesser General Public
> --   License as published by the Free Software Foundation; either
> --   version 2.1 of the License, or (at your option) any later version.
> --
> --   The GNU C Library is distributed in the hope that it will be useful,
> --   but WITHOUT ANY WARRANTY; without even the implied warranty of
> --   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> --   Lesser General Public License for more details.
> --
> --   You should have received a copy of the GNU Lesser General Public
> --   License along with the GNU C Library; if not, see
> --   <https://www.gnu.org/licenses/>.  */
> --
> --/* This code is used before the TCB is set up.  */
> --#define IA64_USE_NEW_STUB 0
> --
> --#include_next <startup.h>
> -diff --git a/sysdeps/unix/sysv/linux/startup.h
> b/sysdeps/unix/sysv/linux/startup.h
> -deleted file mode 100644
> -index 39859b404a..0000000000
> ---- a/sysdeps/unix/sysv/linux/startup.h
> -+++ /dev/null
> -@@ -1,39 +0,0 @@
> --/* Linux definitions of functions used by static libc main startup.
> --   Copyright (C) 2017-2022 Free Software Foundation, Inc.
> --   This file is part of the GNU C Library.
> --
> --   The GNU C Library is free software; you can redistribute it and/or
> --   modify it under the terms of the GNU Lesser General Public
> --   License as published by the Free Software Foundation; either
> --   version 2.1 of the License, or (at your option) any later version.
> --
> --   The GNU C Library is distributed in the hope that it will be useful,
> --   but WITHOUT ANY WARRANTY; without even the implied warranty of
> --   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> --   Lesser General Public License for more details.
> --
> --   You should have received a copy of the GNU Lesser General Public
> --   License along with the GNU C Library; if not, see
> --   <https://www.gnu.org/licenses/>.  */
> --
> --#ifdef SHARED
> --# include_next <startup.h>
> --#else
> --# include <sysdep.h>
> --
> --/* Avoid a run-time invocation of strlen.  */
> --#define _startup_fatal(message)                                         \
> --  do                                                                    \
> --    {                                                                   \
> --      size_t __message_length = __builtin_strlen (message);             \
> --      if (! __builtin_constant_p (__message_length))                    \
> --        {                                                               \
> --          extern void _startup_fatal_not_constant (void);               \
> --          _startup_fatal_not_constant ();                               \
> --        }                                                               \
> --      INTERNAL_SYSCALL_CALL (write, STDERR_FILENO, (message),           \
> --                             __message_length);                         \
> --      INTERNAL_SYSCALL_CALL (exit_group, 127);                          \
> --    }                                                                   \
> --  while (0)
> --#endif  /* !SHARED */
> diff --git a/meta/recipes-core/glibc/glibc/0025-startup-Force-O2.patch
> b/meta/recipes-core/glibc/glibc/0025-startup-Force-O2.patch
> new file mode 100644
> index 0000000000..1f3426295a
> --- /dev/null
> +++ b/meta/recipes-core/glibc/glibc/0025-startup-Force-O2.patch
> @@ -0,0 +1,28 @@
> +From 5e635e5dc7d1b21a78f38109d4f43a03bec865c8 Mon Sep 17 00:00:00 2001
> +From: "H.J. Lu" <hjl.tools@gmail.com>
> +Date: Sun, 7 Aug 2022 12:51:48 +0200
> +Subject: [PATCH] startup: Force -O2
> +
> +Upstream-Status: Submitted [
> https://sourceware.org/bugzilla/show_bug.cgi?id=29249]
> +
> +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
> +---
> + sysdeps/unix/sysv/linux/startup.h | 5 +++++
> + 1 file changed, 5 insertions(+)
> +
> +diff --git a/sysdeps/unix/sysv/linux/startup.h
> b/sysdeps/unix/sysv/linux/startup.h
> +index 39859b404a..e1fc1b682d 100644
> +--- a/sysdeps/unix/sysv/linux/startup.h
> ++++ b/sysdeps/unix/sysv/linux/startup.h
> +@@ -21,6 +21,11 @@
> + #else
> + # include <sysdep.h>
> +
> ++# if !defined __OPTIMIZE__ || __OPTIMIZE__ < 2
> ++/* Force to fold strlen.  */
> ++#  pragma GCC optimize(2)
> ++# endif
> ++
> + /* Avoid a run-time invocation of strlen.  */
> + #define _startup_fatal(message)                                         \
> +   do                                                                    \
> diff --git a/meta/recipes-core/glibc/glibc_2.36.bb
> b/meta/recipes-core/glibc/glibc_2.36.bb
> index 6ccb392f09..1cfa8101ef 100644
> --- a/meta/recipes-core/glibc/glibc_2.36.bb
> +++ b/meta/recipes-core/glibc/glibc_2.36.bb
> @@ -50,7 +50,7 @@ SRC_URI =
> "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \
>
> file://0022-tzselect.ksh-Use-bin-sh-default-shell-interpreter.patch \
>
> file://0023-fix-create-thread-failed-in-unprivileged-process-BZ-.patch \
>
> file://0024-Avoid-hardcoded-build-time-paths-in-the-output-binar.patch \
> -
>  file://0025-Revert-Linux-Implement-a-useful-version-of-_startup_.patch \
> +           file://0025-startup-Force-O2.patch \
>  "
>  S = "${WORKDIR}/git"
>  B = "${WORKDIR}/build-${TARGET_SYS}"
> --
> 2.37.2
>
>
diff mbox series

Patch

diff --git a/meta/recipes-core/glibc/glibc/0025-Revert-Linux-Implement-a-useful-version-of-_startup_.patch b/meta/recipes-core/glibc/glibc/0025-Revert-Linux-Implement-a-useful-version-of-_startup_.patch
deleted file mode 100644
index 1982598339..0000000000
--- a/meta/recipes-core/glibc/glibc/0025-Revert-Linux-Implement-a-useful-version-of-_startup_.patch
+++ /dev/null
@@ -1,128 +0,0 @@ 
-From 18b04419d5984f5c6c89fab5e72fcdd1942491cb Mon Sep 17 00:00:00 2001
-From: Martin Jansa <Martin.Jansa@gmail.com>
-Date: Sun, 7 Aug 2022 12:51:48 +0200
-Subject: [PATCH] Revert "Linux: Implement a useful version of _startup_fatal"
-
-This reverts commit a2a6bce7d7e52c1c34369a7da62c501cc350bc31.
-
-Upstream-Status: Inappropriate [temporary work around]
-
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
----
- sysdeps/unix/sysv/linux/i386/startup.h | 23 ++++++++++++---
- sysdeps/unix/sysv/linux/ia64/startup.h | 22 ---------------
- sysdeps/unix/sysv/linux/startup.h      | 39 --------------------------
- 3 files changed, 19 insertions(+), 65 deletions(-)
- delete mode 100644 sysdeps/unix/sysv/linux/ia64/startup.h
- delete mode 100644 sysdeps/unix/sysv/linux/startup.h
-
-diff --git a/sysdeps/unix/sysv/linux/i386/startup.h b/sysdeps/unix/sysv/linux/i386/startup.h
-index 213805d7d2..67c9310f3a 100644
---- a/sysdeps/unix/sysv/linux/i386/startup.h
-+++ b/sysdeps/unix/sysv/linux/i386/startup.h
-@@ -1,5 +1,5 @@
- /* Linux/i386 definitions of functions used by static libc main startup.
--   Copyright (C) 2022 Free Software Foundation, Inc.
-+   Copyright (C) 2017-2022 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
- 
-    The GNU C Library is free software; you can redistribute it and/or
-@@ -16,7 +16,22 @@
-    License along with the GNU C Library; if not, see
-    <https://www.gnu.org/licenses/>.  */
- 
--/* Can't use "call *%gs:SYSINFO_OFFSET" during startup.  */
--#define I386_USE_SYSENTER 0
-+#if BUILD_PIE_DEFAULT
-+/* Can't use "call *%gs:SYSINFO_OFFSET" during statup in static PIE.  */
-+# define I386_USE_SYSENTER 0
- 
--#include_next <startup.h>
-+# include <sysdep.h>
-+# include <abort-instr.h>
-+
-+__attribute__ ((__noreturn__))
-+static inline void
-+_startup_fatal (const char *message __attribute__ ((unused)))
-+{
-+  /* This is only called very early during startup in static PIE.
-+     FIXME: How can it be improved?  */
-+  ABORT_INSTRUCTION;
-+  __builtin_unreachable ();
-+}
-+#else
-+# include_next <startup.h>
-+#endif
-diff --git a/sysdeps/unix/sysv/linux/ia64/startup.h b/sysdeps/unix/sysv/linux/ia64/startup.h
-deleted file mode 100644
-index 77f29f15a2..0000000000
---- a/sysdeps/unix/sysv/linux/ia64/startup.h
-+++ /dev/null
-@@ -1,22 +0,0 @@
--/* Linux/ia64 definitions of functions used by static libc main startup.
--   Copyright (C) 2022 Free Software Foundation, Inc.
--   This file is part of the GNU C Library.
--
--   The GNU C Library is free software; you can redistribute it and/or
--   modify it under the terms of the GNU Lesser General Public
--   License as published by the Free Software Foundation; either
--   version 2.1 of the License, or (at your option) any later version.
--
--   The GNU C Library is distributed in the hope that it will be useful,
--   but WITHOUT ANY WARRANTY; without even the implied warranty of
--   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
--   Lesser General Public License for more details.
--
--   You should have received a copy of the GNU Lesser General Public
--   License along with the GNU C Library; if not, see
--   <https://www.gnu.org/licenses/>.  */
--
--/* This code is used before the TCB is set up.  */
--#define IA64_USE_NEW_STUB 0
--
--#include_next <startup.h>
-diff --git a/sysdeps/unix/sysv/linux/startup.h b/sysdeps/unix/sysv/linux/startup.h
-deleted file mode 100644
-index 39859b404a..0000000000
---- a/sysdeps/unix/sysv/linux/startup.h
-+++ /dev/null
-@@ -1,39 +0,0 @@
--/* Linux definitions of functions used by static libc main startup.
--   Copyright (C) 2017-2022 Free Software Foundation, Inc.
--   This file is part of the GNU C Library.
--
--   The GNU C Library is free software; you can redistribute it and/or
--   modify it under the terms of the GNU Lesser General Public
--   License as published by the Free Software Foundation; either
--   version 2.1 of the License, or (at your option) any later version.
--
--   The GNU C Library is distributed in the hope that it will be useful,
--   but WITHOUT ANY WARRANTY; without even the implied warranty of
--   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
--   Lesser General Public License for more details.
--
--   You should have received a copy of the GNU Lesser General Public
--   License along with the GNU C Library; if not, see
--   <https://www.gnu.org/licenses/>.  */
--
--#ifdef SHARED
--# include_next <startup.h>
--#else
--# include <sysdep.h>
--
--/* Avoid a run-time invocation of strlen.  */
--#define _startup_fatal(message)                                         \
--  do                                                                    \
--    {                                                                   \
--      size_t __message_length = __builtin_strlen (message);             \
--      if (! __builtin_constant_p (__message_length))                    \
--        {                                                               \
--          extern void _startup_fatal_not_constant (void);               \
--          _startup_fatal_not_constant ();                               \
--        }                                                               \
--      INTERNAL_SYSCALL_CALL (write, STDERR_FILENO, (message),           \
--                             __message_length);                         \
--      INTERNAL_SYSCALL_CALL (exit_group, 127);                          \
--    }                                                                   \
--  while (0)
--#endif  /* !SHARED */
diff --git a/meta/recipes-core/glibc/glibc/0025-startup-Force-O2.patch b/meta/recipes-core/glibc/glibc/0025-startup-Force-O2.patch
new file mode 100644
index 0000000000..1f3426295a
--- /dev/null
+++ b/meta/recipes-core/glibc/glibc/0025-startup-Force-O2.patch
@@ -0,0 +1,28 @@ 
+From 5e635e5dc7d1b21a78f38109d4f43a03bec865c8 Mon Sep 17 00:00:00 2001
+From: "H.J. Lu" <hjl.tools@gmail.com>
+Date: Sun, 7 Aug 2022 12:51:48 +0200
+Subject: [PATCH] startup: Force -O2
+
+Upstream-Status: Submitted [https://sourceware.org/bugzilla/show_bug.cgi?id=29249]
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ sysdeps/unix/sysv/linux/startup.h | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/sysdeps/unix/sysv/linux/startup.h b/sysdeps/unix/sysv/linux/startup.h
+index 39859b404a..e1fc1b682d 100644
+--- a/sysdeps/unix/sysv/linux/startup.h
++++ b/sysdeps/unix/sysv/linux/startup.h
+@@ -21,6 +21,11 @@
+ #else
+ # include <sysdep.h>
+ 
++# if !defined __OPTIMIZE__ || __OPTIMIZE__ < 2
++/* Force to fold strlen.  */
++#  pragma GCC optimize(2)
++# endif
++
+ /* Avoid a run-time invocation of strlen.  */
+ #define _startup_fatal(message)                                         \
+   do                                                                    \
diff --git a/meta/recipes-core/glibc/glibc_2.36.bb b/meta/recipes-core/glibc/glibc_2.36.bb
index 6ccb392f09..1cfa8101ef 100644
--- a/meta/recipes-core/glibc/glibc_2.36.bb
+++ b/meta/recipes-core/glibc/glibc_2.36.bb
@@ -50,7 +50,7 @@  SRC_URI =  "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \
            file://0022-tzselect.ksh-Use-bin-sh-default-shell-interpreter.patch \
            file://0023-fix-create-thread-failed-in-unprivileged-process-BZ-.patch \
            file://0024-Avoid-hardcoded-build-time-paths-in-the-output-binar.patch \
-           file://0025-Revert-Linux-Implement-a-useful-version-of-_startup_.patch \
+           file://0025-startup-Force-O2.patch \
 "
 S = "${WORKDIR}/git"
 B = "${WORKDIR}/build-${TARGET_SYS}"