diff --git a/package/uclibc/0001-include-ctype.h-drop-is-_l-macro-definitions.patch b/package/uclibc/0001-include-ctype.h-drop-is-_l-macro-definitions.patch new file mode 100644 index 0000000000..5557a9c1e7 --- /dev/null +++ b/package/uclibc/0001-include-ctype.h-drop-is-_l-macro-definitions.patch @@ -0,0 +1,72 @@ +From d1a3ca7ca56630fddde7311a0474eed4a21335a7 Mon Sep 17 00:00:00 2001 +From: Max Filippov +Date: Mon, 3 Feb 2020 13:57:32 -0800 +Subject: [PATCH] include/ctype.h: drop is*_l macro definitions + +ctype locale-specific macro definitions are broken because they result +in dereference of pointer to structure of incomplete type. +Drop these macros since they are optional and let applications use +functions with the same names. + +This change fixes parted-3.3 build with uClibc-ng: + http://autobuild.buildroot.net/results/b7ba1210d5aa184b133f0171da621d2b0083ec39/build-end.log + +Signed-off-by: Max Filippov +--- + include/ctype.h | 33 --------------------------------- + 1 file changed, 33 deletions(-) + +diff --git a/include/ctype.h b/include/ctype.h +index ecd5e730886a..e934cf3321a6 100644 +--- a/include/ctype.h ++++ b/include/ctype.h +@@ -350,46 +350,13 @@ libc_hidden_proto(tolower_l) + /* Return the uppercase version of C. */ + extern int toupper_l (int __c, __locale_t __l) __THROW; + +-# if __GNUC__ >= 2 && defined __OPTIMIZE__ && !defined __cplusplus +-# define tolower_l(c, locale) __tobody(c, tolower_l, (locale)->__ctype_tolower, (c, locale)) +-# define toupper_l(c, locale) __tobody(c, toupper_l, (locale)->__ctype_toupper, (c, locale)) +-# endif /* Optimizing gcc */ +- +- +-# define __isctype_l(c, type, locale) ((locale)->__ctype_b[(int) (c)] & (__ctype_mask_t) type) + # ifndef __NO_CTYPE +-# define __isalnum_l(c,l) __isctype_l((c), _ISalnum, (l)) +-# define __isalpha_l(c,l) __isctype_l((c), _ISalpha, (l)) +-# define __iscntrl_l(c,l) __isctype_l((c), _IScntrl, (l)) +-# define __isdigit_l(c,l) __isctype_l((c), _ISdigit, (l)) +-# define __islower_l(c,l) __isctype_l((c), _ISlower, (l)) +-# define __isgraph_l(c,l) __isctype_l((c), _ISgraph, (l)) +-# define __isprint_l(c,l) __isctype_l((c), _ISprint, (l)) +-# define __ispunct_l(c,l) __isctype_l((c), _ISpunct, (l)) +-# define __isspace_l(c,l) __isctype_l((c), _ISspace, (l)) +-# define __isupper_l(c,l) __isctype_l((c), _ISupper, (l)) +-# define __isxdigit_l(c,l) __isctype_l((c), _ISxdigit, (l)) +-# define __isblank_l(c,l) __isctype_l((c), _ISblank, (l)) +- + # if (defined __USE_SVID || defined __USE_MISC || defined __USE_XOPEN) \ + && defined __UCLIBC_SUSV4_LEGACY__ + # define __isascii_l(c,l) ((l), __isascii (c)) + # define __toascii_l(c,l) ((l), __toascii (c)) + # endif + +-# define isalnum_l(c,l) __isalnum_l ((c), (l)) +-# define isalpha_l(c,l) __isalpha_l ((c), (l)) +-# define iscntrl_l(c,l) __iscntrl_l ((c), (l)) +-# define isdigit_l(c,l) __isdigit_l ((c), (l)) +-# define islower_l(c,l) __islower_l ((c), (l)) +-# define isgraph_l(c,l) __isgraph_l ((c), (l)) +-# define isprint_l(c,l) __isprint_l ((c), (l)) +-# define ispunct_l(c,l) __ispunct_l ((c), (l)) +-# define isspace_l(c,l) __isspace_l ((c), (l)) +-# define isupper_l(c,l) __isupper_l ((c), (l)) +-# define isxdigit_l(c,l) __isxdigit_l ((c), (l)) +-# define isblank_l(c,l) __isblank_l ((c), (l)) +- + # if (defined __USE_SVID || defined __USE_MISC || defined __USE_XOPEN) \ + && defined __UCLIBC_SUSV4_LEGACY__ + # define isascii_l(c,l) __isascii_l ((c), (l)) +-- +2.20.1 +