From 44c867d7fbbc6224ca98e07061a24418fab29bf8 Mon Sep 17 00:00:00 2001 From: Martin Jansa Date: Sat, 13 Aug 2022 14:38:48 +0200 Subject: glibc: apply proposed patch from upstream instead of revert (From OE-Core rev: 2ea82a52dcbb88aa49d336c9dbd464e4116dba74) Signed-off-by: Martin Jansa Signed-off-by: Alexandre Belloni Signed-off-by: Richard Purdie --- ...x-Implement-a-useful-version-of-_startup_.patch | 128 --------------------- .../glibc/glibc/0025-startup-Force-O2.patch | 28 +++++ 2 files changed, 28 insertions(+), 128 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 (limited to 'meta/recipes-core/glibc/glibc') 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 -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 ---- - 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 - . */ - --/* 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 -+# include -+# include -+ -+__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 -+#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 -- . */ -- --/* This code is used before the TCB is set up. */ --#define IA64_USE_NEW_STUB 0 -- --#include_next -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 -- . */ -- --#ifdef SHARED --# include_next --#else --# include -- --/* 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" +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 +--- + 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 + ++# 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 \ -- cgit v1.2.3-54-g00ecf