diff options
author | Raphael Moreira Zinsly <rzinsly@linux.ibm.com> | 2022-08-24 11:43:37 -0300 |
---|---|---|
committer | Raphael Moreira Zinsly <rzinsly@linux.ibm.com> | 2022-08-30 12:50:16 -0300 |
commit | c7509d49c4e8fa494120c5ead21338559dad16f5 (patch) | |
tree | 2840faf378c19aea77219ea117e22aafc58e282e /wcsmbs/wchar.h | |
parent | d09aa4a17229bcaa2ec7642006b12612498582e7 (diff) | |
download | glibc-c7509d49c4e8fa494120c5ead21338559dad16f5.zip glibc-c7509d49c4e8fa494120c5ead21338559dad16f5.tar.gz glibc-c7509d49c4e8fa494120c5ead21338559dad16f5.tar.bz2 |
Apply asm redirections in wchar.h before first use
Similar to d0fa09a770, but for wchar.h. Fixes [BZ #27087] by applying
all long double related asm redirections before using functions in
bits/wchar2.h.
Moves the function declarations from wcsmbs/bits/wchar2.h to a new file
wcsmbs/bits/wchar2-decl.h that will be included first in wcsmbs/wchar.h.
Tested with build-many-glibcs.py.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Diffstat (limited to 'wcsmbs/wchar.h')
-rw-r--r-- | wcsmbs/wchar.h | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/wcsmbs/wchar.h b/wcsmbs/wchar.h index 5d6a408..c1321c7 100644 --- a/wcsmbs/wchar.h +++ b/wcsmbs/wchar.h @@ -864,14 +864,21 @@ extern size_t wcsftime_l (wchar_t *__restrict __s, size_t __maxsize, /* Define some macros helping to catch buffer overflows. */ #if __USE_FORTIFY_LEVEL > 0 && defined __fortify_function -# include <bits/wchar2.h> +/* Declare all functions from bits/wchar2-decl.h first. */ +# include <bits/wchar2-decl.h> #endif -#include <bits/floatn.h> +/* The following headers provide asm redirections. These redirections must + appear before the first usage of these functions, e.g. in bits/wchar.h. */ #if defined __LDBL_COMPAT || __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 # include <bits/wchar-ldbl.h> #endif +#if __USE_FORTIFY_LEVEL > 0 && defined __fortify_function +/* Now include the function definitions and redirects too. */ +# include <bits/wchar2.h> +#endif + __END_DECLS #endif /* wchar.h */ |