diff options
author | Khem Raj <raj.khem@gmail.com> | 2015-02-24 06:39:59 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-02-24 23:11:01 +0000 |
commit | 98e1dc574ef3be668d6a42232ad030d1af93c49f (patch) | |
tree | 6272c5124cb450141715591888ed4d642f1a726d /meta/recipes-core/glibc | |
parent | 29143391029bdb1a5b23724017acb363b11ed6a8 (diff) | |
download | openembedded-core-98e1dc574ef3be668d6a42232ad030d1af93c49f.tar.gz openembedded-core-98e1dc574ef3be668d6a42232ad030d1af93c49f.tar.bz2 openembedded-core-98e1dc574ef3be668d6a42232ad030d1af93c49f.zip |
glibc: Help compile with -Os
When we modify to use -Os
-Werror doesnt go well with it, glibc needs to be
cleaned up for that but until then lets disable -Werror
when using -Os
Also updates the options group patch to work better with -Os.
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-core/glibc')
-rw-r--r-- | meta/recipes-core/glibc/glibc.inc | 3 | ||||
-rw-r--r-- | meta/recipes-core/glibc/glibc/eglibc-use-option-groups.patch | 47 |
2 files changed, 43 insertions, 7 deletions
diff --git a/meta/recipes-core/glibc/glibc.inc b/meta/recipes-core/glibc/glibc.inc index 99a4753044..4d5e98b969 100644 --- a/meta/recipes-core/glibc/glibc.inc +++ b/meta/recipes-core/glibc/glibc.inc @@ -15,6 +15,9 @@ def get_optimization(d): if bb.utils.contains("SELECTED_OPTIMIZATION", "-O0", "x", "", d) == "x": bb.note("glibc can't be built with -O0, -O2 will be used instead.") return selected_optimization.replace("-O0", "-O2") + elif bb.utils.contains("SELECTED_OPTIMIZATION", "-O0", "x", "", d) == "x": + bb.note("glibc can't be built with -Os, -Os -Wno-error will be used instead.") + return selected_optimization.replace("-Os", "-Os -Wno-error") return selected_optimization SELECTED_OPTIMIZATION := "${@get_optimization(d)}" 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 0fcaff9719..439b4a95f6 100644 --- a/meta/recipes-core/glibc/glibc/eglibc-use-option-groups.patch +++ b/meta/recipes-core/glibc/glibc/eglibc-use-option-groups.patch @@ -2294,11 +2294,37 @@ Index: git/locale/programs/locfile.h /* Change the output to be big-endian if BIG_ENDIAN is true and little-endian otherwise. */ static inline void -@@ -276,4 +278,49 @@ extern void identification_output (struc +@@ -89,7 +91,8 @@ maybe_swap_uint32 (uint32_t value) + } + + /* Likewise, but munge an array of N uint32_ts starting at ARRAY. */ +-static inline void ++static void ++__attribute__ ((unused)) + maybe_swap_uint32_array (uint32_t *array, size_t n) + { + if (swap_endianness_p) +@@ -99,7 +102,8 @@ maybe_swap_uint32_array (uint32_t *array + + /* Like maybe_swap_uint32_array, but the array of N elements is at + the end of OBSTACK's current object. */ +-static inline void ++static void ++__attribute__ ((unused)) + maybe_swap_uint32_obstack (struct obstack *obstack, size_t n) + { + maybe_swap_uint32_array ((uint32_t *) obstack_next_free (obstack) - n, n); +@@ -276,4 +280,55 @@ extern void identification_output (struc const struct charmap_t *charmap, const char *output_path); -+static inline size_t ++static size_t wcslen_uint32 (const uint32_t *str) __attribute__ ((unused)); ++static uint32_t * wmemcpy_uint32 (uint32_t *s1, const uint32_t *s2, size_t n) __attribute__ ((unused)); ++static uint32_t * wcschr_uint32 (const uint32_t *s, uint32_t ch) __attribute__ ((unused)); ++static int wcscmp_uint32 (const uint32_t *s1, const uint32_t *s2) __attribute__ ((unused)); ++static int wmemcmp_uint32 (const uint32_t *s1, const uint32_t *s2, size_t n) __attribute__ ((unused)); ++ ++static size_t +wcslen_uint32 (const uint32_t *str) +{ + size_t len = 0; @@ -2307,7 +2333,7 @@ Index: git/locale/programs/locfile.h + return len; +} + -+static inline int ++static int +wmemcmp_uint32 (const uint32_t *s1, const uint32_t *s2, size_t n) +{ + while (n-- != 0) @@ -2319,7 +2345,7 @@ Index: git/locale/programs/locfile.h + return 0; +} + -+static inline int ++static int +wcscmp_uint32 (const uint32_t *s1, const uint32_t *s2) +{ + while (*s1 != 0 && *s1 == *s2) @@ -2327,13 +2353,13 @@ Index: git/locale/programs/locfile.h + return *s1 - *s2; +} + -+static inline uint32_t * ++static uint32_t * +wmemcpy_uint32 (uint32_t *s1, const uint32_t *s2, size_t n) +{ + return memcpy (s1, s2, n * sizeof (uint32_t)); +} + -+static inline uint32_t * ++static uint32_t * +wcschr_uint32 (const uint32_t *s, uint32_t ch) +{ + do @@ -5627,7 +5653,7 @@ Index: git/posix/regexec.c /* match with character_class? */ for (i = 0; i < cset->nchar_classes; ++i) { -@@ -3863,8 +3843,16 @@ check_node_accept_bytes (const re_dfa_t +@@ -3863,14 +3843,22 @@ check_node_accept_bytes (const re_dfa_t goto check_node_accept_bytes_match; } } @@ -5645,6 +5671,13 @@ Index: git/posix/regexec.c nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); if (nrules != 0) { + unsigned int in_collseq = 0; + const int32_t *table, *indirect; +- const unsigned char *weights, *extra; ++ const unsigned char *weights, *extra = NULL; + const char *collseqwc; + + /* match with collating_symbol? */ @@ -3955,8 +3943,12 @@ check_node_accept_bytes (const re_dfa_t } } |