diff options
Diffstat (limited to 'packages/glibc/2.17')
-rw-r--r-- | packages/glibc/2.17/100-Fix-ARM-build-with-GCC-trunk.patch | 54 | ||||
-rw-r--r-- | packages/glibc/2.17/101-Suppress-GCC-6-warning-about-ambiguous-else-with-Wpa.patch | 84 | ||||
-rw-r--r-- | packages/glibc/2.17/102-fix-signed-shift-overlow.patch | 98 | ||||
-rw-r--r-- | packages/glibc/2.17/103-dl-openat64-variadic.patch | 195 | ||||
-rw-r--r-- | packages/glibc/2.17/104-unused-variables.patch | 157 | ||||
-rw-r--r-- | packages/glibc/2.17/105-misleading-indentation.patch | 24 | ||||
-rw-r--r-- | packages/glibc/2.17/106-dl-open-array-bounds.patch | 27 | ||||
-rw-r--r-- | packages/glibc/2.17/120-support-make4.patch | 38 | ||||
-rw-r--r-- | packages/glibc/2.17/140-Fix-combreloc-test-BSD-grep.patch | 49 | ||||
-rw-r--r-- | packages/glibc/2.17/300-macos-cross-rpcgen.patch | 32 | ||||
-rw-r--r-- | packages/glibc/2.17/920-fix-rpc_parse-format.patch | 60 | ||||
-rw-r--r-- | packages/glibc/2.17/940-nis-bogus-conditional.patch | 62 | ||||
-rw-r--r-- | packages/glibc/2.17/version.desc | 1 |
13 files changed, 881 insertions, 0 deletions
diff --git a/packages/glibc/2.17/100-Fix-ARM-build-with-GCC-trunk.patch b/packages/glibc/2.17/100-Fix-ARM-build-with-GCC-trunk.patch new file mode 100644 index 0000000..59f95aa --- /dev/null +++ b/packages/glibc/2.17/100-Fix-ARM-build-with-GCC-trunk.patch @@ -0,0 +1,54 @@ +From 175cef4163dd60f95106cfd5f593b8a4e09d02c9 Mon Sep 17 00:00:00 2001 +From: Joseph Myers <joseph@codesourcery.com> +Date: Tue, 20 May 2014 21:27:13 +0000 +Subject: [PATCH] Fix ARM build with GCC trunk. + +sysdeps/unix/sysv/linux/arm/unwind-resume.c and +sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c have static +variables that are written in C code but only read from toplevel asms. +Current GCC trunk now optimizes away such apparently write-only static +variables, so causing a build failure. This patch marks those +variables with __attribute_used__ to avoid that optimization. + +Tested that this fixes the build for ARM. + + * sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c + (libgcc_s_resume): Use __attribute_used__. + * sysdeps/unix/sysv/linux/arm/unwind-resume.c (libgcc_s_resume): + Likewise. +--- + sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c | 3 ++- + sysdeps/unix/sysv/linux/arm/unwind-resume.c | 3 ++- + 3 files changed, 11 insertions(+), 2 deletions(-) + +diff --git a/sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c b/sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c +index 6ccd9b4..660d148 100644 +--- a/ports/sysdeps/unix/sysv/linux/arm/nptl/unwind-forcedunwind.c ++++ b/ports/sysdeps/unix/sysv/linux/arm/nptl/unwind-forcedunwind.c +@@ -22,7 +22,8 @@ + #include <pthreadP.h> + + static void *libgcc_s_handle; +-static void (*libgcc_s_resume) (struct _Unwind_Exception *exc); ++static void (*libgcc_s_resume) (struct _Unwind_Exception *exc) ++ __attribute_used__; + static _Unwind_Reason_Code (*libgcc_s_personality) + (_Unwind_State, struct _Unwind_Exception *, struct _Unwind_Context *); + static _Unwind_Reason_Code (*libgcc_s_forcedunwind) +diff --git a/sysdeps/unix/sysv/linux/arm/unwind-resume.c b/sysdeps/unix/sysv/linux/arm/unwind-resume.c +index bff3e2b..1f1eb71 100644 +--- a/ports/sysdeps/unix/sysv/linux/arm/nptl/unwind-resume.c ++++ b/ports/sysdeps/unix/sysv/linux/arm/nptl/unwind-resume.c +@@ -20,7 +20,8 @@ + #include <stdio.h> + #include <unwind.h> + +-static void (*libgcc_s_resume) (struct _Unwind_Exception *exc); ++static void (*libgcc_s_resume) (struct _Unwind_Exception *exc) ++ __attribute_used__; + static _Unwind_Reason_Code (*libgcc_s_personality) + (_Unwind_State, struct _Unwind_Exception *, struct _Unwind_Context *); + +-- +1.9.4 + diff --git a/packages/glibc/2.17/101-Suppress-GCC-6-warning-about-ambiguous-else-with-Wpa.patch b/packages/glibc/2.17/101-Suppress-GCC-6-warning-about-ambiguous-else-with-Wpa.patch new file mode 100644 index 0000000..6fd663a --- /dev/null +++ b/packages/glibc/2.17/101-Suppress-GCC-6-warning-about-ambiguous-else-with-Wpa.patch @@ -0,0 +1,84 @@ +From df1cf48777fe4cd81ad7fb09ecbe5b31432b7c1c Mon Sep 17 00:00:00 2001 +From: Yvan Roux <yvan.roux@linaro.org> +Date: Fri, 15 Apr 2016 13:29:26 +0200 +Subject: [PATCH] Suppress GCC 6 warning about ambiguous 'else' with + -Wparentheses + +--- + ChangeLog | 5 +++++ + nis/nis_call.c | 20 +++++++++++--------- + stdlib/setenv.c | 26 ++++++++++++++------------ + 3 files changed, 30 insertions(+), 21 deletions(-) + +diff --git a/nis/nis_call.c b/nis/nis_call.c +index 3fa37e4..cb7839a 100644 +--- a/nis/nis_call.c ++++ b/nis/nis_call.c +@@ -680,16 +680,18 @@ nis_server_cache_add (const_nis_name name, int search_parent, + /* Choose which entry should be evicted from the cache. */ + loc = &nis_server_cache[0]; + if (*loc != NULL) +- for (i = 1; i < 16; ++i) +- if (nis_server_cache[i] == NULL) +- { ++ { ++ for (i = 1; i < 16; ++i) ++ if (nis_server_cache[i] == NULL) ++ { ++ loc = &nis_server_cache[i]; ++ break; ++ } ++ else if ((*loc)->uses > nis_server_cache[i]->uses ++ || ((*loc)->uses == nis_server_cache[i]->uses ++ && (*loc)->expires > nis_server_cache[i]->expires)) + loc = &nis_server_cache[i]; +- break; +- } +- else if ((*loc)->uses > nis_server_cache[i]->uses +- || ((*loc)->uses == nis_server_cache[i]->uses +- && (*loc)->expires > nis_server_cache[i]->expires)) +- loc = &nis_server_cache[i]; ++ } + old = *loc; + *loc = new; + +diff --git a/stdlib/setenv.c b/stdlib/setenv.c +index da61ee0..e66045f 100644 +--- a/stdlib/setenv.c ++++ b/stdlib/setenv.c +@@ -278,18 +278,20 @@ unsetenv (const char *name) + ep = __environ; + if (ep != NULL) + while (*ep != NULL) +- if (!strncmp (*ep, name, len) && (*ep)[len] == '=') +- { +- /* Found it. Remove this pointer by moving later ones back. */ +- char **dp = ep; +- +- do +- dp[0] = dp[1]; +- while (*dp++); +- /* Continue the loop in case NAME appears again. */ +- } +- else +- ++ep; ++ { ++ if (!strncmp (*ep, name, len) && (*ep)[len] == '=') ++ { ++ /* Found it. Remove this pointer by moving later ones back. */ ++ char **dp = ep; ++ ++ do ++ dp[0] = dp[1]; ++ while (*dp++); ++ /* Continue the loop in case NAME appears again. */ ++ } ++ else ++ ++ep; ++ } + + UNLOCK; + +-- +2.7.4 + diff --git a/packages/glibc/2.17/102-fix-signed-shift-overlow.patch b/packages/glibc/2.17/102-fix-signed-shift-overlow.patch new file mode 100644 index 0000000..ef49f83 --- /dev/null +++ b/packages/glibc/2.17/102-fix-signed-shift-overlow.patch @@ -0,0 +1,98 @@ +commit 5542236837c5c41435f8282ec92799f480c36f18 +Author: Paul Eggert <eggert@cs.ucla.edu> +Date: Tue Jul 21 22:50:29 2015 -0700 + + Port the 0x7efe...feff pattern to GCC 6. + + See Steve Ellcey's bug report in: + https://sourceware.org/ml/libc-alpha/2015-07/msg00673.html + * string/memrchr.c (MEMRCHR): + * string/rawmemchr.c (RAWMEMCHR): + * string/strchr.c (strchr): + * string/strchrnul.c (STRCHRNUL): + Rewrite code to avoid issues with signed shift overflow. + +diff --git a/string/memrchr.c b/string/memrchr.c +index 0c8fd84..86cd5b9 100644 +--- a/string/memrchr.c ++++ b/string/memrchr.c +@@ -96,15 +96,8 @@ MEMRCHR + + The 1-bits make sure that carries propagate to the next 0-bit. + The 0-bits provide holes for carries to fall into. */ +- +- if (sizeof (longword) != 4 && sizeof (longword) != 8) +- abort (); +- +-#if LONG_MAX <= LONG_MAX_32_BITS +- magic_bits = 0x7efefeff; +-#else +- magic_bits = ((unsigned long int) 0x7efefefe << 32) | 0xfefefeff; +-#endif ++ magic_bits = -1; ++ magic_bits = magic_bits / 0xff * 0xfe << 1 >> 1 | 1; + + /* Set up a longword, each of whose bytes is C. */ + charmask = c | (c << 8); +diff --git a/string/rawmemchr.c b/string/rawmemchr.c +index 05b22be..228ca9d 100644 +--- a/string/rawmemchr.c ++++ b/string/rawmemchr.c +@@ -86,15 +86,8 @@ RAWMEMCHR (s, c_in) + + The 1-bits make sure that carries propagate to the next 0-bit. + The 0-bits provide holes for carries to fall into. */ +- +- if (sizeof (longword) != 4 && sizeof (longword) != 8) +- abort (); +- +-#if LONG_MAX <= LONG_MAX_32_BITS +- magic_bits = 0x7efefeff; +-#else +- magic_bits = ((unsigned long int) 0x7efefefe << 32) | 0xfefefeff; +-#endif ++ magic_bits = -1; ++ magic_bits = magic_bits / 0xff * 0xfe << 1 >> 1 | 1; + + /* Set up a longword, each of whose bytes is C. */ + charmask = c | (c << 8); +diff --git a/string/strchr.c b/string/strchr.c +index 5f90075..f13b2b3 100644 +--- a/string/strchr.c ++++ b/string/strchr.c +@@ -60,13 +60,8 @@ strchr (const char *s, int c_in) + + The 1-bits make sure that carries propagate to the next 0-bit. + The 0-bits provide holes for carries to fall into. */ +- switch (sizeof (longword)) +- { +- case 4: magic_bits = 0x7efefeffL; break; +- case 8: magic_bits = ((0x7efefefeL << 16) << 16) | 0xfefefeffL; break; +- default: +- abort (); +- } ++ magic_bits = -1; ++ magic_bits = magic_bits / 0xff * 0xfe << 1 >> 1 | 1; + + /* Set up a longword, each of whose bytes is C. */ + charmask = c | (c << 8); +diff --git a/string/strchrnul.c b/string/strchrnul.c +index 2678f1d..daf0b3f 100644 +--- a/string/strchrnul.c ++++ b/string/strchrnul.c +@@ -66,13 +66,8 @@ STRCHRNUL (s, c_in) + + The 1-bits make sure that carries propagate to the next 0-bit. + The 0-bits provide holes for carries to fall into. */ +- switch (sizeof (longword)) +- { +- case 4: magic_bits = 0x7efefeffL; break; +- case 8: magic_bits = ((0x7efefefeL << 16) << 16) | 0xfefefeffL; break; +- default: +- abort (); +- } ++ magic_bits = -1; ++ magic_bits = magic_bits / 0xff * 0xfe << 1 >> 1 | 1; + + /* Set up a longword, each of whose bytes is C. */ + charmask = c | (c << 8); diff --git a/packages/glibc/2.17/103-dl-openat64-variadic.patch b/packages/glibc/2.17/103-dl-openat64-variadic.patch new file mode 100644 index 0000000..fe94b96 --- /dev/null +++ b/packages/glibc/2.17/103-dl-openat64-variadic.patch @@ -0,0 +1,195 @@ +commit 9dd346ff431fc761f1b748bd4da8bb59f7652094 +Author: Joseph Myers <joseph@codesourcery.com> +Date: Tue Oct 20 11:54:09 2015 +0000 + + Convert 113 more function definitions to prototype style (files with assertions). + + This mostly automatically-generated patch converts 113 function + definitions in glibc from old-style K&R to prototype-style. Following + my other recent such patches, this one deals with the case of function + definitions in files that either contain assertions or where grep + suggested they might contain assertions - and thus where it isn't + possible to use a simple object code comparison as a sanity check on + the correctness of the patch, because line numbers are changed. + + A few such automatically-generated changes needed to be supplemented + by manual changes for the result to compile. openat64 had a prototype + declaration with "..." but an old-style definition in + sysdeps/unix/sysv/linux/dl-openat64.c, and "..." needed adding to the + generated prototype in the definition (I've filed + <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68024> for diagnosing + such cases in GCC; the old state was undefined behavior not requiring + a diagnostic, but one seems a good idea). In addition, as Florian has + noted regparm attribute mismatches between declaration and definition + are only diagnosed for prototype definitions, and five functions + needed internal_function added to their definitions (in the case of + __pthread_mutex_cond_lock, via the macro definition of + __pthread_mutex_lock) to compile on i386. + + After this patch is in, remaining old-style definitions are probably + most readily fixed manually before we can turn on + -Wold-style-definition for all builds. + + Tested for x86_64 and x86 (testsuite). + + * crypt/md5-crypt.c (__md5_crypt_r): Convert to prototype-style + function definition. + * crypt/sha256-crypt.c (__sha256_crypt_r): Likewise. + * crypt/sha512-crypt.c (__sha512_crypt_r): Likewise. + * debug/backtracesyms.c (__backtrace_symbols): Likewise. + * elf/dl-minimal.c (_itoa): Likewise. + * hurd/hurdmalloc.c (malloc): Likewise. + (free): Likewise. + (realloc): Likewise. + * inet/inet6_option.c (inet6_option_space): Likewise. + (inet6_option_init): Likewise. + (inet6_option_append): Likewise. + (inet6_option_alloc): Likewise. + (inet6_option_next): Likewise. + (inet6_option_find): Likewise. + * io/ftw.c (FTW_NAME): Likewise. + (NFTW_NAME): Likewise. + (NFTW_NEW_NAME): Likewise. + (NFTW_OLD_NAME): Likewise. + * libio/iofwide.c (_IO_fwide): Likewise. + * libio/strops.c (_IO_str_init_static_internal): Likewise. + (_IO_str_init_static): Likewise. + (_IO_str_init_readonly): Likewise. + (_IO_str_overflow): Likewise. + (_IO_str_underflow): Likewise. + (_IO_str_count): Likewise. + (_IO_str_seekoff): Likewise. + (_IO_str_pbackfail): Likewise. + (_IO_str_finish): Likewise. + * libio/wstrops.c (_IO_wstr_init_static): Likewise. + (_IO_wstr_overflow): Likewise. + (_IO_wstr_underflow): Likewise. + (_IO_wstr_count): Likewise. + (_IO_wstr_seekoff): Likewise. + (_IO_wstr_pbackfail): Likewise. + (_IO_wstr_finish): Likewise. + * locale/programs/localedef.c (normalize_codeset): Likewise. + * locale/programs/locarchive.c (add_locale_to_archive): Likewise. + (add_locales_to_archive): Likewise. + (delete_locales_from_archive): Likewise. + * malloc/malloc.c (__libc_mallinfo): Likewise. + * math/gen-auto-libm-tests.c (init_fp_formats): Likewise. + * misc/tsearch.c (__tfind): Likewise. + * nptl/pthread_attr_destroy.c (__pthread_attr_destroy): Likewise. + * nptl/pthread_attr_getdetachstate.c + (__pthread_attr_getdetachstate): Likewise. + * nptl/pthread_attr_getguardsize.c (pthread_attr_getguardsize): + Likewise. + * nptl/pthread_attr_getinheritsched.c + (__pthread_attr_getinheritsched): Likewise. + * nptl/pthread_attr_getschedparam.c + (__pthread_attr_getschedparam): Likewise. + * nptl/pthread_attr_getschedpolicy.c + (__pthread_attr_getschedpolicy): Likewise. + * nptl/pthread_attr_getscope.c (__pthread_attr_getscope): + Likewise. + * nptl/pthread_attr_getstack.c (__pthread_attr_getstack): + Likewise. + * nptl/pthread_attr_getstackaddr.c (__pthread_attr_getstackaddr): + Likewise. + * nptl/pthread_attr_getstacksize.c (__pthread_attr_getstacksize): + Likewise. + * nptl/pthread_attr_init.c (__pthread_attr_init_2_1): Likewise. + (__pthread_attr_init_2_0): Likewise. + * nptl/pthread_attr_setdetachstate.c + (__pthread_attr_setdetachstate): Likewise. + * nptl/pthread_attr_setguardsize.c (pthread_attr_setguardsize): + Likewise. + * nptl/pthread_attr_setinheritsched.c + (__pthread_attr_setinheritsched): Likewise. + * nptl/pthread_attr_setschedparam.c + (__pthread_attr_setschedparam): Likewise. + * nptl/pthread_attr_setschedpolicy.c + (__pthread_attr_setschedpolicy): Likewise. + * nptl/pthread_attr_setscope.c (__pthread_attr_setscope): + Likewise. + * nptl/pthread_attr_setstack.c (__pthread_attr_setstack): + Likewise. + * nptl/pthread_attr_setstackaddr.c (__pthread_attr_setstackaddr): + Likewise. + * nptl/pthread_attr_setstacksize.c (__pthread_attr_setstacksize): + Likewise. + * nptl/pthread_condattr_setclock.c (pthread_condattr_setclock): + Likewise. + * nptl/pthread_create.c (__find_in_stack_list): Likewise. + * nptl/pthread_getattr_np.c (pthread_getattr_np): Likewise. + * nptl/pthread_mutex_cond_lock.c (__pthread_mutex_lock): Define to + use internal_function. + * nptl/pthread_mutex_init.c (__pthread_mutex_init): Convert to + prototype-style function definition. + * nptl/pthread_mutex_lock.c (__pthread_mutex_lock): Likewise. + (__pthread_mutex_cond_lock_adjust): Likewise. Use + internal_function. + * nptl/pthread_mutex_timedlock.c (pthread_mutex_timedlock): + Convert to prototype-style function definition. + * nptl/pthread_mutex_trylock.c (__pthread_mutex_trylock): + Likewise. + * nptl/pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): + Likewise. + (__pthread_mutex_unlock): Likewise. + * nptl_db/td_ta_clear_event.c (td_ta_clear_event): Likewise. + * nptl_db/td_ta_set_event.c (td_ta_set_event): Likewise. + * nptl_db/td_thr_clear_event.c (td_thr_clear_event): Likewise. + * nptl_db/td_thr_event_enable.c (td_thr_event_enable): Likewise. + * nptl_db/td_thr_set_event.c (td_thr_set_event): Likewise. + * nss/makedb.c (process_input): Likewise. + * posix/fnmatch.c (__strchrnul): Likewise. + (__wcschrnul): Likewise. + (fnmatch): Likewise. + * posix/fnmatch_loop.c (FCT): Likewise. + * posix/glob.c (globfree): Likewise. + (__glob_pattern_type): Likewise. + (__glob_pattern_p): Likewise. + * posix/regcomp.c (re_compile_pattern): Likewise. + (re_set_syntax): Likewise. + (re_compile_fastmap): Likewise. + (regcomp): Likewise. + (regerror): Likewise. + (regfree): Likewise. + * posix/regexec.c (regexec): Likewise. + (re_match): Likewise. + (re_search): Likewise. + (re_match_2): Likewise. + (re_search_2): Likewise. + (re_search_stub): Likewise. Use internal_function + (re_copy_regs): Likewise. + (re_set_registers): Convert to prototype-style function + definition. + (prune_impossible_nodes): Likewise. Use internal_function. + * resolv/inet_net_pton.c (inet_net_pton): Convert to + prototype-style function definition. + (inet_net_pton_ipv4): Likewise. + * stdlib/strtod_l.c (____STRTOF_INTERNAL): Likewise. + * sysdeps/pthread/aio_cancel.c (aio_cancel): Likewise. + * sysdeps/pthread/aio_suspend.c (aio_suspend): Likewise. + * sysdeps/pthread/timer_delete.c (timer_delete): Likewise. + * sysdeps/unix/sysv/linux/dl-openat64.c (openat64): Likewise. + Make variadic. + * time/strptime_l.c (localtime_r): Convert to prototype-style + function definition. + * wcsmbs/mbsnrtowcs.c (__mbsnrtowcs): Likewise. + * wcsmbs/mbsrtowcs_l.c (__mbsrtowcs_l): Likewise. + * wcsmbs/wcsnrtombs.c (__wcsnrtombs): Likewise. + * wcsmbs/wcsrtombs.c (__wcsrtombs): Likewise. + +diff --git a/sysdeps/unix/sysv/linux/dl-openat64.c b/sysdeps/unix/sysv/linux/dl-openat64.c +index 7d100bb..7eea0ca 100644 +--- a/sysdeps/unix/sysv/linux/dl-openat64.c ++++ b/sysdeps/unix/sysv/linux/dl-openat64.c +@@ -23,10 +23,7 @@ + + + int +-openat64 (dfd, file, oflag) +- int dfd; +- const char *file; +- int oflag; ++openat64 (int dfd, const char *file, int oflag, ...) + { + assert ((oflag & O_CREAT) == 0); + diff --git a/packages/glibc/2.17/104-unused-variables.patch b/packages/glibc/2.17/104-unused-variables.patch new file mode 100644 index 0000000..80e0ff2 --- /dev/null +++ b/packages/glibc/2.17/104-unused-variables.patch @@ -0,0 +1,157 @@ +commit 6565fcb6e189d67b5a3f321453daebb805056d73 +Author: Wilco Dijkstra <wdijkstr@arm.com> +Date: Fri Sep 18 20:27:20 2015 +0100 + + Fix several build failures with GCC6 due to unused static variables. + + 2015-09-18 Wilco Dijkstra <wdijkstr@arm.com> + + * resolv/base64.c (rcsid): Remove unused static. + * sysdeps/ieee754/dbl-64/atnat2.h (qpi1): Remove unused + static. (tqpi1): Likewise. + * sysdeps/ieee754/dbl-64/uexp.h (one): Likewise. + * sysdeps/ieee754/dbl-64/upow.h (sqrt_2): Likewise. + * sysdeps/ieee754/flt-32/e_log10f.c (one): Likewise. + * sysdeps/ieee754/flt-32/s_cosf.c (one): Likewise. + * sysdeps/ieee754/ldbl-128/e_lgammal_r.c (zero): Likewise. + * sysdeps/ieee754/ldbl-128/s_erfl.c (half): Likewise. + * sysdeps/ieee754/ldbl-128/s_log1pl.c (maxlog): Likewise. + * timezone/private.h (time_t_min): Likewise. (time_t_max): + Likewise. + +diff --git a/resolv/base64.c b/resolv/base64.c +index ea584ed..519e5d2 100644 +--- a/resolv/base64.c ++++ b/resolv/base64.c +@@ -40,10 +40,6 @@ + * IF IBM IS APPRISED OF THE POSSIBILITY OF SUCH DAMAGES. + */ + +-#if !defined(LINT) && !defined(CODECENTER) +-static const char rcsid[] = "$BINDId: base64.c,v 8.7 1999/10/13 16:39:33 vixie Exp $"; +-#endif /* not lint */ +- + #include <sys/types.h> + #include <sys/param.h> + #include <sys/socket.h> +diff --git a/sysdeps/ieee754/dbl-64/atnat2.h b/sysdeps/ieee754/dbl-64/atnat2.h +index e0d65af..82943f9 100644 +--- a/sysdeps/ieee754/dbl-64/atnat2.h ++++ b/sysdeps/ieee754/dbl-64/atnat2.h +@@ -65,10 +65,8 @@ + /**/ hpi1 = {{0x3c91a626, 0x33145c07} }, /* pi/2-hpi */ + /**/ mhpi = {{0xbff921fb, 0x54442d18} }, /* -pi/2 */ + /**/ qpi = {{0x3fe921fb, 0x54442d18} }, /* pi/4 */ +-/**/ qpi1 = {{0x3c81a626, 0x33145c07} }, /* pi/4-qpi */ + /**/ mqpi = {{0xbfe921fb, 0x54442d18} }, /* -pi/4 */ + /**/ tqpi = {{0x4002d97c, 0x7f3321d2} }, /* 3pi/4 */ +-/**/ tqpi1 = {{0x3c9a7939, 0x4c9e8a0a} }, /* 3pi/4-tqpi */ + /**/ mtqpi = {{0xc002d97c, 0x7f3321d2} }, /* -3pi/4 */ + /**/ u1 = {{0x3c314c2a, 0x00000000} }, /* 9.377e-19 */ + /**/ u2 = {{0x3bf955e4, 0x00000000} }, /* 8.584e-20 */ +@@ -129,10 +127,8 @@ + /**/ hpi1 = {{0x33145c07, 0x3c91a626} }, /* pi/2-hpi */ + /**/ mhpi = {{0x54442d18, 0xbff921fb} }, /* -pi/2 */ + /**/ qpi = {{0x54442d18, 0x3fe921fb} }, /* pi/4 */ +-/**/ qpi1 = {{0x33145c07, 0x3c81a626} }, /* pi/4-qpi */ + /**/ mqpi = {{0x54442d18, 0xbfe921fb} }, /* -pi/4 */ + /**/ tqpi = {{0x7f3321d2, 0x4002d97c} }, /* 3pi/4 */ +-/**/ tqpi1 = {{0x4c9e8a0a, 0x3c9a7939} }, /* 3pi/4-tqpi */ + /**/ mtqpi = {{0x7f3321d2, 0xc002d97c} }, /* -3pi/4 */ + /**/ u1 = {{0x00000000, 0x3c314c2a} }, /* 9.377e-19 */ + /**/ u2 = {{0x00000000, 0x3bf955e4} }, /* 8.584e-20 */ +diff --git a/sysdeps/ieee754/dbl-64/uexp.h b/sysdeps/ieee754/dbl-64/uexp.h +index 6817eaf..42b21f2 100644 +--- a/sysdeps/ieee754/dbl-64/uexp.h ++++ b/sysdeps/ieee754/dbl-64/uexp.h +@@ -29,7 +29,7 @@ + + #include "mydefs.h" + +-const static double one = 1.0, zero = 0.0, hhuge = 1.0e300, tiny = 1.0e-300, ++const static double zero = 0.0, hhuge = 1.0e300, tiny = 1.0e-300, + err_0 = 1.000014, err_1 = 0.000016; + const static int4 bigint = 0x40862002, + badint = 0x40876000,smallint = 0x3C8fffff; +diff --git a/sysdeps/ieee754/dbl-64/upow.h b/sysdeps/ieee754/dbl-64/upow.h +index c8569a9..b4911e5 100644 +--- a/sysdeps/ieee754/dbl-64/upow.h ++++ b/sysdeps/ieee754/dbl-64/upow.h +@@ -34,7 +34,6 @@ + /**/ INF = {{0x7ff00000, 0x00000000}}, /* INF */ + /**/ nINF = {{0xfff00000, 0x00000000}}, /* -INF */ + /**/ NaNQ = {{0x7ff80000, 0x00000000}}, /* NaNQ */ +-/**/ sqrt_2 = {{0x3ff6a09e, 0x667f3bcc}}, /* sqrt(2) */ + /**/ ln2a = {{0x3fe62e42, 0xfefa3800}}, /* ln(2) 43 bits */ + /**/ ln2b = {{0x3d2ef357, 0x93c76730}}, /* ln(2)-ln2a */ + /**/ bigu = {{0x4297ffff, 0xfffffd2c}}, /* 1.5*2**42 -724*2**-10 */ +@@ -48,7 +47,6 @@ + /**/ INF = {{0x00000000, 0x7ff00000}}, /* INF */ + /**/ nINF = {{0x00000000, 0xfff00000}}, /* -INF */ + /**/ NaNQ = {{0x00000000, 0x7ff80000}}, /* NaNQ */ +-/**/ sqrt_2 = {{0x667f3bcc, 0x3ff6a09e}}, /* sqrt(2) */ + /**/ ln2a = {{0xfefa3800, 0x3fe62e42}}, /* ln(2) 43 bits */ + /**/ ln2b = {{0x93c76730, 0x3d2ef357}}, /* ln(2)-ln2a */ + /**/ bigu = {{0xfffffd2c, 0x4297ffff}}, /* 1.5*2**42 -724*2**-10 */ +diff --git a/sysdeps/ieee754/flt-32/e_log10f.c b/sysdeps/ieee754/flt-32/e_log10f.c +index 96f0e81..1daeef7 100644 +--- a/sysdeps/ieee754/flt-32/e_log10f.c ++++ b/sysdeps/ieee754/flt-32/e_log10f.c +@@ -22,8 +22,6 @@ ivln10 = 4.3429449201e-01, /* 0x3ede5bd9 */ + log10_2hi = 3.0102920532e-01, /* 0x3e9a2080 */ + log10_2lo = 7.9034151668e-07; /* 0x355427db */ + +-static const float zero = 0.0; +- + float + __ieee754_log10f(float x) + { +diff --git a/sysdeps/ieee754/flt-32/s_cosf.c b/sysdeps/ieee754/flt-32/s_cosf.c +index 864ab27..0affd40 100644 +--- a/sysdeps/ieee754/flt-32/s_cosf.c ++++ b/sysdeps/ieee754/flt-32/s_cosf.c +@@ -21,8 +21,6 @@ static char rcsid[] = "$NetBSD: s_cosf.c,v 1.4 1995/05/10 20:47:03 jtc Exp $"; + #include <math.h> + #include <math_private.h> + +-static const float one=1.0; +- + #ifndef COSF + # define COSF_FUNC __cosf + #else +diff --git a/sysdeps/ieee754/ldbl-128/e_lgammal_r.c b/sysdeps/ieee754/ldbl-128/e_lgammal_r.c +index 500aacc..ab5a96e 100644 +--- a/sysdeps/ieee754/ldbl-128/e_lgammal_r.c ++++ b/sysdeps/ieee754/ldbl-128/e_lgammal_r.c +@@ -82,7 +82,6 @@ DIAG_IGNORE_NEEDS_COMMENT (4.6, "-Woverflow"); + static const long double PIL = 3.1415926535897932384626433832795028841972E0L; + static const long double MAXLGM = 1.0485738685148938358098967157129705071571E4928L; + static const long double one = 1.0L; +-static const long double zero = 0.0L; + static const long double huge = 1.0e4000L; + + /* log gamma(x) = ( x - 0.5 ) * log(x) - x + LS2PI + 1/x P(1/x^2) +diff --git a/sysdeps/ieee754/ldbl-128/s_erfl.c b/sysdeps/ieee754/ldbl-128/s_erfl.c +index fa4609f..08c80a3 100644 +--- a/sysdeps/ieee754/ldbl-128/s_erfl.c ++++ b/sysdeps/ieee754/ldbl-128/s_erfl.c +@@ -140,7 +140,6 @@ deval (long double x, const long double *p, int n) + + static const long double + tiny = 1e-4931L, +- half = 0.5L, + one = 1.0L, + two = 2.0L, + /* 2/sqrt(pi) - 1 */ +diff --git a/sysdeps/ieee754/ldbl-128/s_log1pl.c b/sysdeps/ieee754/ldbl-128/s_log1pl.c +index ff759bc..9609550 100644 +--- a/sysdeps/ieee754/ldbl-128/s_log1pl.c ++++ b/sysdeps/ieee754/ldbl-128/s_log1pl.c +@@ -117,7 +117,6 @@ static const long double C2 = 1.428606820309417232121458176568075500134E-6L; + + static const long double sqrth = 0.7071067811865475244008443621048490392848L; + /* ln (2^16384 * (1 - 2^-113)) */ +-static const long double maxlog = 1.1356523406294143949491931077970764891253E4L; + static const long double zero = 0.0L; + + long double diff --git a/packages/glibc/2.17/105-misleading-indentation.patch b/packages/glibc/2.17/105-misleading-indentation.patch new file mode 100644 index 0000000..1dd8d85 --- /dev/null +++ b/packages/glibc/2.17/105-misleading-indentation.patch @@ -0,0 +1,24 @@ +commit 976ef870542580cf5fed896c2c652b3e1a95f9da +Author: Steve Ellcey <sellcey@mips.com> +Date: Fri Dec 11 09:19:37 2015 -0800 + + Fix indentation. + + * sysdeps/ieee754/flt-32/k_rem_pio2f.c (__kernel_rem_pio2f): + Fix indentation. + +diff --git a/sysdeps/ieee754/flt-32/k_rem_pio2f.c b/sysdeps/ieee754/flt-32/k_rem_pio2f.c +index 0c7685c..392afdb 100644 +--- a/sysdeps/ieee754/flt-32/k_rem_pio2f.c ++++ b/sysdeps/ieee754/flt-32/k_rem_pio2f.c +@@ -65,7 +65,9 @@ int __kernel_rem_pio2f(float *x, float *y, int e0, int nx, int prec, const int32 + + /* compute q[0],q[1],...q[jk] */ + for (i=0;i<=jk;i++) { +- for(j=0,fw=0.0;j<=jx;j++) fw += x[j]*f[jx+i-j]; q[i] = fw; ++ for(j=0,fw=0.0;j<=jx;j++) ++ fw += x[j]*f[jx+i-j]; ++ q[i] = fw; + } + + jz = jk; diff --git a/packages/glibc/2.17/106-dl-open-array-bounds.patch b/packages/glibc/2.17/106-dl-open-array-bounds.patch new file mode 100644 index 0000000..a8efe9a --- /dev/null +++ b/packages/glibc/2.17/106-dl-open-array-bounds.patch @@ -0,0 +1,27 @@ +commit 328c44c3670ebf6c1bd790acddce65a12998cd6c +Author: Roland McGrath <roland@hack.frob.com> +Date: Fri Apr 17 12:11:58 2015 -0700 + + Fuller check for invalid NSID in _dl_open. + +diff --git a/elf/dl-open.c b/elf/dl-open.c +index 0dbe07f..2d0e082 100644 +--- a/elf/dl-open.c ++++ b/elf/dl-open.c +@@ -619,8 +619,14 @@ no more namespaces available for dlmopen()")); + /* Never allow loading a DSO in a namespace which is empty. Such + direct placements is only causing problems. Also don't allow + loading into a namespace used for auditing. */ +- else if (__builtin_expect (nsid != LM_ID_BASE && nsid != __LM_ID_CALLER, 0) +- && (GL(dl_ns)[nsid]._ns_nloaded == 0 ++ else if (__glibc_unlikely (nsid != LM_ID_BASE && nsid != __LM_ID_CALLER) ++ && (__glibc_unlikely (nsid < 0 || nsid >= GL(dl_nns)) ++ /* This prevents the [NSID] index expressions from being ++ evaluated, so the compiler won't think that we are ++ accessing an invalid index here in the !SHARED case where ++ DL_NNS is 1 and so any NSID != 0 is invalid. */ ++ || DL_NNS == 1 ++ || GL(dl_ns)[nsid]._ns_nloaded == 0 + || GL(dl_ns)[nsid]._ns_loaded->l_auditing)) + _dl_signal_error (EINVAL, file, NULL, + N_("invalid target namespace in dlmopen()")); diff --git a/packages/glibc/2.17/120-support-make4.patch b/packages/glibc/2.17/120-support-make4.patch new file mode 100644 index 0000000..ca2bae0 --- /dev/null +++ b/packages/glibc/2.17/120-support-make4.patch @@ -0,0 +1,38 @@ +Original patch modified: Removed ChangeLog and NEWS sections, ajdust for configure.in +KS + +From: Marc-Antoine Perennou <Marc-Antoine@Perennou.com> +Date: Thu, 31 Oct 2013 02:37:50 +0000 (+1000) +Subject: Accept make versions 4.0 and greater +X-Git-Tag: glibc-2.19~556 +X-Git-Url: https://sourceware.org/git/?p=glibc.git;a=commitdiff_plain;h=28d708c44bc47b56f6551ff285f78edcf61c208a;hp=a56ee40b176d0a3f47f2a7eb75208f2e3763c9fd + +Accept make versions 4.0 and greater +--- + +diff --git a/configure b/configure +index f382138..5e61abd 100755 +--- a/configure ++++ b/configure +@@ -4761,7 +4761,7 @@ $as_echo_n "checking version of $MAKE... " >&6; } + ac_prog_version=`$MAKE --version 2>&1 | sed -n 's/^.*GNU Make[^0-9]*\([0-9][0-9.]*\).*$/\1/p'` + case $ac_prog_version in + '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; +- 3.79* | 3.[89]*) ++ 3.79* | 3.[89]* | [4-9].* | [1-9][0-9]*) + ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; + *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; + +diff --git a/configure.in b/configure.in +index 49b70fd..6da8efd 100644 +--- a/configure.in ++++ b/configure.in +@@ -984,7 +984,7 @@ AC_CHECK_PROG_VER(CC, ${ac_tool_prefix}gcc ${ac_tool_prefix}cc, -v, + critic_missing="$critic_missing gcc") + AC_CHECK_PROG_VER(MAKE, gnumake gmake make, --version, + [GNU Make[^0-9]*\([0-9][0-9.]*\)], +- [3.79* | 3.[89]*], critic_missing="$critic_missing make") ++ [3.79* | 3.[89]* | [4-9].* | [1-9][0-9]*], critic_missing="$critic_missing make") + + AC_CHECK_PROG_VER(MSGFMT, gnumsgfmt gmsgfmt msgfmt, --version, + [GNU gettext.* \([0-9]*\.[0-9.]*\)], diff --git a/packages/glibc/2.17/140-Fix-combreloc-test-BSD-grep.patch b/packages/glibc/2.17/140-Fix-combreloc-test-BSD-grep.patch new file mode 100644 index 0000000..3c34e01 --- /dev/null +++ b/packages/glibc/2.17/140-Fix-combreloc-test-BSD-grep.patch @@ -0,0 +1,49 @@ +From 61d5f9c09b3157db76bd1a393e248c262a8d9dd4 Mon Sep 17 00:00:00 2001 +From: Alexey Neyman <stilor@att.net> +Date: Wed, 8 Mar 2017 14:31:10 -0800 +Subject: [PATCH] Fix combreloc test with BSD grep + +The test for "-z combreloc" fails when cross-compiling on a machine +that uses BSD grep (e.g. on macos). grep complains about empty +subexpression and exits with non-zero status, which is interpreted +by configure as "not found". As a result, support for "-z combreloc" +(HAVE_Z_COMBRELOC) is not detected, leading to link failure on SPARC. + + * configure.ac: Avoid empty subexpression in grep. + +Signed-off-by: Alexey Neyman <stilor@att.net> +--- + ChangeLog | 5 +++++ + configure | 2 +- + configure.ac | 2 +- + 3 files changed, 7 insertions(+), 2 deletions(-) + +diff --git a/configure b/configure +index eecd0ac..0118bd1 100755 +--- a/configure ++++ b/configure +@@ -5804,7 +5804,7 @@ if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } + then +- if $READELF -S conftest.so | grep '\.rel\(a\|\)\.dyn' > /dev/null; then ++ if $READELF -S conftest.so | grep '\.\(rel\|rela\)\.dyn' > /dev/null; then + libc_cv_z_combreloc=yes + else + libc_cv_z_combreloc=no +diff --git a/configure.ac b/configure.ac +index 4a77411..19f6d87 100644 +--- a/configure.in ++++ b/configure.in +@@ -1391,7 +1391,7 @@ dnl cross-platform since the gcc used can be a cross compiler. Without + dnl introducing new options this is not easily doable. Instead use a tool + dnl which always is cross-platform: readelf. To detect whether -z combreloc + dnl look for a section named .rel.dyn. +- if $READELF -S conftest.so | grep '\.rel\(a\|\)\.dyn' > /dev/null; then ++ if $READELF -S conftest.so | grep '\.\(rel\|rela\)\.dyn' > /dev/null; then + libc_cv_z_combreloc=yes + else + libc_cv_z_combreloc=no +-- +2.9.3 + diff --git a/packages/glibc/2.17/300-macos-cross-rpcgen.patch b/packages/glibc/2.17/300-macos-cross-rpcgen.patch new file mode 100644 index 0000000..e654644 --- /dev/null +++ b/packages/glibc/2.17/300-macos-cross-rpcgen.patch @@ -0,0 +1,32 @@ +commit ae7080d30c68cfa0c81ce3422dca948f64a94f50 +Author: Jia Liu <proljc@gmail.com> +Date: Sat Sep 7 00:01:08 2013 +0800 + + sunrpc/rpc/types.h: fix OS X and FreeBSD build problems + + When I build arm-linux-gcc on OS X, I find glibc will get a build error + in sunrpc/rpc/types.h, so I add __APPLE_CC__ to make OS X build OK. + For FreeBSD, Add __FreeBSD__ to make it build OK, too. + + URL: http://sourceware.org/ml/libc-alpha/2013-09/msg00155.html + URL: http://sourceware.org/ml/libc-alpha/2013-09/msg00217.html + URL: http://sourceware.org/ml/libc-alpha/2013-09/msg00240.html + Signed-off-by: Jia Liu <proljc@gmail.com> + Signed-off-by: Mike Frysinger <vapier@gentoo.org> + +diff --git a/sunrpc/rpc/types.h b/sunrpc/rpc/types.h +index 3dca5c4..beded52 100644 +--- a/sunrpc/rpc/types.h ++++ b/sunrpc/rpc/types.h +@@ -69,6 +69,11 @@ typedef unsigned long rpcport_t; + #include <sys/types.h> + #endif + ++#if defined __APPLE_CC__ || defined __FreeBSD__ ++# define __u_char_defined ++# define __daddr_t_defined ++#endif ++ + #ifndef __u_char_defined + typedef __u_char u_char; + typedef __u_short u_short; diff --git a/packages/glibc/2.17/920-fix-rpc_parse-format.patch b/packages/glibc/2.17/920-fix-rpc_parse-format.patch new file mode 100644 index 0000000..37e58da --- /dev/null +++ b/packages/glibc/2.17/920-fix-rpc_parse-format.patch @@ -0,0 +1,60 @@ +commit 5874510faaf3cbd0bb112aaacab9f225002beed1 +Author: Joseph Myers <joseph@codesourcery.com> +Date: Tue Nov 8 23:44:51 2016 +0000 + + Fix rpcgen buffer overrun (bug 20790). + + Building with GCC 7 produces an error building rpcgen: + + rpc_parse.c: In function 'get_prog_declaration': + rpc_parse.c:543:25: error: may write a terminating nul past the end of the destination [-Werror=format-length=] + sprintf (name, "%s%d", ARGNAME, num); /* default name of argument */ + ~~~~^ + rpc_parse.c:543:5: note: format output between 5 and 14 bytes into a destination of size 10 + sprintf (name, "%s%d", ARGNAME, num); /* default name of argument */ + ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + That buffer overrun is for the case where the .x file declares a + program with a million arguments. The strcpy two lines above can + generate a buffer overrun much more simply for a long argument name. + + The limit on length of line read by rpcgen (MAXLINESIZE == 1024) + provides a bound on the buffer size needed, so this patch just changes + the buffer size to MAXLINESIZE to avoid both possible buffer + overruns. A testcase is added that rpcgen does not crash with a + 500-character argument name, where it previously crashed. + + It would not at all surprise me if there are many other ways of + crashing rpcgen with either valid or invalid input; fuzz testing would + likely find various such bugs, though I don't think they are that + important to fix (rpcgen is not that likely to be used with untrusted + .x files as input). (As well as fuzz-findable bugs there are probably + also issues when various int variables get overflowed on very large + input.) The test infrastructure for rpcgen-not-crashing tests would + need extending if tests are to be added for cases where rpcgen should + produce an error, as opposed to cases where it should succeed. + + Tested for x86_64 and x86. + + [BZ #20790] + * sunrpc/rpc_parse.c (get_prog_declaration): Increase buffer size + to MAXLINESIZE. + * sunrpc/bug20790.x: New file. + * sunrpc/Makefile [$(run-built-tests) = yes] (rpcgen-tests): New + variable. + [$(run-built-tests) = yes] (tests-special): Add $(rpcgen-tests). + [$(run-built-tests) = yes] ($(rpcgen-tests)): New rule. + +diff --git a/sunrpc/rpc_parse.c b/sunrpc/rpc_parse.c +index 1a1df6d8c2..505a6554cf 100644 +--- a/sunrpc/rpc_parse.c ++++ b/sunrpc/rpc_parse.c +@@ -521,7 +521,7 @@ static void + get_prog_declaration (declaration * dec, defkind dkind, int num /* arg number */ ) + { + token tok; +- char name[10]; /* argument name */ ++ char name[MAXLINESIZE]; /* argument name */ + + if (dkind == DEF_PROGRAM) + { diff --git a/packages/glibc/2.17/940-nis-bogus-conditional.patch b/packages/glibc/2.17/940-nis-bogus-conditional.patch new file mode 100644 index 0000000..09b38cf --- /dev/null +++ b/packages/glibc/2.17/940-nis-bogus-conditional.patch @@ -0,0 +1,62 @@ +commit f88759ea9bd3c8d8fef28f123ba9767cb0e421a3 +Author: Joseph Myers <joseph@codesourcery.com> +Date: Wed Dec 21 23:44:01 2016 +0000 + + Fix nss_nisplus build with mainline GCC (bug 20978). + + glibc build with current mainline GCC fails because + nis/nss_nisplus/nisplus-alias.c contains code + + if (name != NULL) + { + *errnop = EINVAL; + return NSS_STATUS_UNAVAIL; + } + + char buf[strlen (name) + 9 + tablename_len]; + + producing an error about strlen being called on a pointer that is + always NULL (and a subsequent use of that pointer with a %s format in + snprintf). + + As Andreas noted, the bogus conditional comes from a 1997 change: + + - if (name == NULL || strlen(name) > 8) + - return NSS_STATUS_NOTFOUND; + - else + + if (name != NULL || strlen(name) <= 8) + + So the intention is clearly to return an error for NULL name. + + This patch duly inverts the sense of the conditional. It fixes the + build with GCC mainline, and passes usual glibc testsuite testing for + x86_64. However, I have not tried any actual substantive nisplus + testing, do not have an environment for such testing, and do not know + whether it is possible that strlen (name) or tablename_len might be + large so that the VLA for buf is actually a security issue. However, + if it is a security issue, there are plenty of other similar instances + in the nisplus code (that haven't been hidden by a bogus comparison + with NULL) - and nis_table.c:__create_ib_request uses strdupa on the + string passed to nis_list, so a local fix in the caller wouldn't + suffice anyway (see bug 20987). (Calls to strdupa and other such + macros that use alloca must be considered equally questionable + regarding stack overflow issues as direct calls to alloca and VLA + declarations.) + + [BZ #20978] + * nis/nss_nisplus/nisplus-alias.c (_nss_nisplus_getaliasbyname_r): + Compare name == NULL, not name != NULL. + +diff --git a/nis/nss_nisplus/nisplus-alias.c b/nis/nss_nisplus/nisplus-alias.c +index 7f698b4e6d..cb5acce01d 100644 +--- a/nis/nss_nisplus/nisplus-alias.c ++++ b/nis/nss_nisplus/nisplus-alias.c +@@ -291,7 +291,7 @@ _nss_nisplus_getaliasbyname_r (const char *name, struct aliasent *alias, + return status; + } + +- if (name != NULL) ++ if (name == NULL) + { + *errnop = EINVAL; + return NSS_STATUS_UNAVAIL; diff --git a/packages/glibc/2.17/version.desc b/packages/glibc/2.17/version.desc new file mode 100644 index 0000000..9ac7dc2 --- /dev/null +++ b/packages/glibc/2.17/version.desc @@ -0,0 +1 @@ +# Not obsolete (CentOS 7, EOL 06/2024) |