diff --git a/.gitignore b/.gitignore index eeae38e..e447587 100644 --- a/.gitignore +++ b/.gitignore @@ -73,3 +73,5 @@ glibc-2.14-394-g8f3b1ff /glibc-2.16.90-3e2e43e2.tar.gz /glibc-2.16.90-14bc93a9-fedora.tar.gz /glibc-2.16.90-14bc93a9.tar.gz +/glibc-2.16.90-2af1b328-fedora.tar.gz +/glibc-2.16.90-2af1b328.tar.gz diff --git a/glibc-rh788989-2.patch b/glibc-rh788989-2.patch deleted file mode 100644 index 50c59f8..0000000 --- a/glibc-rh788989-2.patch +++ /dev/null @@ -1,159 +0,0 @@ -2012-04-12 Jeff Law - - * nscd/grpcache.c (cache_addgr): Track alloca usage with alloca_account. - Do not allocate DATASET on the stack if it's too large. Free DATASET - if needed. - -diff -rcp a/nscd/grpcache.c b/nscd/grpcache.c -*** a/nscd/grpcache.c Wed Apr 11 12:50:07 2012 ---- b/nscd/grpcache.c Wed Apr 11 21:45:58 2012 -*************** cache_addgr (struct database_dyn *db, in -*** 178,184 **** - char *cp; - const size_t key_len = strlen (key); - const size_t buf_len = 3 * sizeof (grp->gr_gid) + key_len + 1; -! char *buf = alloca (buf_len); - ssize_t n; - size_t cnt; - ---- 178,185 ---- - char *cp; - const size_t key_len = strlen (key); - const size_t buf_len = 3 * sizeof (grp->gr_gid) + key_len + 1; -! size_t alloca_used = 0; -! char *buf = alloca_account (buf_len, alloca_used); - ssize_t n; - size_t cnt; - -*************** cache_addgr (struct database_dyn *db, in -*** 190,196 **** - /* Determine the length of all members. */ - while (grp->gr_mem[gr_mem_cnt]) - ++gr_mem_cnt; -! gr_mem_len = (uint32_t *) alloca (gr_mem_cnt * sizeof (uint32_t)); - for (gr_mem_cnt = 0; grp->gr_mem[gr_mem_cnt]; ++gr_mem_cnt) - { - gr_mem_len[gr_mem_cnt] = strlen (grp->gr_mem[gr_mem_cnt]) + 1; ---- 191,198 ---- - /* Determine the length of all members. */ - while (grp->gr_mem[gr_mem_cnt]) - ++gr_mem_cnt; -! gr_mem_len = (uint32_t *) alloca_account (gr_mem_cnt * sizeof (uint32_t), -! alloca_used); - for (gr_mem_cnt = 0; grp->gr_mem[gr_mem_cnt]; ++gr_mem_cnt) - { - gr_mem_len[gr_mem_cnt] = strlen (grp->gr_mem[gr_mem_cnt]) + 1; -*************** cache_addgr (struct database_dyn *db, in -*** 205,214 **** - change. Allocate memory on the cache since it is likely - discarded anyway. If it turns out to be necessary to have a - new record we can still allocate real memory. */ -! bool alloca_used = false; - dataset = NULL; - -! if (he == NULL) - dataset = (struct dataset *) mempool_alloc (db, total + n, 1); - - if (dataset == NULL) ---- 207,216 ---- - change. Allocate memory on the cache since it is likely - discarded anyway. If it turns out to be necessary to have a - new record we can still allocate real memory. */ -! bool dataset_in_stack_or_freed = false; - dataset = NULL; - -! if (he == NULL || ! __libc_use_alloca (alloca_used + total + n)) - dataset = (struct dataset *) mempool_alloc (db, total + n, 1); - - if (dataset == NULL) -*************** cache_addgr (struct database_dyn *db, in -*** 216,225 **** - /* We cannot permanently add the result in the moment. But - we can provide the result as is. Store the data in some - temporary memory. */ -! dataset = (struct dataset *) alloca (total + n); - - /* We cannot add this record to the permanent database. */ -! alloca_used = true; - } - - dataset->head.allocsize = total + n; ---- 218,227 ---- - /* We cannot permanently add the result in the moment. But - we can provide the result as is. Store the data in some - temporary memory. */ -! dataset = (struct dataset *) alloca_account (total + n, alloca_used); - - /* We cannot add this record to the permanent database. */ -! dataset_in_stack_or_freed = true; - } - - dataset->head.allocsize = total + n; -*************** cache_addgr (struct database_dyn *db, in -*** 273,278 **** ---- 275,288 ---- - allocated on the stack and need not be freed. */ - dh->timeout = dataset->head.timeout; - ++dh->nreloads; -+ -+ /* If the new record was not allocated on the stack, then it must -+ be freed. Note that it can no longer be used. */ -+ if (! dataset_in_stack_or_freed) -+ { -+ free (dataset); -+ dataset_in_stack_or_freed = true; -+ } - } - else - { -*************** cache_addgr (struct database_dyn *db, in -*** 288,294 **** - key_copy = (char *) newp + (key_copy - (char *) dataset); - - dataset = memcpy (newp, dataset, total + n); -! alloca_used = false; - } - - /* Mark the old record as obsolete. */ ---- 298,304 ---- - key_copy = (char *) newp + (key_copy - (char *) dataset); - - dataset = memcpy (newp, dataset, total + n); -! dataset_in_stack_or_freed = false; - } - - /* Mark the old record as obsolete. */ -*************** cache_addgr (struct database_dyn *db, in -*** 303,309 **** - assert (fd != -1); - - #ifdef HAVE_SENDFILE -! if (__builtin_expect (db->mmap_used, 1) && !alloca_used) - { - assert (db->wr_fd != -1); - assert ((char *) &dataset->resp > (char *) db->data); ---- 313,319 ---- - assert (fd != -1); - - #ifdef HAVE_SENDFILE -! if (__builtin_expect (db->mmap_used, 1) && !dataset_in_stack_or_freed) - { - assert (db->wr_fd != -1); - assert ((char *) &dataset->resp > (char *) db->data); -*************** cache_addgr (struct database_dyn *db, in -*** 330,336 **** - - /* Add the record to the database. But only if it has not been - stored on the stack. */ -! if (! alloca_used) - { - /* If necessary, we also propagate the data to disk. */ - if (db->persistent) ---- 340,346 ---- - - /* Add the record to the database. But only if it has not been - stored on the stack. */ -! if (! dataset_in_stack_or_freed) - { - /* If necessary, we also propagate the data to disk. */ - if (db->persistent) diff --git a/glibc.spec b/glibc.spec index aef6572..0cffdb2 100644 --- a/glibc.spec +++ b/glibc.spec @@ -1,4 +1,4 @@ -%define glibcsrcdir glibc-2.16.90-14bc93a9 +%define glibcsrcdir glibc-2.16.90-2af1b328 %define glibcversion 2.16.90 ### glibc.spec.in follows: %define run_glibc_tests 1 @@ -27,7 +27,7 @@ Summary: The GNU libc libraries Name: glibc Version: %{glibcversion} -Release: 32%{?dist} +Release: 33%{?dist} # GPLv2+ is used in a bunch of programs, LGPLv2+ is used for libraries. # Things that are linked directly into dynamically linked programs # and shared libraries (e.g. crt files, lib*_nonshared.a) have an additional @@ -96,6 +96,7 @@ Patch0018: %{name}-fedora-strict-aliasing.patch Patch0019: %{name}-fedora-nis-rh188246.patch Patch0020: %{name}-fedora-manual-dircategory.patch Patch0024: %{name}-fedora-locarchive.patch +Patch0025: %{name}-fedora-streams-rh436349.patch Patch0028: %{name}-fedora-localedata-rh61908.patch # Needs to be sent upstream @@ -122,7 +123,6 @@ Patch0043: %{name}-fedora-ldd.patch Patch0044: %{name}-fedora-linux-tcsetattr.patch Patch0045: %{name}-fedora-locale-euro.patch Patch0046: %{name}-fedora-localedata-locales-fixes.patch -Patch0047: %{name}-fedora-streams-rh436349.patch # # Patches from upstream @@ -154,9 +154,6 @@ Patch2022: %{name}-rh800224.patch # Upstream BZ 14247 Patch2023: %{name}-rh827510.patch -# Upstream BZ 13761 -Patch2025: %{name}-rh788989-2.patch - # Upstream BZ 13028 Patch2026: %{name}-rh841787.patch @@ -410,7 +407,7 @@ package or when debugging this package. %patch2022 -p1 %patch2023 -p1 %patch0024 -p1 -%patch2025 -p1 +%patch0025 -p1 %patch2026 -p1 %patch2027 -p1 %patch0028 -p1 @@ -432,7 +429,6 @@ package or when debugging this package. %patch0044 -p1 %patch0045 -p1 %patch0046 -p1 -%patch0047 -p1 # On powerpc32, hp timing is only available in power4/power6 # libs, not in base, so pre-power4 dynamic linker is incompatible @@ -1227,7 +1223,12 @@ rm -f *.filelist* %endif %changelog -* Wed Nov 28 2012 Siddhesh Poyarekar - 2.16.90-32 +* Thu Nov 29 2012 Jeff Law - 2.16.90-33 + - Resync with msater. + - Drop local patch for 788989. + - Repack patchlist. + +* Wed Nov 28 2012 Jeff Law - 2.16.90-32 - Resync with master. - Drop local patch for 878913. - Drop local patch for 880666. diff --git a/sources b/sources index 476a923..ee875a9 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -dd3bdcaf6bde00d0484eace472d01ccc glibc-2.16.90-14bc93a9-fedora.tar.gz -d8d1869f634ef7cffcf7ed3cd11e5f3c glibc-2.16.90-14bc93a9.tar.gz +f708bdecec850f4035d5242f80be3d02 glibc-2.16.90-2af1b328-fedora.tar.gz +35892d87ef0c9cbb694ef023b37019f2 glibc-2.16.90-2af1b328.tar.gz