mirror of
https://git.yoctoproject.org/poky
synced 2026-04-19 15:32:13 +02:00
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. (From OE-Core rev: 98e1dc574ef3be668d6a42232ad030d1af93c49f) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
@@ -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)}"
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user