From e85cac7c02f9122cc8f36dd0434a02b0351d5aacf8d5214c6e0697a25efec651 Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Mon, 10 Aug 2015 11:50:28 +0000 Subject: [PATCH] Accepting request 321588 from home:Andreas_Schwab:Factory - dont-remove-nodelete-flag.patch: Don't remove DF_1_NODELETE flag from all loaded objects on failed dlopen - openat64-readd-o-largefile.patch: Readd O_LARGEFILE flag for openat64 OBS-URL: https://build.opensuse.org/request/show/321588 OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=413 --- dont-remove-nodelete-flag.patch | 17 ++++++++++++++++- glibc-testsuite.changes | 7 ++++--- glibc-testsuite.spec | 10 ++++++---- glibc-utils.changes | 7 ++++--- glibc-utils.spec | 10 ++++++---- glibc.changes | 7 ++++--- glibc.spec | 10 ++++++---- openat64-readd-o-largefile.patch | 16 ++++++++++++++++ 8 files changed, 62 insertions(+), 22 deletions(-) create mode 100644 openat64-readd-o-largefile.patch diff --git a/dont-remove-nodelete-flag.patch b/dont-remove-nodelete-flag.patch index 2b4954c..4749ba5 100644 --- a/dont-remove-nodelete-flag.patch +++ b/dont-remove-nodelete-flag.patch @@ -2,7 +2,22 @@ Index: glibc-2.22/elf/dl-close.c =================================================================== --- glibc-2.22.orig/elf/dl-close.c +++ glibc-2.22/elf/dl-close.c -@@ -152,14 +152,6 @@ _dl_close_worker (struct link_map *map, +@@ -144,6 +144,14 @@ _dl_close_worker (struct link_map *map, + char done[nloaded]; + struct link_map *maps[nloaded]; + ++ /* Clear DF_1_NODELETE to force object deletion. We don't need to touch ++ l_tls_dtor_count because forced object deletion only happens when an ++ error occurs during object load. Destructor registration for TLS ++ non-POD objects should not have happened till then for this ++ object. */ ++ if (force) ++ map->l_flags_1 &= ~DF_1_NODELETE; ++ + /* Run over the list and assign indexes to the link maps and enter + them into the MAPS array. */ + int idx = 0; +@@ -152,14 +160,6 @@ _dl_close_worker (struct link_map *map, l->l_idx = idx; maps[idx] = l; ++idx; diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 072d90a..c708e58 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,8 +1,9 @@ ------------------------------------------------------------------- -Thu Aug 6 15:41:01 UTC 2015 - schwab@suse.de +Mon Aug 10 09:23:57 UTC 2015 - schwab@suse.de -- dont-remove-nodelete-flag.patch: Don't remove DF_1_NODELETE flag on - failed dlopen. +- dont-remove-nodelete-flag.patch: Don't remove DF_1_NODELETE flag from + all loaded objects on failed dlopen +- openat64-readd-o-largefile.patch: Readd O_LARGEFILE flag for openat64 ------------------------------------------------------------------- Wed Aug 5 09:35:41 UTC 2015 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 7a38a93..a00e253 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -216,8 +216,6 @@ Patch102: glibc-2.4.90-no_NO.diff Patch103: glibc-2.4-china.diff ### Broken patches in glibc that we revert for now: -# BZ #18778 -Patch200: dont-remove-nodelete-flag.patch ### Network related patches # PATCH-FIX-OPENSUSE reload /etc/resolv.conf on change @@ -246,6 +244,10 @@ Patch2003: abort-no-flush.patch Patch2005: glibc-memset-nontemporal.diff # PATCH-FIX-UPSTREAM Avoid redundant shift character in iconv output at block boundary (BZ #17197) Patch2006: ibm93x-redundant-shift-si.patch +# BZ #18778 +Patch2007: dont-remove-nodelete-flag.patch +# BZ #18781 +Patch2008: openat64-readd-o-largefile.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -440,8 +442,6 @@ rm nscd/s-stamp %patch102 -p1 %patch103 -p1 -%patch200 -p1 - %patch300 -p1 %patch301 -p1 %patch304 -p1 @@ -452,6 +452,8 @@ rm nscd/s-stamp %patch2003 -p1 %patch2005 -p1 %patch2006 -p1 +%patch2007 -p1 +%patch2008 -p1 %patch3000 diff --git a/glibc-utils.changes b/glibc-utils.changes index 072d90a..c708e58 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,8 +1,9 @@ ------------------------------------------------------------------- -Thu Aug 6 15:41:01 UTC 2015 - schwab@suse.de +Mon Aug 10 09:23:57 UTC 2015 - schwab@suse.de -- dont-remove-nodelete-flag.patch: Don't remove DF_1_NODELETE flag on - failed dlopen. +- dont-remove-nodelete-flag.patch: Don't remove DF_1_NODELETE flag from + all loaded objects on failed dlopen +- openat64-readd-o-largefile.patch: Readd O_LARGEFILE flag for openat64 ------------------------------------------------------------------- Wed Aug 5 09:35:41 UTC 2015 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index d6511e6..6882c9e 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -215,8 +215,6 @@ Patch102: glibc-2.4.90-no_NO.diff Patch103: glibc-2.4-china.diff ### Broken patches in glibc that we revert for now: -# BZ #18778 -Patch200: dont-remove-nodelete-flag.patch ### Network related patches # PATCH-FIX-OPENSUSE reload /etc/resolv.conf on change @@ -245,6 +243,10 @@ Patch2003: abort-no-flush.patch Patch2005: glibc-memset-nontemporal.diff # PATCH-FIX-UPSTREAM Avoid redundant shift character in iconv output at block boundary (BZ #17197) Patch2006: ibm93x-redundant-shift-si.patch +# BZ #18778 +Patch2007: dont-remove-nodelete-flag.patch +# BZ #18781 +Patch2008: openat64-readd-o-largefile.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -440,8 +442,6 @@ rm nscd/s-stamp %patch102 -p1 %patch103 -p1 -%patch200 -p1 - %patch300 -p1 %patch301 -p1 %patch304 -p1 @@ -452,6 +452,8 @@ rm nscd/s-stamp %patch2003 -p1 %patch2005 -p1 %patch2006 -p1 +%patch2007 -p1 +%patch2008 -p1 %patch3000 diff --git a/glibc.changes b/glibc.changes index 072d90a..c708e58 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,8 +1,9 @@ ------------------------------------------------------------------- -Thu Aug 6 15:41:01 UTC 2015 - schwab@suse.de +Mon Aug 10 09:23:57 UTC 2015 - schwab@suse.de -- dont-remove-nodelete-flag.patch: Don't remove DF_1_NODELETE flag on - failed dlopen. +- dont-remove-nodelete-flag.patch: Don't remove DF_1_NODELETE flag from + all loaded objects on failed dlopen +- openat64-readd-o-largefile.patch: Readd O_LARGEFILE flag for openat64 ------------------------------------------------------------------- Wed Aug 5 09:35:41 UTC 2015 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index b8ccc62..ff37d93 100644 --- a/glibc.spec +++ b/glibc.spec @@ -216,8 +216,6 @@ Patch102: glibc-2.4.90-no_NO.diff Patch103: glibc-2.4-china.diff ### Broken patches in glibc that we revert for now: -# BZ #18778 -Patch200: dont-remove-nodelete-flag.patch ### Network related patches # PATCH-FIX-OPENSUSE reload /etc/resolv.conf on change @@ -246,6 +244,10 @@ Patch2003: abort-no-flush.patch Patch2005: glibc-memset-nontemporal.diff # PATCH-FIX-UPSTREAM Avoid redundant shift character in iconv output at block boundary (BZ #17197) Patch2006: ibm93x-redundant-shift-si.patch +# BZ #18778 +Patch2007: dont-remove-nodelete-flag.patch +# BZ #18781 +Patch2008: openat64-readd-o-largefile.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -440,8 +442,6 @@ rm nscd/s-stamp %patch102 -p1 %patch103 -p1 -%patch200 -p1 - %patch300 -p1 %patch301 -p1 %patch304 -p1 @@ -452,6 +452,8 @@ rm nscd/s-stamp %patch2003 -p1 %patch2005 -p1 %patch2006 -p1 +%patch2007 -p1 +%patch2008 -p1 %patch3000 diff --git a/openat64-readd-o-largefile.patch b/openat64-readd-o-largefile.patch new file mode 100644 index 0000000..5a5447a --- /dev/null +++ b/openat64-readd-o-largefile.patch @@ -0,0 +1,16 @@ +Index: glibc-2.22/sysdeps/unix/sysv/linux/openat.c +=================================================================== +--- glibc-2.22.orig/sysdeps/unix/sysv/linux/openat.c ++++ glibc-2.22/sysdeps/unix/sysv/linux/openat.c +@@ -68,6 +68,11 @@ __OPENAT (int fd, const char *file, int + va_end (arg); + } + ++ /* We have to add the O_LARGEFILE flag for openat64. */ ++#ifdef MORE_OFLAGS ++ oflag |= MORE_OFLAGS; ++#endif ++ + return SYSCALL_CANCEL (openat, fd, file, oflag, mode); + } + libc_hidden_def (__OPENAT)