diff options
| author | Juro Bystricky <jurobystricky@hotmail.com> | 2014-11-27 10:32:59 -0800 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-12-05 18:01:06 +0000 |
| commit | 9fc63c57a82661a65ace3ebccdb535fe33de70f5 (patch) | |
| tree | d73d2080b1f058299dad059e4c6f72d6bbf9e8f7 | |
| parent | 0935937969e6189e897973bb32c36b7672faa6b4 (diff) | |
| download | poky-9fc63c57a82661a65ace3ebccdb535fe33de70f5.tar.gz | |
eglibc: modified option-groups.h generation
option-groups.h only explicitely #defines options that are enabled.
EGLIBC options are typically pre-processed under the assumption that if
an option is not explicitely defined then it evaluates as 0.
This assumption is correct, but it generates a compiler warning
message each time an undefined symbol is being evaluated.
In order to remove the warnings, each EGLIBC option is now defined
as 1 if the option is enabled or as 0 otherwise.
The consequence is we cannot use #ifdef OPTION_XXX when evaluating
the option, we must always use #if OPTION_XXX.
[YOCTO #7001]
(From OE-Core rev: 7f1bdc331304a61a4836a5752bca210450b6c5b5)
Signed-off-by: Juro Bystricky <jurobystricky@hotmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
| -rw-r--r-- | meta/recipes-core/glibc/glibc/eglibc-use-option-groups.patch | 34 | ||||
| -rw-r--r-- | meta/recipes-core/glibc/glibc/option-groups.patch | 6 |
2 files changed, 20 insertions, 20 deletions
diff --git a/meta/recipes-core/glibc/glibc/eglibc-use-option-groups.patch b/meta/recipes-core/glibc/glibc/eglibc-use-option-groups.patch index 40c783212a..7136253c8b 100644 --- a/meta/recipes-core/glibc/glibc/eglibc-use-option-groups.patch +++ b/meta/recipes-core/glibc/glibc/eglibc-use-option-groups.patch | |||
| @@ -5724,7 +5724,7 @@ Index: git/posix/regex.h | |||
| 5724 | # define RE_INVALID_INTERVAL_ORD (RE_DEBUG << 1) | 5724 | # define RE_INVALID_INTERVAL_ORD (RE_DEBUG << 1) |
| 5725 | 5725 | ||
| 5726 | +/* EGLIBC: Old regex implementation does not support these. */ | 5726 | +/* EGLIBC: Old regex implementation does not support these. */ |
| 5727 | +# ifdef __OPTION_POSIX_REGEXP_GLIBC | 5727 | +# if __OPTION_POSIX_REGEXP_GLIBC |
| 5728 | /* If this bit is set, then ignore case when matching. | 5728 | /* If this bit is set, then ignore case when matching. |
| 5729 | If not set, then case is significant. */ | 5729 | If not set, then case is significant. */ |
| 5730 | # define RE_ICASE (RE_INVALID_INTERVAL_ORD << 1) | 5730 | # define RE_ICASE (RE_INVALID_INTERVAL_ORD << 1) |
| @@ -5740,7 +5740,7 @@ Index: git/posix/regex.h | |||
| 5740 | (RE_CHAR_CLASSES | RE_DOT_NEWLINE | RE_DOT_NOT_NULL \ | 5740 | (RE_CHAR_CLASSES | RE_DOT_NEWLINE | RE_DOT_NOT_NULL \ |
| 5741 | | RE_INTERVALS | RE_NO_EMPTY_RANGES) | 5741 | | RE_INTERVALS | RE_NO_EMPTY_RANGES) |
| 5742 | 5742 | ||
| 5743 | +#ifdef __OPTION_POSIX_REGEXP_GLIBC | 5743 | +#if __OPTION_POSIX_REGEXP_GLIBC |
| 5744 | #define RE_SYNTAX_POSIX_BASIC \ | 5744 | #define RE_SYNTAX_POSIX_BASIC \ |
| 5745 | (_RE_SYNTAX_POSIX_COMMON | RE_BK_PLUS_QM | RE_CONTEXT_INVALID_DUP) | 5745 | (_RE_SYNTAX_POSIX_COMMON | RE_BK_PLUS_QM | RE_CONTEXT_INVALID_DUP) |
| 5746 | +#else | 5746 | +#else |
| @@ -5754,7 +5754,7 @@ Index: git/posix/regex.h | |||
| 5754 | /* Like REG_NOTBOL, except for the end-of-line. */ | 5754 | /* Like REG_NOTBOL, except for the end-of-line. */ |
| 5755 | #define REG_NOTEOL (1 << 1) | 5755 | #define REG_NOTEOL (1 << 1) |
| 5756 | 5756 | ||
| 5757 | +#ifdef __OPTION_POSIX_REGEXP_GLIBC | 5757 | +#if __OPTION_POSIX_REGEXP_GLIBC |
| 5758 | /* Use PMATCH[0] to delimit the start and end of the search in the | 5758 | /* Use PMATCH[0] to delimit the start and end of the search in the |
| 5759 | buffer. */ | 5759 | buffer. */ |
| 5760 | #define REG_STARTEND (1 << 2) | 5760 | #define REG_STARTEND (1 << 2) |
| @@ -15542,7 +15542,7 @@ Index: git/sysdeps/ieee754/ldbl-opt/nldbl-compat.c | |||
| 15542 | libc_hidden_proto (__nldbl___isoc99_vsscanf) | 15542 | libc_hidden_proto (__nldbl___isoc99_vsscanf) |
| 15543 | libc_hidden_proto (__nldbl___isoc99_vfscanf) | 15543 | libc_hidden_proto (__nldbl___isoc99_vfscanf) |
| 15544 | + | 15544 | + |
| 15545 | +#ifdef __OPTION_POSIX_WIDE_CHAR_DEVICE_IO | 15545 | +#if __OPTION_POSIX_WIDE_CHAR_DEVICE_IO |
| 15546 | +libc_hidden_proto (__nldbl_vfwscanf) | 15546 | +libc_hidden_proto (__nldbl_vfwscanf) |
| 15547 | +libc_hidden_proto (__nldbl_vswscanf) | 15547 | +libc_hidden_proto (__nldbl_vswscanf) |
| 15548 | +libc_hidden_proto (__nldbl_vfwprintf) | 15548 | +libc_hidden_proto (__nldbl_vfwprintf) |
| @@ -15559,7 +15559,7 @@ Index: git/sysdeps/ieee754/ldbl-opt/nldbl-compat.c | |||
| 15559 | } | 15559 | } |
| 15560 | weak_alias (__nldbl_fprintf, __nldbl__IO_fprintf) | 15560 | weak_alias (__nldbl_fprintf, __nldbl__IO_fprintf) |
| 15561 | 15561 | ||
| 15562 | +#ifdef __OPTION_POSIX_WIDE_CHAR_DEVICE_IO | 15562 | +#if __OPTION_POSIX_WIDE_CHAR_DEVICE_IO |
| 15563 | int | 15563 | int |
| 15564 | attribute_compat_text_section weak_function | 15564 | attribute_compat_text_section weak_function |
| 15565 | __nldbl_fwprintf (FILE *stream, const wchar_t *fmt, ...) | 15565 | __nldbl_fwprintf (FILE *stream, const wchar_t *fmt, ...) |
| @@ -15575,7 +15575,7 @@ Index: git/sysdeps/ieee754/ldbl-opt/nldbl-compat.c | |||
| 15575 | return done; | 15575 | return done; |
| 15576 | } | 15576 | } |
| 15577 | 15577 | ||
| 15578 | +#ifdef __OPTION_POSIX_WIDE_CHAR_DEVICE_IO | 15578 | +#if __OPTION_POSIX_WIDE_CHAR_DEVICE_IO |
| 15579 | int | 15579 | int |
| 15580 | attribute_compat_text_section | 15580 | attribute_compat_text_section |
| 15581 | __nldbl_swprintf (wchar_t *s, size_t n, const wchar_t *fmt, ...) | 15581 | __nldbl_swprintf (wchar_t *s, size_t n, const wchar_t *fmt, ...) |
| @@ -15591,7 +15591,7 @@ Index: git/sysdeps/ieee754/ldbl-opt/nldbl-compat.c | |||
| 15591 | } | 15591 | } |
| 15592 | libc_hidden_def (__nldbl_vdprintf) | 15592 | libc_hidden_def (__nldbl_vdprintf) |
| 15593 | 15593 | ||
| 15594 | +#ifdef __OPTION_POSIX_WIDE_CHAR_DEVICE_IO | 15594 | +#if __OPTION_POSIX_WIDE_CHAR_DEVICE_IO |
| 15595 | int | 15595 | int |
| 15596 | attribute_compat_text_section weak_function | 15596 | attribute_compat_text_section weak_function |
| 15597 | __nldbl_vfwprintf (FILE *s, const wchar_t *fmt, va_list ap) | 15597 | __nldbl_vfwprintf (FILE *s, const wchar_t *fmt, va_list ap) |
| @@ -15607,7 +15607,7 @@ Index: git/sysdeps/ieee754/ldbl-opt/nldbl-compat.c | |||
| 15607 | libc_hidden_def (__nldbl_vsnprintf) | 15607 | libc_hidden_def (__nldbl_vsnprintf) |
| 15608 | weak_alias (__nldbl_vsnprintf, __nldbl___vsnprintf) | 15608 | weak_alias (__nldbl_vsnprintf, __nldbl___vsnprintf) |
| 15609 | 15609 | ||
| 15610 | +#ifdef __OPTION_POSIX_WIDE_CHAR_DEVICE_IO | 15610 | +#if __OPTION_POSIX_WIDE_CHAR_DEVICE_IO |
| 15611 | int | 15611 | int |
| 15612 | attribute_compat_text_section weak_function | 15612 | attribute_compat_text_section weak_function |
| 15613 | __nldbl_vswprintf (wchar_t *string, size_t maxlen, const wchar_t *fmt, | 15613 | __nldbl_vswprintf (wchar_t *string, size_t maxlen, const wchar_t *fmt, |
| @@ -15623,7 +15623,7 @@ Index: git/sysdeps/ieee754/ldbl-opt/nldbl-compat.c | |||
| 15623 | return done; | 15623 | return done; |
| 15624 | } | 15624 | } |
| 15625 | 15625 | ||
| 15626 | +#ifdef __OPTION_POSIX_WIDE_CHAR_DEVICE_IO | 15626 | +#if __OPTION_POSIX_WIDE_CHAR_DEVICE_IO |
| 15627 | int | 15627 | int |
| 15628 | attribute_compat_text_section | 15628 | attribute_compat_text_section |
| 15629 | __nldbl_vfwscanf (FILE *s, const wchar_t *fmt, va_list ap) | 15629 | __nldbl_vfwscanf (FILE *s, const wchar_t *fmt, va_list ap) |
| @@ -15639,7 +15639,7 @@ Index: git/sysdeps/ieee754/ldbl-opt/nldbl-compat.c | |||
| 15639 | return done; | 15639 | return done; |
| 15640 | } | 15640 | } |
| 15641 | 15641 | ||
| 15642 | +#ifdef __OPTION_POSIX_WIDE_CHAR_DEVICE_IO | 15642 | +#if __OPTION_POSIX_WIDE_CHAR_DEVICE_IO |
| 15643 | int | 15643 | int |
| 15644 | attribute_compat_text_section | 15644 | attribute_compat_text_section |
| 15645 | __nldbl___fwprintf_chk (FILE *stream, int flag, const wchar_t *fmt, ...) | 15645 | __nldbl___fwprintf_chk (FILE *stream, int flag, const wchar_t *fmt, ...) |
| @@ -15655,7 +15655,7 @@ Index: git/sysdeps/ieee754/ldbl-opt/nldbl-compat.c | |||
| 15655 | return done; | 15655 | return done; |
| 15656 | } | 15656 | } |
| 15657 | 15657 | ||
| 15658 | +#ifdef __OPTION_POSIX_WIDE_CHAR_DEVICE_IO | 15658 | +#if __OPTION_POSIX_WIDE_CHAR_DEVICE_IO |
| 15659 | int | 15659 | int |
| 15660 | attribute_compat_text_section | 15660 | attribute_compat_text_section |
| 15661 | __nldbl___swprintf_chk (wchar_t *s, size_t n, int flag, size_t slen, | 15661 | __nldbl___swprintf_chk (wchar_t *s, size_t n, int flag, size_t slen, |
| @@ -15671,7 +15671,7 @@ Index: git/sysdeps/ieee754/ldbl-opt/nldbl-compat.c | |||
| 15671 | } | 15671 | } |
| 15672 | libc_hidden_def (__nldbl___vfprintf_chk) | 15672 | libc_hidden_def (__nldbl___vfprintf_chk) |
| 15673 | 15673 | ||
| 15674 | +#ifdef __OPTION_POSIX_WIDE_CHAR_DEVICE_IO | 15674 | +#if __OPTION_POSIX_WIDE_CHAR_DEVICE_IO |
| 15675 | int | 15675 | int |
| 15676 | attribute_compat_text_section | 15676 | attribute_compat_text_section |
| 15677 | __nldbl___vfwprintf_chk (FILE *s, int flag, const wchar_t *fmt, va_list ap) | 15677 | __nldbl___vfwprintf_chk (FILE *s, int flag, const wchar_t *fmt, va_list ap) |
| @@ -15687,7 +15687,7 @@ Index: git/sysdeps/ieee754/ldbl-opt/nldbl-compat.c | |||
| 15687 | } | 15687 | } |
| 15688 | libc_hidden_def (__nldbl___vsprintf_chk) | 15688 | libc_hidden_def (__nldbl___vsprintf_chk) |
| 15689 | 15689 | ||
| 15690 | +#ifdef __OPTION_POSIX_WIDE_CHAR_DEVICE_IO | 15690 | +#if __OPTION_POSIX_WIDE_CHAR_DEVICE_IO |
| 15691 | int | 15691 | int |
| 15692 | attribute_compat_text_section | 15692 | attribute_compat_text_section |
| 15693 | __nldbl___vswprintf_chk (wchar_t *string, size_t maxlen, int flag, size_t slen, | 15693 | __nldbl___vswprintf_chk (wchar_t *string, size_t maxlen, int flag, size_t slen, |
| @@ -15719,7 +15719,7 @@ Index: git/sysdeps/ieee754/ldbl-opt/nldbl-compat.c | |||
| 15719 | return done; | 15719 | return done; |
| 15720 | } | 15720 | } |
| 15721 | 15721 | ||
| 15722 | +#ifdef __OPTION_POSIX_WIDE_CHAR_DEVICE_IO | 15722 | +#if __OPTION_POSIX_WIDE_CHAR_DEVICE_IO |
| 15723 | int | 15723 | int |
| 15724 | attribute_compat_text_section | 15724 | attribute_compat_text_section |
| 15725 | __nldbl___isoc99_vfwscanf (FILE *s, const wchar_t *fmt, va_list ap) | 15725 | __nldbl___isoc99_vfwscanf (FILE *s, const wchar_t *fmt, va_list ap) |
| @@ -15735,7 +15735,7 @@ Index: git/sysdeps/ieee754/ldbl-opt/nldbl-compat.c | |||
| 15735 | compat_symbol (libc, __nldbl___strfmon_l, __strfmon_l, GLIBC_2_1); | 15735 | compat_symbol (libc, __nldbl___strfmon_l, __strfmon_l, GLIBC_2_1); |
| 15736 | #endif | 15736 | #endif |
| 15737 | #if LONG_DOUBLE_COMPAT(libc, GLIBC_2_2) | 15737 | #if LONG_DOUBLE_COMPAT(libc, GLIBC_2_2) |
| 15738 | +# ifdef __OPTION_POSIX_WIDE_CHAR_DEVICE_IO | 15738 | +# if __OPTION_POSIX_WIDE_CHAR_DEVICE_IO |
| 15739 | compat_symbol (libc, __nldbl_swprintf, swprintf, GLIBC_2_2); | 15739 | compat_symbol (libc, __nldbl_swprintf, swprintf, GLIBC_2_2); |
| 15740 | compat_symbol (libc, __nldbl_vwprintf, vwprintf, GLIBC_2_2); | 15740 | compat_symbol (libc, __nldbl_vwprintf, vwprintf, GLIBC_2_2); |
| 15741 | compat_symbol (libc, __nldbl_wprintf, wprintf, GLIBC_2_2); | 15741 | compat_symbol (libc, __nldbl_wprintf, wprintf, GLIBC_2_2); |
| @@ -15783,7 +15783,7 @@ Index: git/sysdeps/ieee754/ldbl-opt/nldbl-compat.h | |||
| 15783 | NLDBL_DECL (__isoc99_vscanf); | 15783 | NLDBL_DECL (__isoc99_vscanf); |
| 15784 | NLDBL_DECL (__isoc99_vfscanf); | 15784 | NLDBL_DECL (__isoc99_vfscanf); |
| 15785 | NLDBL_DECL (__isoc99_vsscanf); | 15785 | NLDBL_DECL (__isoc99_vsscanf); |
| 15786 | +#ifdef __OPTION_POSIX_WIDE_CHAR_DEVICE_IO | 15786 | +#if __OPTION_POSIX_WIDE_CHAR_DEVICE_IO |
| 15787 | +NLDBL_DECL (vfwscanf); | 15787 | +NLDBL_DECL (vfwscanf); |
| 15788 | +NLDBL_DECL (vfwprintf); | 15788 | +NLDBL_DECL (vfwprintf); |
| 15789 | +NLDBL_DECL (vswprintf); | 15789 | +NLDBL_DECL (vswprintf); |
| @@ -15819,7 +15819,7 @@ Index: git/sysdeps/ieee754/ldbl-opt/nldbl-compat.h | |||
| 15819 | _G_va_list) __THROW; | 15819 | _G_va_list) __THROW; |
| 15820 | extern void __nldbl___vsyslog_chk (int, int, const char *, va_list); | 15820 | extern void __nldbl___vsyslog_chk (int, int, const char *, va_list); |
| 15821 | - | 15821 | - |
| 15822 | +#ifdef __OPTION_POSIX_WIDE_CHAR_DEVICE_IO | 15822 | +#if __OPTION_POSIX_WIDE_CHAR_DEVICE_IO |
| 15823 | +extern int __nldbl___vfwprintf_chk (FILE *__restrict, int, | 15823 | +extern int __nldbl___vfwprintf_chk (FILE *__restrict, int, |
| 15824 | + const wchar_t *__restrict, __gnuc_va_list); | 15824 | + const wchar_t *__restrict, __gnuc_va_list); |
| 15825 | +extern int __nldbl___vswprintf_chk (wchar_t *__restrict, size_t, int, size_t, | 15825 | +extern int __nldbl___vswprintf_chk (wchar_t *__restrict, size_t, int, size_t, |
diff --git a/meta/recipes-core/glibc/glibc/option-groups.patch b/meta/recipes-core/glibc/glibc/option-groups.patch index 693bd2fbb8..198be73524 100644 --- a/meta/recipes-core/glibc/glibc/option-groups.patch +++ b/meta/recipes-core/glibc/glibc/option-groups.patch | |||
| @@ -1358,8 +1358,8 @@ Index: git/scripts/option-groups.awk | |||
| 1358 | + print " It defines macros that indicate which EGLIBC option groups were" | 1358 | + print " It defines macros that indicate which EGLIBC option groups were" |
| 1359 | + print " configured in 'option-groups.config' when this C library was" | 1359 | + print " configured in 'option-groups.config' when this C library was" |
| 1360 | + print " built. For each option group named OPTION_foo, it #defines" | 1360 | + print " built. For each option group named OPTION_foo, it #defines" |
| 1361 | + print " __OPTION_foo to be 1 if the group is enabled, or leaves that" | 1361 | + print " __OPTION_foo to be 1 if the group is enabled, or #defines that" |
| 1362 | + print " symbol undefined if the group is disabled. */" | 1362 | + print " symbol to be 0 if the group is disabled. */" |
| 1363 | + print "" | 1363 | + print "" |
| 1364 | + print "#ifndef __GNU_OPTION_GROUPS_H" | 1364 | + print "#ifndef __GNU_OPTION_GROUPS_H" |
| 1365 | + print "#define __GNU_OPTION_GROUPS_H" | 1365 | + print "#define __GNU_OPTION_GROUPS_H" |
| @@ -1379,7 +1379,7 @@ Index: git/scripts/option-groups.awk | |||
| 1379 | + if (vars[var] == "y") | 1379 | + if (vars[var] == "y") |
| 1380 | + print "#define __" var " 1" | 1380 | + print "#define __" var " 1" |
| 1381 | + else if (vars[var] == "n") | 1381 | + else if (vars[var] == "n") |
| 1382 | + print "/* #undef __" var " */" | 1382 | + print "#define __" var " 0" |
| 1383 | + else if (vars[var] ~ /^[0-9]+/ || | 1383 | + else if (vars[var] ~ /^[0-9]+/ || |
| 1384 | + vars[var] ~ /^0x[0-9aAbBcCdDeEfF]+/ || | 1384 | + vars[var] ~ /^0x[0-9aAbBcCdDeEfF]+/ || |
| 1385 | + vars[var] ~ /^\"/) | 1385 | + vars[var] ~ /^\"/) |
