diff --git a/glibc-swbz27087.patch b/glibc-swbz27087.patch deleted file mode 100644 index 22dbee9..0000000 --- a/glibc-swbz27087.patch +++ /dev/null @@ -1,321 +0,0 @@ -Temporary patch to fix Clang incompatibility before upstream commit. - -Author: Tulio Magno Quites Machado Filho -Date: Thu Jun 30 19:05:43 2022 -0300 - - Apply asm redirections in stdio.h before first use [BZ #27087] - - Changes since v1: - - Removed the duplicated inclusion of bits/floatn.h. - - I plan to backport this fix to at least glibc 2.35. - -diff --git a/include/bits/stdio2-dec.h b/include/bits/stdio2-dec.h -new file mode 100644 -index 0000000000000000..4d74e4bf82ceb475 ---- /dev/null -+++ b/include/bits/stdio2-dec.h -@@ -0,0 +1 @@ -+#include -diff --git a/libio/Makefile b/libio/Makefile -index e97387743fefc651..13ca515fd9685416 100644 ---- a/libio/Makefile -+++ b/libio/Makefile -@@ -23,7 +23,7 @@ subdir := libio - include ../Makeconfig - - headers := stdio.h \ -- bits/stdio.h bits/stdio2.h bits/stdio-ldbl.h \ -+ bits/stdio.h bits/stdio2.h bits/stdio2-dec.h bits/stdio-ldbl.h \ - bits/types/FILE.h bits/types/__FILE.h bits/types/struct_FILE.h \ - bits/types/__fpos_t.h bits/types/__fpos64_t.h \ - bits/types/cookie_io_functions_t.h -diff --git a/libio/bits/stdio2-dec.h b/libio/bits/stdio2-dec.h -new file mode 100644 -index 0000000000000000..80ab10bccf50fdfd ---- /dev/null -+++ b/libio/bits/stdio2-dec.h -@@ -0,0 +1,110 @@ -+/* Checking macros for stdio functions. Declarations only. -+ Copyright (C) 2004-2021 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 -+ . */ -+ -+#ifndef _BITS_STDIO2_DEC_H -+#define _BITS_STDIO2_DEC_H 1 -+ -+#ifndef _STDIO_H -+# error "Never include directly; use instead." -+#endif -+ -+extern int __sprintf_chk (char *__restrict __s, int __flag, size_t __slen, -+ const char *__restrict __format, ...) __THROW -+ __attr_access ((__write_only__, 1, 3)); -+extern int __vsprintf_chk (char *__restrict __s, int __flag, size_t __slen, -+ const char *__restrict __format, -+ __gnuc_va_list __ap) __THROW -+ __attr_access ((__write_only__, 1, 3)); -+ -+#if defined __USE_ISOC99 || defined __USE_UNIX98 -+ -+extern int __snprintf_chk (char *__restrict __s, size_t __n, int __flag, -+ size_t __slen, const char *__restrict __format, -+ ...) __THROW -+ __attr_access ((__write_only__, 1, 2)); -+extern int __vsnprintf_chk (char *__restrict __s, size_t __n, int __flag, -+ size_t __slen, const char *__restrict __format, -+ __gnuc_va_list __ap) __THROW; -+ -+#endif -+ -+#if __USE_FORTIFY_LEVEL > 1 -+ -+extern int __fprintf_chk (FILE *__restrict __stream, int __flag, -+ const char *__restrict __format, ...); -+extern int __printf_chk (int __flag, const char *__restrict __format, ...); -+extern int __vfprintf_chk (FILE *__restrict __stream, int __flag, -+ const char *__restrict __format, __gnuc_va_list __ap); -+extern int __vprintf_chk (int __flag, const char *__restrict __format, -+ __gnuc_va_list __ap); -+ -+# ifdef __USE_XOPEN2K8 -+extern int __dprintf_chk (int __fd, int __flag, const char *__restrict __fmt, -+ ...) __attribute__ ((__format__ (__printf__, 3, 4))); -+extern int __vdprintf_chk (int __fd, int __flag, -+ const char *__restrict __fmt, __gnuc_va_list __arg) -+ __attribute__ ((__format__ (__printf__, 3, 0))); -+# endif -+ -+# ifdef __USE_GNU -+ -+extern int __asprintf_chk (char **__restrict __ptr, int __flag, -+ const char *__restrict __fmt, ...) -+ __THROW __attribute__ ((__format__ (__printf__, 3, 4))) __wur; -+extern int __vasprintf_chk (char **__restrict __ptr, int __flag, -+ const char *__restrict __fmt, __gnuc_va_list __arg) -+ __THROW __attribute__ ((__format__ (__printf__, 3, 0))) __wur; -+extern int __obstack_printf_chk (struct obstack *__restrict __obstack, -+ int __flag, const char *__restrict __format, -+ ...) -+ __THROW __attribute__ ((__format__ (__printf__, 3, 4))); -+extern int __obstack_vprintf_chk (struct obstack *__restrict __obstack, -+ int __flag, -+ const char *__restrict __format, -+ __gnuc_va_list __args) -+ __THROW __attribute__ ((__format__ (__printf__, 3, 0))); -+ -+# endif -+#endif -+ -+#if __GLIBC_USE (DEPRECATED_GETS) -+extern char *__gets_chk (char *__str, size_t) __wur; -+#endif -+ -+extern char *__fgets_chk (char *__restrict __s, size_t __size, int __n, -+ FILE *__restrict __stream) -+ __wur __attr_access ((__write_only__, 1, 3)); -+ -+extern size_t __fread_chk (void *__restrict __ptr, size_t __ptrlen, -+ size_t __size, size_t __n, -+ FILE *__restrict __stream) __wur; -+ -+#ifdef __USE_GNU -+extern char *__fgets_unlocked_chk (char *__restrict __s, size_t __size, -+ int __n, FILE *__restrict __stream) -+ __wur __attr_access ((__write_only__, 1, 3)); -+#endif -+ -+#ifdef __USE_MISC -+# undef fread_unlocked -+extern size_t __fread_unlocked_chk (void *__restrict __ptr, size_t __ptrlen, -+ size_t __size, size_t __n, -+ FILE *__restrict __stream) __wur; -+#endif -+ -+#endif /* bits/stdio2-dec.h. */ -diff --git a/libio/bits/stdio2.h b/libio/bits/stdio2.h -index b0b655ee7a4a6e44..b1e200e7164bfd7a 100644 ---- a/libio/bits/stdio2.h -+++ b/libio/bits/stdio2.h -@@ -23,14 +23,6 @@ - # error "Never include directly; use instead." - #endif - --extern int __sprintf_chk (char *__restrict __s, int __flag, size_t __slen, -- const char *__restrict __format, ...) __THROW -- __attr_access ((__write_only__, 1, 3)); --extern int __vsprintf_chk (char *__restrict __s, int __flag, size_t __slen, -- const char *__restrict __format, -- __gnuc_va_list __ap) __THROW -- __attr_access ((__write_only__, 1, 3)); -- - #ifdef __va_arg_pack - __fortify_function int - __NTH (sprintf (char *__restrict __s, const char *__restrict __fmt, ...)) -@@ -54,15 +46,6 @@ __NTH (vsprintf (char *__restrict __s, const char *__restrict __fmt, - } - - #if defined __USE_ISOC99 || defined __USE_UNIX98 -- --extern int __snprintf_chk (char *__restrict __s, size_t __n, int __flag, -- size_t __slen, const char *__restrict __format, -- ...) __THROW -- __attr_access ((__write_only__, 1, 2)); --extern int __vsnprintf_chk (char *__restrict __s, size_t __n, int __flag, -- size_t __slen, const char *__restrict __format, -- __gnuc_va_list __ap) __THROW; -- - # ifdef __va_arg_pack - __fortify_function int - __NTH (snprintf (char *__restrict __s, size_t __n, -@@ -89,15 +72,6 @@ __NTH (vsnprintf (char *__restrict __s, size_t __n, - #endif - - #if __USE_FORTIFY_LEVEL > 1 -- --extern int __fprintf_chk (FILE *__restrict __stream, int __flag, -- const char *__restrict __format, ...); --extern int __printf_chk (int __flag, const char *__restrict __format, ...); --extern int __vfprintf_chk (FILE *__restrict __stream, int __flag, -- const char *__restrict __format, __gnuc_va_list __ap); --extern int __vprintf_chk (int __flag, const char *__restrict __format, -- __gnuc_va_list __ap); -- - # ifdef __va_arg_pack - __fortify_function int - fprintf (FILE *__restrict __stream, const char *__restrict __fmt, ...) -@@ -136,12 +110,6 @@ vfprintf (FILE *__restrict __stream, - } - - # ifdef __USE_XOPEN2K8 --extern int __dprintf_chk (int __fd, int __flag, const char *__restrict __fmt, -- ...) __attribute__ ((__format__ (__printf__, 3, 4))); --extern int __vdprintf_chk (int __fd, int __flag, -- const char *__restrict __fmt, __gnuc_va_list __arg) -- __attribute__ ((__format__ (__printf__, 3, 0))); -- - # ifdef __va_arg_pack - __fortify_function int - dprintf (int __fd, const char *__restrict __fmt, ...) -@@ -162,23 +130,6 @@ vdprintf (int __fd, const char *__restrict __fmt, __gnuc_va_list __ap) - # endif - - # ifdef __USE_GNU -- --extern int __asprintf_chk (char **__restrict __ptr, int __flag, -- const char *__restrict __fmt, ...) -- __THROW __attribute__ ((__format__ (__printf__, 3, 4))) __wur; --extern int __vasprintf_chk (char **__restrict __ptr, int __flag, -- const char *__restrict __fmt, __gnuc_va_list __arg) -- __THROW __attribute__ ((__format__ (__printf__, 3, 0))) __wur; --extern int __obstack_printf_chk (struct obstack *__restrict __obstack, -- int __flag, const char *__restrict __format, -- ...) -- __THROW __attribute__ ((__format__ (__printf__, 3, 4))); --extern int __obstack_vprintf_chk (struct obstack *__restrict __obstack, -- int __flag, -- const char *__restrict __format, -- __gnuc_va_list __args) -- __THROW __attribute__ ((__format__ (__printf__, 3, 0))); -- - # ifdef __va_arg_pack - __fortify_function int - __NTH (asprintf (char **__restrict __ptr, const char *__restrict __fmt, ...)) -@@ -231,7 +182,6 @@ __NTH (obstack_vprintf (struct obstack *__restrict __obstack, - #endif - - #if __GLIBC_USE (DEPRECATED_GETS) --extern char *__gets_chk (char *__str, size_t) __wur; - extern char *__REDIRECT (__gets_warn, (char *__str), gets) - __wur __warnattr ("please use fgets or getline instead, gets can't " - "specify buffer size"); -@@ -245,9 +195,6 @@ gets (char *__str) - } - #endif - --extern char *__fgets_chk (char *__restrict __s, size_t __size, int __n, -- FILE *__restrict __stream) -- __wur __attr_access ((__write_only__, 1, 3)); - extern char *__REDIRECT (__fgets_alias, - (char *__restrict __s, int __n, - FILE *__restrict __stream), fgets) -@@ -269,9 +216,6 @@ fgets (char *__restrict __s, int __n, FILE *__restrict __stream) - return __fgets_chk (__s, sz, __n, __stream); - } - --extern size_t __fread_chk (void *__restrict __ptr, size_t __ptrlen, -- size_t __size, size_t __n, -- FILE *__restrict __stream) __wur; - extern size_t __REDIRECT (__fread_alias, - (void *__restrict __ptr, size_t __size, - size_t __n, FILE *__restrict __stream), -@@ -297,9 +241,6 @@ fread (void *__restrict __ptr, size_t __size, size_t __n, - } - - #ifdef __USE_GNU --extern char *__fgets_unlocked_chk (char *__restrict __s, size_t __size, -- int __n, FILE *__restrict __stream) -- __wur __attr_access ((__write_only__, 1, 3)); - extern char *__REDIRECT (__fgets_unlocked_alias, - (char *__restrict __s, int __n, - FILE *__restrict __stream), fgets_unlocked) -@@ -324,9 +265,6 @@ fgets_unlocked (char *__restrict __s, int __n, FILE *__restrict __stream) - - #ifdef __USE_MISC - # undef fread_unlocked --extern size_t __fread_unlocked_chk (void *__restrict __ptr, size_t __ptrlen, -- size_t __size, size_t __n, -- FILE *__restrict __stream) __wur; - extern size_t __REDIRECT (__fread_unlocked_alias, - (void *__restrict __ptr, size_t __size, - size_t __n, FILE *__restrict __stream), -diff --git a/libio/stdio.h b/libio/stdio.h -index e6425341cec4eeaf..f2b9a10d246d5cab 100644 ---- a/libio/stdio.h -+++ b/libio/stdio.h -@@ -885,20 +885,27 @@ extern void funlockfile (FILE *__stream) __THROW; - extern int __uflow (FILE *); - extern int __overflow (FILE *, int); - -+#if __USE_FORTIFY_LEVEL > 0 && defined __fortify_function -+/* Declare all functions from bits/stdio2-dec.h first. */ -+# include -+#endif -+ -+/* The following headers provide asm redirections. These redirections must -+ appear before the first usage of these functions, e.g. in bits/stdio.h. */ -+#if defined __LDBL_COMPAT || __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 -+# include -+#endif -+ - /* If we are compiling with optimizing read this file. It contains - several optimizing inline functions and macros. */ - #ifdef __USE_EXTERN_INLINES - # include - #endif - #if __USE_FORTIFY_LEVEL > 0 && defined __fortify_function -+/* Now include the function definitions and redirects too. */ - # include - #endif - --#include --#if defined __LDBL_COMPAT || __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 --# include --#endif -- - __END_DECLS - - #endif /* included. */