lol

glibc: Update to 2.20

+9 -741
+2 -10
pkgs/development/libraries/glibc/common.nix
··· 13 13 14 14 let 15 15 16 - version = "2.19"; 16 + version = "2.20"; 17 17 18 18 in 19 19 ··· 56 56 "/bin:/usr/bin", which is inappropriate on NixOS machines. This 57 57 patch extends the search path by "/run/current-system/sw/bin". */ 58 58 ./fix_path_attribute_in_getconf.patch 59 - 60 - ./fix-math.patch 61 - 62 - ./cve-2014-0475.patch 63 - ./cve-2014-5119.patch 64 - 65 - /* Remove references to the compilation date. */ 66 - ./glibc-remove-date-from-compilation-banner.patch 67 59 ]; 68 60 69 61 postPatch = ··· 155 147 } 156 148 else fetchurl { 157 149 url = "mirror://gnu/glibc/glibc-${version}.tar.gz"; 158 - sha256 = "15n7x9mmzhd7w6s5hd9srx0h23b32gwb306x98k9ss940yvnvb8q"; 150 + sha256 = "1g6ysvk15arpi7c1f1fpx5slgfr2k3dqd5xr0yvijajp1m0xxq9p"; 159 151 }; 160 152 161 153 # Remove absolute paths from `configure' & co.; build out-of-tree.
-170
pkgs/development/libraries/glibc/cve-2014-0475.patch
··· 1 - Picked from upstream commits, but excluding changes to news and tests: 2 - d183645616b0533 and 4e8f95a0df7c2 3 - Also see https://sourceware.org/bugzilla/show_bug.cgi?id=17137 4 - 5 - diff --git a/locale/setlocale.c b/locale/setlocale.c 6 - index 9458468..6455b8b 100644 7 - --- a/locale/setlocale.c 8 - +++ b/locale/setlocale.c 9 - @@ -272,6 +272,8 @@ setlocale (int category, const char *locale) 10 - of entries of the form `CATEGORY=VALUE'. */ 11 - const char *newnames[__LC_LAST]; 12 - struct __locale_data *newdata[__LC_LAST]; 13 - + /* Copy of the locale argument, for in-place splitting. */ 14 - + char *locale_copy = NULL; 15 - 16 - /* Set all name pointers to the argument name. */ 17 - for (category = 0; category < __LC_LAST; ++category) 18 - @@ -281,7 +283,13 @@ setlocale (int category, const char *locale) 19 - if (__glibc_unlikely (strchr (locale, ';') != NULL)) 20 - { 21 - /* This is a composite name. Make a copy and split it up. */ 22 - - char *np = strdupa (locale); 23 - + locale_copy = strdup (locale); 24 - + if (__glibc_unlikely (locale_copy == NULL)) 25 - + { 26 - + __libc_rwlock_unlock (__libc_setlocale_lock); 27 - + return NULL; 28 - + } 29 - + char *np = locale_copy; 30 - char *cp; 31 - int cnt; 32 - 33 - @@ -299,6 +307,7 @@ setlocale (int category, const char *locale) 34 - { 35 - error_return: 36 - __libc_rwlock_unlock (__libc_setlocale_lock); 37 - + free (locale_copy); 38 - 39 - /* Bogus category name. */ 40 - ERROR_RETURN; 41 - @@ -391,8 +400,9 @@ setlocale (int category, const char *locale) 42 - /* Critical section left. */ 43 - __libc_rwlock_unlock (__libc_setlocale_lock); 44 - 45 - - /* Free the resources (the locale path variable). */ 46 - + /* Free the resources. */ 47 - free (locale_path); 48 - + free (locale_copy); 49 - 50 - return composite; 51 - } 52 - diff --git a/locale/findlocale.c b/locale/findlocale.c 53 - index bbaf708..22e8b53 100644 54 - --- a/locale/findlocale.c 55 - +++ b/locale/findlocale.c 56 - @@ -17,6 +17,7 @@ 57 - <http://www.gnu.org/licenses/>. */ 58 - 59 - #include <assert.h> 60 - +#include <errno.h> 61 - #include <locale.h> 62 - #include <stdlib.h> 63 - #include <string.h> 64 - @@ -57,6 +58,45 @@ struct loaded_l10nfile *_nl_locale_file_list[__LC_LAST]; 65 - 66 - const char _nl_default_locale_path[] attribute_hidden = LOCALEDIR; 67 - 68 - +/* Checks if the name is actually present, that is, not NULL and not 69 - + empty. */ 70 - +static inline int 71 - +name_present (const char *name) 72 - +{ 73 - + return name != NULL && name[0] != '\0'; 74 - +} 75 - + 76 - +/* Checks that the locale name neither extremely long, nor contains a 77 - + ".." path component (to prevent directory traversal). */ 78 - +static inline int 79 - +valid_locale_name (const char *name) 80 - +{ 81 - + /* Not set. */ 82 - + size_t namelen = strlen (name); 83 - + /* Name too long. The limit is arbitrary and prevents stack overflow 84 - + issues later. */ 85 - + if (__glibc_unlikely (namelen > 255)) 86 - + return 0; 87 - + /* Directory traversal attempt. */ 88 - + static const char slashdot[4] = {'/', '.', '.', '/'}; 89 - + if (__glibc_unlikely (memmem (name, namelen, 90 - + slashdot, sizeof (slashdot)) != NULL)) 91 - + return 0; 92 - + if (namelen == 2 && __glibc_unlikely (name[0] == '.' && name [1] == '.')) 93 - + return 0; 94 - + if (namelen >= 3 95 - + && __glibc_unlikely (((name[0] == '.' 96 - + && name[1] == '.' 97 - + && name[2] == '/') 98 - + || (name[namelen - 3] == '/' 99 - + && name[namelen - 2] == '.' 100 - + && name[namelen - 1] == '.')))) 101 - + return 0; 102 - + /* If there is a slash in the name, it must start with one. */ 103 - + if (__glibc_unlikely (memchr (name, '/', namelen) != NULL) && name[0] != '/') 104 - + return 0; 105 - + return 1; 106 - +} 107 - 108 - struct __locale_data * 109 - internal_function 110 - @@ -65,7 +105,7 @@ _nl_find_locale (const char *locale_path, size_t locale_path_len, 111 - { 112 - int mask; 113 - /* Name of the locale for this category. */ 114 - - char *loc_name; 115 - + char *loc_name = (char *) *name; 116 - const char *language; 117 - const char *modifier; 118 - const char *territory; 119 - @@ -73,31 +113,39 @@ _nl_find_locale (const char *locale_path, size_t locale_path_len, 120 - const char *normalized_codeset; 121 - struct loaded_l10nfile *locale_file; 122 - 123 - - if ((*name)[0] == '\0') 124 - + if (loc_name[0] == '\0') 125 - { 126 - /* The user decides which locale to use by setting environment 127 - variables. */ 128 - - *name = getenv ("LC_ALL"); 129 - - if (*name == NULL || (*name)[0] == '\0') 130 - - *name = getenv (_nl_category_names.str 131 - + loc_name = getenv ("LC_ALL"); 132 - + if (!name_present (loc_name)) 133 - + loc_name = getenv (_nl_category_names.str 134 - + _nl_category_name_idxs[category]); 135 - - if (*name == NULL || (*name)[0] == '\0') 136 - - *name = getenv ("LANG"); 137 - + if (!name_present (loc_name)) 138 - + loc_name = getenv ("LANG"); 139 - + if (!name_present (loc_name)) 140 - + loc_name = (char *) _nl_C_name; 141 - } 142 - 143 - - if (*name == NULL || (*name)[0] == '\0' 144 - - || (__builtin_expect (__libc_enable_secure, 0) 145 - - && strchr (*name, '/') != NULL)) 146 - - *name = (char *) _nl_C_name; 147 - + /* We used to fall back to the C locale if the name contains a slash 148 - + character '/', but we now check for directory traversal in 149 - + valid_locale_name, so this is no longer necessary. */ 150 - 151 - - if (__builtin_expect (strcmp (*name, _nl_C_name), 1) == 0 152 - - || __builtin_expect (strcmp (*name, _nl_POSIX_name), 1) == 0) 153 - + if (__builtin_expect (strcmp (loc_name, _nl_C_name), 1) == 0 154 - + || __builtin_expect (strcmp (loc_name, _nl_POSIX_name), 1) == 0) 155 - { 156 - /* We need not load anything. The needed data is contained in 157 - the library itself. */ 158 - *name = (char *) _nl_C_name; 159 - return _nl_C[category]; 160 - } 161 - + else if (!valid_locale_name (loc_name)) 162 - + { 163 - + __set_errno (EINVAL); 164 - + return NULL; 165 - + } 166 - + 167 - + *name = loc_name; 168 - 169 - /* We really have to load some data. First we try the archive, 170 - but only if there was no LOCPATH environment variable specified. */
-206
pkgs/development/libraries/glibc/cve-2014-5119.patch
··· 1 - http://anonscm.debian.org/viewvc/pkg-glibc/glibc-package/trunk/debian/patches/any/cvs-CVE-2014-5119.diff?revision=6248&view=co 2 - 3 - commit a1a6a401ab0a3c9f15fb7eaebbdcee24192254e8 4 - Author: Florian Weimer <fweimer@redhat.com> 5 - Date: Tue Aug 26 19:38:59 2014 +0200 6 - 7 - __gconv_translit_find: Disable function [BZ #17187] 8 - 9 - This functionality has never worked correctly, and the implementation 10 - contained a security vulnerability (CVE-2014-5119). 11 - 12 - 2014-08-26 Florian Weimer <fweimer@redhat.com> 13 - 14 - [BZ #17187] 15 - * iconv/gconv_trans.c (struct known_trans, search_tree, lock, 16 - trans_compare, open_translit, __gconv_translit_find): 17 - Remove module loading code. 18 - 19 - --- a/iconv/gconv_trans.c 20 - +++ b/iconv/gconv_trans.c 21 - @@ -238,181 +238,12 @@ __gconv_transliterate (struct __gconv_step *step, 22 - return __GCONV_ILLEGAL_INPUT; 23 - } 24 - 25 - - 26 - -/* Structure to represent results of found (or not) transliteration 27 - - modules. */ 28 - -struct known_trans 29 - -{ 30 - - /* This structure must remain the first member. */ 31 - - struct trans_struct info; 32 - - 33 - - char *fname; 34 - - void *handle; 35 - - int open_count; 36 - -}; 37 - - 38 - - 39 - -/* Tree with results of previous calls to __gconv_translit_find. */ 40 - -static void *search_tree; 41 - - 42 - -/* We modify global data. */ 43 - -__libc_lock_define_initialized (static, lock); 44 - - 45 - - 46 - -/* Compare two transliteration entries. */ 47 - -static int 48 - -trans_compare (const void *p1, const void *p2) 49 - -{ 50 - - const struct known_trans *s1 = (const struct known_trans *) p1; 51 - - const struct known_trans *s2 = (const struct known_trans *) p2; 52 - - 53 - - return strcmp (s1->info.name, s2->info.name); 54 - -} 55 - - 56 - - 57 - -/* Open (maybe reopen) the module named in the struct. Get the function 58 - - and data structure pointers we need. */ 59 - -static int 60 - -open_translit (struct known_trans *trans) 61 - -{ 62 - - __gconv_trans_query_fct queryfct; 63 - - 64 - - trans->handle = __libc_dlopen (trans->fname); 65 - - if (trans->handle == NULL) 66 - - /* Not available. */ 67 - - return 1; 68 - - 69 - - /* Find the required symbol. */ 70 - - queryfct = __libc_dlsym (trans->handle, "gconv_trans_context"); 71 - - if (queryfct == NULL) 72 - - { 73 - - /* We cannot live with that. */ 74 - - close_and_out: 75 - - __libc_dlclose (trans->handle); 76 - - trans->handle = NULL; 77 - - return 1; 78 - - } 79 - - 80 - - /* Get the context. */ 81 - - if (queryfct (trans->info.name, &trans->info.csnames, &trans->info.ncsnames) 82 - - != 0) 83 - - goto close_and_out; 84 - - 85 - - /* Of course we also have to have the actual function. */ 86 - - trans->info.trans_fct = __libc_dlsym (trans->handle, "gconv_trans"); 87 - - if (trans->info.trans_fct == NULL) 88 - - goto close_and_out; 89 - - 90 - - /* Now the optional functions. */ 91 - - trans->info.trans_init_fct = 92 - - __libc_dlsym (trans->handle, "gconv_trans_init"); 93 - - trans->info.trans_context_fct = 94 - - __libc_dlsym (trans->handle, "gconv_trans_context"); 95 - - trans->info.trans_end_fct = 96 - - __libc_dlsym (trans->handle, "gconv_trans_end"); 97 - - 98 - - trans->open_count = 1; 99 - - 100 - - return 0; 101 - -} 102 - - 103 - - 104 - int 105 - internal_function 106 - __gconv_translit_find (struct trans_struct *trans) 107 - { 108 - - struct known_trans **found; 109 - - const struct path_elem *runp; 110 - - int res = 1; 111 - - 112 - - /* We have to have a name. */ 113 - - assert (trans->name != NULL); 114 - - 115 - - /* Acquire the lock. */ 116 - - __libc_lock_lock (lock); 117 - - 118 - - /* See whether we know this module already. */ 119 - - found = __tfind (trans, &search_tree, trans_compare); 120 - - if (found != NULL) 121 - - { 122 - - /* Is this module available? */ 123 - - if ((*found)->handle != NULL) 124 - - { 125 - - /* Maybe we have to reopen the file. */ 126 - - if ((*found)->handle != (void *) -1) 127 - - /* The object is not unloaded. */ 128 - - res = 0; 129 - - else if (open_translit (*found) == 0) 130 - - { 131 - - /* Copy the data. */ 132 - - *trans = (*found)->info; 133 - - (*found)->open_count++; 134 - - res = 0; 135 - - } 136 - - } 137 - - } 138 - - else 139 - - { 140 - - size_t name_len = strlen (trans->name) + 1; 141 - - int need_so = 0; 142 - - struct known_trans *newp; 143 - - 144 - - /* We have to continue looking for the module. */ 145 - - if (__gconv_path_elem == NULL) 146 - - __gconv_get_path (); 147 - - 148 - - /* See whether we have to append .so. */ 149 - - if (name_len <= 4 || memcmp (&trans->name[name_len - 4], ".so", 3) != 0) 150 - - need_so = 1; 151 - - 152 - - /* Create a new entry. */ 153 - - newp = (struct known_trans *) malloc (sizeof (struct known_trans) 154 - - + (__gconv_max_path_elem_len 155 - - + name_len + 3) 156 - - + name_len); 157 - - if (newp != NULL) 158 - - { 159 - - char *cp; 160 - - 161 - - /* Clear the struct. */ 162 - - memset (newp, '\0', sizeof (struct known_trans)); 163 - - 164 - - /* Store a copy of the module name. */ 165 - - newp->info.name = cp = (char *) (newp + 1); 166 - - cp = __mempcpy (cp, trans->name, name_len); 167 - - 168 - - newp->fname = cp; 169 - - 170 - - /* Search in all the directories. */ 171 - - for (runp = __gconv_path_elem; runp->name != NULL; ++runp) 172 - - { 173 - - cp = __mempcpy (__stpcpy ((char *) newp->fname, runp->name), 174 - - trans->name, name_len); 175 - - if (need_so) 176 - - memcpy (cp, ".so", sizeof (".so")); 177 - - 178 - - if (open_translit (newp) == 0) 179 - - { 180 - - /* We found a module. */ 181 - - res = 0; 182 - - break; 183 - - } 184 - - } 185 - - 186 - - if (res) 187 - - newp->fname = NULL; 188 - - 189 - - /* In any case we'll add the entry to our search tree. */ 190 - - if (__tsearch (newp, &search_tree, trans_compare) == NULL) 191 - - { 192 - - /* Yickes, this should not happen. Unload the object. */ 193 - - res = 1; 194 - - /* XXX unload here. */ 195 - - } 196 - - } 197 - - } 198 - - 199 - - __libc_lock_unlock (lock); 200 - - 201 - - return res; 202 - + /* Transliteration module loading has been removed because it never 203 - + worked as intended and suffered from a security vulnerability. 204 - + Consequently, this function always fails. */ 205 - + return 1; 206 - }
+5 -5
pkgs/development/libraries/glibc/dont-use-system-ld-so-preload.patch
··· 1 - diff -rupN a/elf/rtld.c b/elf/rtld.c 2 - --- a/elf/rtld.c 2013-08-11 00:52:55.000000001 +0200 3 - +++ b/elf/rtld.c 2014-02-18 13:56:19.000000001 +0100 4 - @@ -1639,7 +1639,7 @@ ERROR: ld.so: object '%s' cannot be load 1 + diff -ru glibc-2.20-orig/elf/rtld.c glibc-2.20/elf/rtld.c 2 + --- glibc-2.20-orig/elf/rtld.c 2014-09-07 10:09:09.000000000 +0200 3 + +++ glibc-2.20/elf/rtld.c 2014-10-27 11:32:25.203043157 +0100 4 + @@ -1513,7 +1513,7 @@ 5 5 open(). So we do this first. If it succeeds we do almost twice 6 6 the work but this does not matter, since it is not for production 7 7 use. */ 8 8 - static const char preload_file[] = "/etc/ld.so.preload"; 9 9 + static const char preload_file[] = "/etc/ld-nix.so.preload"; 10 - if (__builtin_expect (__access (preload_file, R_OK) == 0, 0)) 10 + if (__glibc_unlikely (__access (preload_file, R_OK) == 0)) 11 11 { 12 12 /* Read the contents of the file. */
-336
pkgs/development/libraries/glibc/fix-math.patch
··· 1 - From: Siddhesh Poyarekar <siddhesh@redhat.com> 2 - Date: Thu, 27 Feb 2014 15:42:09 +0000 (+0530) 3 - Subject: Fix sign of input to bsloww1 (BZ #16623) 4 - X-Git-Url: http://repo.or.cz/w/glibc.git/commitdiff_plain/1cadc85813d736f7682fa2eeadae639ab6b66c65 5 - 6 - Fix sign of input to bsloww1 (BZ #16623) 7 - 8 - In 84ba214c, I removed some redundant sign computations and in the 9 - process, I incorrectly got rid of a temporary variable, thus passing 10 - the absolute value of the input to bsloww1. This caused #16623. 11 - 12 - This fix undoes the incorrect change. 13 - 14 - [nix]: drop docs update (wouldn't apply) 15 - --- 16 - 17 - diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in 18 - index ac5348f..fafe96f 100644 19 - --- a/math/auto-libm-test-in 20 - +++ b/math/auto-libm-test-in 21 - @@ -594,6 +594,7 @@ cos 0x1.0000010b239a9p0 22 - cos 0x1.00000162a932bp0 23 - cos 0x1.000002d452a10p0 24 - cos 0x1.000005bc7d86dp0 25 - +cos 0x1.200145a975ce6p32 26 - cos 1 27 - cos 2 28 - cos 3 29 - @@ -1748,6 +1749,7 @@ sin 7 30 - sin 8 31 - sin 9 32 - sin 10 33 - +sin 0x1.2001469775ce6p32 34 - 35 - sincos 0 36 - sincos -0 37 - diff --git a/math/auto-libm-test-out b/math/auto-libm-test-out 38 - index 8f79359..59c08a7 100644 39 - --- a/math/auto-libm-test-out 40 - +++ b/math/auto-libm-test-out 41 - @@ -74446,6 +74446,75 @@ cos 0x1.000005bc7d86dp0 42 - = cos tonearest ldbl-128ibm 0x1.000005bc7d86dp+0L : 0x8.a513ba9f703d3ffffffcb92354p-4L : inexact-ok 43 - = cos towardzero ldbl-128ibm 0x1.000005bc7d86dp+0L : 0x8.a513ba9f703d3ffffffcb92354p-4L : inexact-ok 44 - = cos upward ldbl-128ibm 0x1.000005bc7d86dp+0L : 0x8.a513ba9f703d3ffffffcb92358p-4L : inexact-ok 45 - +cos 0x1.200145a975ce6p32 46 - += cos downward flt-32 0x1.200146p+32f : -0xf.74fbep-4f : inexact-ok 47 - += cos tonearest flt-32 0x1.200146p+32f : -0xf.74fbdp-4f : inexact-ok 48 - += cos towardzero flt-32 0x1.200146p+32f : -0xf.74fbdp-4f : inexact-ok 49 - += cos upward flt-32 0x1.200146p+32f : -0xf.74fbdp-4f : inexact-ok 50 - += cos downward dbl-64 0x1.200146p+32 : -0xf.74fbd5498fe5p-4 : inexact-ok 51 - += cos tonearest dbl-64 0x1.200146p+32 : -0xf.74fbd5498fe5p-4 : inexact-ok 52 - += cos towardzero dbl-64 0x1.200146p+32 : -0xf.74fbd5498fe48p-4 : inexact-ok 53 - += cos upward dbl-64 0x1.200146p+32 : -0xf.74fbd5498fe48p-4 : inexact-ok 54 - += cos downward ldbl-96-intel 0x1.200146p+32L : -0xf.74fbd5498fe4c0dp-4L : inexact-ok 55 - += cos tonearest ldbl-96-intel 0x1.200146p+32L : -0xf.74fbd5498fe4c0cp-4L : inexact-ok 56 - += cos towardzero ldbl-96-intel 0x1.200146p+32L : -0xf.74fbd5498fe4c0cp-4L : inexact-ok 57 - += cos upward ldbl-96-intel 0x1.200146p+32L : -0xf.74fbd5498fe4c0cp-4L : inexact-ok 58 - += cos downward ldbl-96-m68k 0x1.200146p+32L : -0xf.74fbd5498fe4c0dp-4L : inexact-ok 59 - += cos tonearest ldbl-96-m68k 0x1.200146p+32L : -0xf.74fbd5498fe4c0cp-4L : inexact-ok 60 - += cos towardzero ldbl-96-m68k 0x1.200146p+32L : -0xf.74fbd5498fe4c0cp-4L : inexact-ok 61 - += cos upward ldbl-96-m68k 0x1.200146p+32L : -0xf.74fbd5498fe4c0cp-4L : inexact-ok 62 - += cos downward ldbl-128 0x1.200146p+32L : -0xf.74fbd5498fe4c0c71bd9e4ef59e8p-4L : inexact-ok 63 - += cos tonearest ldbl-128 0x1.200146p+32L : -0xf.74fbd5498fe4c0c71bd9e4ef59e8p-4L : inexact-ok 64 - += cos towardzero ldbl-128 0x1.200146p+32L : -0xf.74fbd5498fe4c0c71bd9e4ef59ep-4L : inexact-ok 65 - += cos upward ldbl-128 0x1.200146p+32L : -0xf.74fbd5498fe4c0c71bd9e4ef59ep-4L : inexact-ok 66 - += cos downward ldbl-128ibm 0x1.200146p+32L : -0xf.74fbd5498fe4c0c71bd9e4ef5cp-4L : inexact-ok 67 - += cos tonearest ldbl-128ibm 0x1.200146p+32L : -0xf.74fbd5498fe4c0c71bd9e4ef58p-4L : inexact-ok 68 - += cos towardzero ldbl-128ibm 0x1.200146p+32L : -0xf.74fbd5498fe4c0c71bd9e4ef58p-4L : inexact-ok 69 - += cos upward ldbl-128ibm 0x1.200146p+32L : -0xf.74fbd5498fe4c0c71bd9e4ef58p-4L : inexact-ok 70 - += cos downward flt-32 0x1.200144p+32f : 0xf.bc96cp-4f : inexact-ok 71 - += cos tonearest flt-32 0x1.200144p+32f : 0xf.bc96dp-4f : inexact-ok 72 - += cos towardzero flt-32 0x1.200144p+32f : 0xf.bc96cp-4f : inexact-ok 73 - += cos upward flt-32 0x1.200144p+32f : 0xf.bc96dp-4f : inexact-ok 74 - += cos downward dbl-64 0x1.200144p+32 : 0xf.bc96ca2c658a8p-4 : inexact-ok 75 - += cos tonearest dbl-64 0x1.200144p+32 : 0xf.bc96ca2c658a8p-4 : inexact-ok 76 - += cos towardzero dbl-64 0x1.200144p+32 : 0xf.bc96ca2c658a8p-4 : inexact-ok 77 - += cos upward dbl-64 0x1.200144p+32 : 0xf.bc96ca2c658bp-4 : inexact-ok 78 - += cos downward ldbl-96-intel 0x1.200144p+32L : 0xf.bc96ca2c658abf5p-4L : inexact-ok 79 - += cos tonearest ldbl-96-intel 0x1.200144p+32L : 0xf.bc96ca2c658abf6p-4L : inexact-ok 80 - += cos towardzero ldbl-96-intel 0x1.200144p+32L : 0xf.bc96ca2c658abf5p-4L : inexact-ok 81 - += cos upward ldbl-96-intel 0x1.200144p+32L : 0xf.bc96ca2c658abf6p-4L : inexact-ok 82 - += cos downward ldbl-96-m68k 0x1.200144p+32L : 0xf.bc96ca2c658abf5p-4L : inexact-ok 83 - += cos tonearest ldbl-96-m68k 0x1.200144p+32L : 0xf.bc96ca2c658abf6p-4L : inexact-ok 84 - += cos towardzero ldbl-96-m68k 0x1.200144p+32L : 0xf.bc96ca2c658abf5p-4L : inexact-ok 85 - += cos upward ldbl-96-m68k 0x1.200144p+32L : 0xf.bc96ca2c658abf6p-4L : inexact-ok 86 - += cos downward ldbl-128 0x1.200144p+32L : 0xf.bc96ca2c658abf5ace7b886a8fbp-4L : inexact-ok 87 - += cos tonearest ldbl-128 0x1.200144p+32L : 0xf.bc96ca2c658abf5ace7b886a8fbp-4L : inexact-ok 88 - += cos towardzero ldbl-128 0x1.200144p+32L : 0xf.bc96ca2c658abf5ace7b886a8fbp-4L : inexact-ok 89 - += cos upward ldbl-128 0x1.200144p+32L : 0xf.bc96ca2c658abf5ace7b886a8fb8p-4L : inexact-ok 90 - += cos downward ldbl-128ibm 0x1.200144p+32L : 0xf.bc96ca2c658abf5ace7b886a8cp-4L : inexact-ok 91 - += cos tonearest ldbl-128ibm 0x1.200144p+32L : 0xf.bc96ca2c658abf5ace7b886a9p-4L : inexact-ok 92 - += cos towardzero ldbl-128ibm 0x1.200144p+32L : 0xf.bc96ca2c658abf5ace7b886a8cp-4L : inexact-ok 93 - += cos upward ldbl-128ibm 0x1.200144p+32L : 0xf.bc96ca2c658abf5ace7b886a9p-4L : inexact-ok 94 - += cos downward dbl-64 0x1.200145a975ce6p+32 : -0x6.568e7ed3dffdp-4 : inexact-ok 95 - += cos tonearest dbl-64 0x1.200145a975ce6p+32 : -0x6.568e7ed3dffccp-4 : inexact-ok 96 - += cos towardzero dbl-64 0x1.200145a975ce6p+32 : -0x6.568e7ed3dffccp-4 : inexact-ok 97 - += cos upward dbl-64 0x1.200145a975ce6p+32 : -0x6.568e7ed3dffccp-4 : inexact-ok 98 - += cos downward ldbl-96-intel 0x1.200145a975ce6p+32L : -0x6.568e7ed3dffcdfe8p-4L : inexact-ok 99 - += cos tonearest ldbl-96-intel 0x1.200145a975ce6p+32L : -0x6.568e7ed3dffcdfep-4L : inexact-ok 100 - += cos towardzero ldbl-96-intel 0x1.200145a975ce6p+32L : -0x6.568e7ed3dffcdfep-4L : inexact-ok 101 - += cos upward ldbl-96-intel 0x1.200145a975ce6p+32L : -0x6.568e7ed3dffcdfep-4L : inexact-ok 102 - += cos downward ldbl-96-m68k 0x1.200145a975ce6p+32L : -0x6.568e7ed3dffcdfe8p-4L : inexact-ok 103 - += cos tonearest ldbl-96-m68k 0x1.200145a975ce6p+32L : -0x6.568e7ed3dffcdfep-4L : inexact-ok 104 - += cos towardzero ldbl-96-m68k 0x1.200145a975ce6p+32L : -0x6.568e7ed3dffcdfep-4L : inexact-ok 105 - += cos upward ldbl-96-m68k 0x1.200145a975ce6p+32L : -0x6.568e7ed3dffcdfep-4L : inexact-ok 106 - += cos downward ldbl-128 0x1.200145a975ce6p+32L : -0x6.568e7ed3dffcdfe227fd726840e8p-4L : inexact-ok 107 - += cos tonearest ldbl-128 0x1.200145a975ce6p+32L : -0x6.568e7ed3dffcdfe227fd726840e4p-4L : inexact-ok 108 - += cos towardzero ldbl-128 0x1.200145a975ce6p+32L : -0x6.568e7ed3dffcdfe227fd726840e4p-4L : inexact-ok 109 - += cos upward ldbl-128 0x1.200145a975ce6p+32L : -0x6.568e7ed3dffcdfe227fd726840e4p-4L : inexact-ok 110 - += cos downward ldbl-128ibm 0x1.200145a975ce6p+32L : -0x6.568e7ed3dffcdfe227fd726842p-4L : inexact-ok 111 - += cos tonearest ldbl-128ibm 0x1.200145a975ce6p+32L : -0x6.568e7ed3dffcdfe227fd72684p-4L : inexact-ok 112 - += cos towardzero ldbl-128ibm 0x1.200145a975ce6p+32L : -0x6.568e7ed3dffcdfe227fd72684p-4L : inexact-ok 113 - += cos upward ldbl-128ibm 0x1.200145a975ce6p+32L : -0x6.568e7ed3dffcdfe227fd72684p-4L : inexact-ok 114 - cos 1 115 - = cos downward flt-32 0x1p+0f : 0x8.a514p-4f : inexact-ok 116 - = cos tonearest flt-32 0x1p+0f : 0x8.a514p-4f : inexact-ok 117 - @@ -157744,6 +157813,75 @@ sin 10 118 - = sin tonearest ldbl-128ibm 0xap+0L : -0x8.b44f7af9a7a92ce7fb22be025p-4L : inexact-ok 119 - = sin towardzero ldbl-128ibm 0xap+0L : -0x8.b44f7af9a7a92ce7fb22be024cp-4L : inexact-ok 120 - = sin upward ldbl-128ibm 0xap+0L : -0x8.b44f7af9a7a92ce7fb22be024cp-4L : inexact-ok 121 - +sin 0x1.2001469775ce6p32 122 - += sin downward flt-32 0x1.200148p+32f : -0x5.595d8p-4f : inexact-ok 123 - += sin tonearest flt-32 0x1.200148p+32f : -0x5.595d8p-4f : inexact-ok 124 - += sin towardzero flt-32 0x1.200148p+32f : -0x5.595d78p-4f : inexact-ok 125 - += sin upward flt-32 0x1.200148p+32f : -0x5.595d78p-4f : inexact-ok 126 - += sin downward dbl-64 0x1.200148p+32 : -0x5.595d7e536fe38p-4 : inexact-ok 127 - += sin tonearest dbl-64 0x1.200148p+32 : -0x5.595d7e536fe34p-4 : inexact-ok 128 - += sin towardzero dbl-64 0x1.200148p+32 : -0x5.595d7e536fe34p-4 : inexact-ok 129 - += sin upward dbl-64 0x1.200148p+32 : -0x5.595d7e536fe34p-4 : inexact-ok 130 - += sin downward ldbl-96-intel 0x1.200148p+32L : -0x5.595d7e536fe35eep-4L : inexact-ok 131 - += sin tonearest ldbl-96-intel 0x1.200148p+32L : -0x5.595d7e536fe35ed8p-4L : inexact-ok 132 - += sin towardzero ldbl-96-intel 0x1.200148p+32L : -0x5.595d7e536fe35ed8p-4L : inexact-ok 133 - += sin upward ldbl-96-intel 0x1.200148p+32L : -0x5.595d7e536fe35ed8p-4L : inexact-ok 134 - += sin downward ldbl-96-m68k 0x1.200148p+32L : -0x5.595d7e536fe35eep-4L : inexact-ok 135 - += sin tonearest ldbl-96-m68k 0x1.200148p+32L : -0x5.595d7e536fe35ed8p-4L : inexact-ok 136 - += sin towardzero ldbl-96-m68k 0x1.200148p+32L : -0x5.595d7e536fe35ed8p-4L : inexact-ok 137 - += sin upward ldbl-96-m68k 0x1.200148p+32L : -0x5.595d7e536fe35ed8p-4L : inexact-ok 138 - += sin downward ldbl-128 0x1.200148p+32L : -0x5.595d7e536fe35edbe2ad0df9d944p-4L : inexact-ok 139 - += sin tonearest ldbl-128 0x1.200148p+32L : -0x5.595d7e536fe35edbe2ad0df9d94p-4L : inexact-ok 140 - += sin towardzero ldbl-128 0x1.200148p+32L : -0x5.595d7e536fe35edbe2ad0df9d94p-4L : inexact-ok 141 - += sin upward ldbl-128 0x1.200148p+32L : -0x5.595d7e536fe35edbe2ad0df9d94p-4L : inexact-ok 142 - += sin downward ldbl-128ibm 0x1.200148p+32L : -0x5.595d7e536fe35edbe2ad0df9dap-4L : inexact-ok 143 - += sin tonearest ldbl-128ibm 0x1.200148p+32L : -0x5.595d7e536fe35edbe2ad0df9dap-4L : inexact-ok 144 - += sin towardzero ldbl-128ibm 0x1.200148p+32L : -0x5.595d7e536fe35edbe2ad0df9d8p-4L : inexact-ok 145 - += sin upward ldbl-128ibm 0x1.200148p+32L : -0x5.595d7e536fe35edbe2ad0df9d8p-4L : inexact-ok 146 - += sin downward flt-32 0x1.200146p+32f : 0x4.220ffp-4f : inexact-ok 147 - += sin tonearest flt-32 0x1.200146p+32f : 0x4.220ffp-4f : inexact-ok 148 - += sin towardzero flt-32 0x1.200146p+32f : 0x4.220ffp-4f : inexact-ok 149 - += sin upward flt-32 0x1.200146p+32f : 0x4.220ff8p-4f : inexact-ok 150 - += sin downward dbl-64 0x1.200146p+32 : 0x4.220ff25f5cfp-4 : inexact-ok 151 - += sin tonearest dbl-64 0x1.200146p+32 : 0x4.220ff25f5cf04p-4 : inexact-ok 152 - += sin towardzero dbl-64 0x1.200146p+32 : 0x4.220ff25f5cfp-4 : inexact-ok 153 - += sin upward dbl-64 0x1.200146p+32 : 0x4.220ff25f5cf04p-4 : inexact-ok 154 - += sin downward ldbl-96-intel 0x1.200146p+32L : 0x4.220ff25f5cf02a4p-4L : inexact-ok 155 - += sin tonearest ldbl-96-intel 0x1.200146p+32L : 0x4.220ff25f5cf02a48p-4L : inexact-ok 156 - += sin towardzero ldbl-96-intel 0x1.200146p+32L : 0x4.220ff25f5cf02a4p-4L : inexact-ok 157 - += sin upward ldbl-96-intel 0x1.200146p+32L : 0x4.220ff25f5cf02a48p-4L : inexact-ok 158 - += sin downward ldbl-96-m68k 0x1.200146p+32L : 0x4.220ff25f5cf02a4p-4L : inexact-ok 159 - += sin tonearest ldbl-96-m68k 0x1.200146p+32L : 0x4.220ff25f5cf02a48p-4L : inexact-ok 160 - += sin towardzero ldbl-96-m68k 0x1.200146p+32L : 0x4.220ff25f5cf02a4p-4L : inexact-ok 161 - += sin upward ldbl-96-m68k 0x1.200146p+32L : 0x4.220ff25f5cf02a48p-4L : inexact-ok 162 - += sin downward ldbl-128 0x1.200146p+32L : 0x4.220ff25f5cf02a464dbb3a679ccp-4L : inexact-ok 163 - += sin tonearest ldbl-128 0x1.200146p+32L : 0x4.220ff25f5cf02a464dbb3a679ccp-4L : inexact-ok 164 - += sin towardzero ldbl-128 0x1.200146p+32L : 0x4.220ff25f5cf02a464dbb3a679ccp-4L : inexact-ok 165 - += sin upward ldbl-128 0x1.200146p+32L : 0x4.220ff25f5cf02a464dbb3a679cc4p-4L : inexact-ok 166 - += sin downward ldbl-128ibm 0x1.200146p+32L : 0x4.220ff25f5cf02a464dbb3a679cp-4L : inexact-ok 167 - += sin tonearest ldbl-128ibm 0x1.200146p+32L : 0x4.220ff25f5cf02a464dbb3a679cp-4L : inexact-ok 168 - += sin towardzero ldbl-128ibm 0x1.200146p+32L : 0x4.220ff25f5cf02a464dbb3a679cp-4L : inexact-ok 169 - += sin upward ldbl-128ibm 0x1.200146p+32L : 0x4.220ff25f5cf02a464dbb3a679ep-4L : inexact-ok 170 - += sin downward dbl-64 0x1.2001469775ce6p+32 : -0x6.444fda50019fcp-4 : inexact-ok 171 - += sin tonearest dbl-64 0x1.2001469775ce6p+32 : -0x6.444fda50019f8p-4 : inexact-ok 172 - += sin towardzero dbl-64 0x1.2001469775ce6p+32 : -0x6.444fda50019f8p-4 : inexact-ok 173 - += sin upward dbl-64 0x1.2001469775ce6p+32 : -0x6.444fda50019f8p-4 : inexact-ok 174 - += sin downward ldbl-96-intel 0x1.2001469775ce6p+32L : -0x6.444fda50019f9f6p-4L : inexact-ok 175 - += sin tonearest ldbl-96-intel 0x1.2001469775ce6p+32L : -0x6.444fda50019f9f58p-4L : inexact-ok 176 - += sin towardzero ldbl-96-intel 0x1.2001469775ce6p+32L : -0x6.444fda50019f9f58p-4L : inexact-ok 177 - += sin upward ldbl-96-intel 0x1.2001469775ce6p+32L : -0x6.444fda50019f9f58p-4L : inexact-ok 178 - += sin downward ldbl-96-m68k 0x1.2001469775ce6p+32L : -0x6.444fda50019f9f6p-4L : inexact-ok 179 - += sin tonearest ldbl-96-m68k 0x1.2001469775ce6p+32L : -0x6.444fda50019f9f58p-4L : inexact-ok 180 - += sin towardzero ldbl-96-m68k 0x1.2001469775ce6p+32L : -0x6.444fda50019f9f58p-4L : inexact-ok 181 - += sin upward ldbl-96-m68k 0x1.2001469775ce6p+32L : -0x6.444fda50019f9f58p-4L : inexact-ok 182 - += sin downward ldbl-128 0x1.2001469775ce6p+32L : -0x6.444fda50019f9f5ba3779ca70604p-4L : inexact-ok 183 - += sin tonearest ldbl-128 0x1.2001469775ce6p+32L : -0x6.444fda50019f9f5ba3779ca706p-4L : inexact-ok 184 - += sin towardzero ldbl-128 0x1.2001469775ce6p+32L : -0x6.444fda50019f9f5ba3779ca706p-4L : inexact-ok 185 - += sin upward ldbl-128 0x1.2001469775ce6p+32L : -0x6.444fda50019f9f5ba3779ca706p-4L : inexact-ok 186 - += sin downward ldbl-128ibm 0x1.2001469775ce6p+32L : -0x6.444fda50019f9f5ba3779ca708p-4L : inexact-ok 187 - += sin tonearest ldbl-128ibm 0x1.2001469775ce6p+32L : -0x6.444fda50019f9f5ba3779ca706p-4L : inexact-ok 188 - += sin towardzero ldbl-128ibm 0x1.2001469775ce6p+32L : -0x6.444fda50019f9f5ba3779ca706p-4L : inexact-ok 189 - += sin upward ldbl-128ibm 0x1.2001469775ce6p+32L : -0x6.444fda50019f9f5ba3779ca706p-4L : inexact-ok 190 - sincos 0 191 - = sincos downward flt-32 0x0p+0f : 0x0p+0f 0x1p+0f : inexact-ok 192 - = sincos tonearest flt-32 0x0p+0f : 0x0p+0f 0x1p+0f : inexact-ok 193 - diff --git a/sysdeps/ieee754/dbl-64/s_sin.c b/sysdeps/ieee754/dbl-64/s_sin.c 194 - index 6105e9f..50109b8 100644 195 - --- a/sysdeps/ieee754/dbl-64/s_sin.c 196 - +++ b/sysdeps/ieee754/dbl-64/s_sin.c 197 - @@ -447,19 +447,21 @@ __sin (double x) 198 - } 199 - else 200 - { 201 - + double t; 202 - if (a > 0) 203 - { 204 - m = 1; 205 - + t = a; 206 - db = da; 207 - } 208 - else 209 - { 210 - m = 0; 211 - - a = -a; 212 - + t = -a; 213 - db = -da; 214 - } 215 - - u.x = big + a; 216 - - y = a - (u.x - big); 217 - + u.x = big + t; 218 - + y = t - (u.x - big); 219 - res = do_sin (u, y, db, &cor); 220 - cor = (cor > 0) ? 1.035 * cor + eps : 1.035 * cor - eps; 221 - retval = ((res == res + cor) ? ((m) ? res : -res) 222 - @@ -671,19 +673,21 @@ __cos (double x) 223 - } 224 - else 225 - { 226 - + double t; 227 - if (a > 0) 228 - { 229 - m = 1; 230 - + t = a; 231 - db = da; 232 - } 233 - else 234 - { 235 - m = 0; 236 - - a = -a; 237 - + t = -a; 238 - db = -da; 239 - } 240 - - u.x = big + a; 241 - - y = a - (u.x - big); 242 - + u.x = big + t; 243 - + y = t - (u.x - big); 244 - res = do_sin (u, y, db, &cor); 245 - cor = (cor > 0) ? 1.035 * cor + eps : 1.035 * cor - eps; 246 - retval = ((res == res + cor) ? ((m) ? res : -res) 247 - diff --git a/sysdeps/x86_64/fpu/libm-test-ulps b/sysdeps/x86_64/fpu/libm-test-ulps 248 - index f3980f8..544f1c7 100644 249 - --- a/sysdeps/x86_64/fpu/libm-test-ulps 250 - +++ b/sysdeps/x86_64/fpu/libm-test-ulps 251 - @@ -10900,6 +10900,14 @@ idouble: 1 252 - Test "cos_downward (0x1.0c152382d7365p+0)": 253 - double: 1 254 - idouble: 1 255 - +Test "cos_downward (0x1.200145a975ce6p+32)": 256 - +double: 1 257 - +idouble: 1 258 - +ildouble: 1 259 - +ldouble: 1 260 - +Test "cos_downward (0x1.200146p+32)": 261 - +ildouble: 1 262 - +ldouble: 1 263 - Test "cos_downward (0x1.921fb4p+0)": 264 - ildouble: 1 265 - ldouble: 1 266 - @@ -11126,6 +11134,9 @@ idouble: 1 267 - Test "cos_towardzero (0x1.0c152382d7365p+0)": 268 - double: 1 269 - idouble: 1 270 - +Test "cos_towardzero (0x1.200146p+32)": 271 - +double: 1 272 - +idouble: 1 273 - Test "cos_towardzero (0x1.921fb4p+0)": 274 - ildouble: 1 275 - ldouble: 1 276 - @@ -11258,6 +11269,17 @@ idouble: 1 277 - Test "cos_upward (0x1.0c1524p+0)": 278 - double: 1 279 - idouble: 1 280 - +Test "cos_upward (0x1.200144p+32)": 281 - +double: 1 282 - +idouble: 1 283 - +Test "cos_upward (0x1.200145a975ce6p+32)": 284 - +ildouble: 1 285 - +ldouble: 1 286 - +Test "cos_upward (0x1.200146p+32)": 287 - +double: 1 288 - +idouble: 1 289 - +ildouble: 1 290 - +ldouble: 1 291 - Test "cos_upward (0x1.921fb4p+0)": 292 - double: 1 293 - idouble: 1 294 - @@ -15155,6 +15177,19 @@ double: 1 295 - idouble: 1 296 - ildouble: 1 297 - ldouble: 1 298 - +Test "sin_downward (0x1.2001469775ce6p+32)": 299 - +double: 1 300 - +idouble: 1 301 - +ildouble: 1 302 - +ldouble: 1 303 - +Test "sin_downward (0x1.200146p+32)": 304 - +double: 1 305 - +idouble: 1 306 - +Test "sin_downward (0x1.200148p+32)": 307 - +double: 1 308 - +idouble: 1 309 - +ildouble: 1 310 - +ldouble: 1 311 - Test "sin_downward (0x1.921fb54442d18468p+0)": 312 - ildouble: 1 313 - ldouble: 1 314 - @@ -15383,6 +15418,9 @@ double: 1 315 - idouble: 1 316 - ildouble: 1 317 - ldouble: 1 318 - +Test "sin_towardzero (0x1.200146p+32)": 319 - +double: 1 320 - +idouble: 1 321 - Test "sin_towardzero (0x1.921fb54442d18468p+0)": 322 - ildouble: 1 323 - ldouble: 1 324 - @@ -15532,6 +15570,12 @@ ldouble: 1 325 - Test "sin_upward (-0x8.60a92p-4)": 326 - ildouble: 1 327 - ldouble: 1 328 - +Test "sin_upward (0x1.2001469775ce6p+32)": 329 - +ildouble: 1 330 - +ldouble: 1 331 - +Test "sin_upward (0x1.200148p+32)": 332 - +ildouble: 1 333 - +ldouble: 1 334 - Test "sin_upward (0x1.921fb4p+0)": 335 - double: 1 336 - idouble: 1
-12
pkgs/development/libraries/glibc/glibc-remove-date-from-compilation-banner.patch
··· 1 - diff -ur glibc-2.17.orig/csu/Makefile glibc-2.17/csu/Makefile 2 - --- glibc-2.17.orig/csu/Makefile 2012-12-25 04:02:13.000000000 +0100 3 - +++ glibc-2.17/csu/Makefile 2013-08-19 16:01:57.132378550 +0200 4 - @@ -172,7 +172,7 @@ 5 - os=Linux; \ 6 - fi; \ 7 - printf '"Compiled on a %s %s system on %s.\\n"\n' \ 8 - - "$$os" "$$version" "`date +%Y-%m-%d`";; \ 9 - + "$$os" "$$version";; \ 10 - *) ;; \ 11 - esac; \ 12 - files="$(all-Banner-files)"; \
+2 -2
pkgs/development/libraries/glibc/locales.nix
··· 28 28 mkdir -p $TMPDIR/"$(dirname $(readlink -f $(type -p localedef)))/../lib/locale" 29 29 30 30 # Hack to allow building of the locales (needed since glibc-2.12) 31 - sed -i -e "s,^LOCALEDEF=.*,LOCALEDEF=localedef --prefix=$TMPDIR," -e \ 32 - /library-path/d ../glibc-2*/localedata/Makefile 31 + sed -i -e 's,^$(rtld-prefix) $(common-objpfx)locale/localedef,localedef --prefix='$TMPDIR',' ../glibc-2*/localedata/Makefile 32 + 33 33 ${if allLocales then "" else 34 34 "echo SUPPORTED-LOCALES=\"${toString locales}\" > ../glibc-2*/localedata/SUPPORTED"} 35 35