Bug#882255: libc6-amd64: Multilib causes catastrophic system failure during upgrade to libc 2.25
On Sun, 26 Nov 2017, Aurelien Jarno wrote: > > > You mean that even now running 'ldconfig' followed by 'ldd /bin/true' > > > will give you > > > libc.so.6 => /lib64/libc.so.6 > > > instead of > > > libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 > > > ? > > > > Yes. > > # ldd /bin/true > > linux-vdso.so.1 (0x7ffc62b5a000) > > libc.so.6 => /lib64/libc.so.6 (0x7fd870377000) > > /lib64/ld-linux-x86-64.so.2 (0x7fd870921000) > > > > If I use the --inhibit-cache flag, it points to the correct location: > > # /lib64/ld-linux-x86-64.so.2 --list --inhibit-cache /bin/true > > linux-vdso.so.1 (0x7ffd566e4000) > > libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x7f73026c8000) > > /lib64/ld-linux-x86-64.so.2 (0x7f7302c73000) > > > > Without --inhibit-cache, it points to /lib64/libc.so.6 > > # /lib64/ld-linux-x86-64.so.2 --list /bin/true > > linux-vdso.so.1 (0x7ffd5ad1) > > libc.so.6 => /lib64/libc.so.6 (0x7fc566092000) > > /lib64/ld-linux-x86-64.so.2 (0x7fc56663c000) > > I am still unable to reproduce this problem. On my system > lib/x86_64-linux-gnu/ is preferred over lib64. ldconfig uses glob to to > interpret the "*.conf" in /etc/ld.so.conf, so the files are sorted > alphabetically and thus the zz_amd64-biarch-compat.conf should appear > last. > > It would be interesting to check at the order in the cache, using > "ldconfig -p | grep libc.so". Could you please provide that output? > > Thanks, > Aurelien # ldconfig -p | grep libc.so libc.so.6 (libc6,x32, ABI OS: Linux 3.4.0) => /lib/x86_64-linux-gnux32/libc.so.6 libc.so.6 (libc6,x86-64, ABI OS: Linux 3.2.0) => /lib64/libc.so.6 libc.so.6 (libc6,x86-64, ABI OS: Linux 2.6.32) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (libc6, ABI OS: Linux 3.2.0) => /lib32/libc.so.6 libc.so.6 (libc6, ABI OS: Linux 2.6.32) => /lib/i386-linux-gnu/libc.so.6 The problem is caused by the "ABI OS" field - the libraries in /lib64 have higher field than the libraries in /lib/x86_64-linux-gnu/ If I comment out this piece of code in the function compare in the file glibc/elf/cache.c, the problem goes away and the linker will prefer libraries in /lib/x86_64-linux-gnu/ and /lib/i386-linux-gnu/. /* if (e2->osversion > e1->osversion) return 1; if (e2->osversion < e1->osversion) return -1; */ Mikulas
[glibc] branch sid updated (514c3f2 -> 379f2e6)
This is an automated email from the git hooks/post-receive script. aurel32 pushed a change to branch sid in repository glibc. from 514c3f2 debian/patches/submitted-ldconfig-c-collation.diff: New patch to process include directives in ldconfig using the C/POSIX collation. Closes: #882255. new 379f2e6 debian/patches/ia64/git-ia64-crash-thread-exit.diff: Fix crash on thread exit on IA64. Closes: #883285. The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Summary of changes: debian/changelog | 2 + .../patches/ia64/git-ia64-crash-thread-exit.diff | 79 ++ debian/patches/series | 2 + 3 files changed, 83 insertions(+) create mode 100644 debian/patches/ia64/git-ia64-crash-thread-exit.diff -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-glibc/glibc.git
Processed: Bug#883285 marked as pending
Processing commands for cont...@bugs.debian.org: > tag 883285 pending Bug #883285 [src:glibc] glibc: ia64 glibc crashes on thread exit Added tag(s) pending. > thanks Stopping processing here. Please contact me if you need assistance. -- 883285: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=883285 Debian Bug Tracking System Contact ow...@bugs.debian.org with problems
[glibc] 01/01: debian/patches/ia64/git-ia64-crash-thread-exit.diff: Fix crash on thread exit on IA64. Closes: #883285.
This is an automated email from the git hooks/post-receive script. aurel32 pushed a commit to branch sid in repository glibc. commit 379f2e613236f1c68314c984fd2b5589155a1755 Author: Aurelien JarnoDate: Fri Dec 1 22:34:29 2017 +0100 debian/patches/ia64/git-ia64-crash-thread-exit.diff: Fix crash on thread exit on IA64. Closes: #883285. --- debian/changelog | 2 + .../patches/ia64/git-ia64-crash-thread-exit.diff | 79 ++ debian/patches/series | 2 + 3 files changed, 83 insertions(+) diff --git a/debian/changelog b/debian/changelog index 966ca2a..b5a88c8 100644 --- a/debian/changelog +++ b/debian/changelog @@ -10,6 +10,8 @@ glibc (2.25-3) UNRELEASED; urgency=medium * debian/patches/submitted-ldconfig-c-collation.diff: New patch to process include directives in ldconfig using the C/POSIX collation. Closes: #882255. + * debian/patches/ia64/git-ia64-crash-thread-exit.diff: Fix crash on thread +exit on IA64. Closes: #883285. [ Samuel Thibault ] * libc0.3.symbols.hurd-i386: Update against newer hurd definitions. diff --git a/debian/patches/ia64/git-ia64-crash-thread-exit.diff b/debian/patches/ia64/git-ia64-crash-thread-exit.diff new file mode 100644 index 000..1cdc778 --- /dev/null +++ b/debian/patches/ia64/git-ia64-crash-thread-exit.diff @@ -0,0 +1,79 @@ +2017-08-29 Adhemerval Zanella + + [BZ #21672] + * nptl/allocatestack.c (advise_stack_range): New function. + * nptl/pthread_create.c (START_THREAD_DEFN): Move logic to mark + stack non required to advise_stack_range at allocatestack.c + +--- a/nptl/allocatestack.c b/nptl/allocatestack.c +@@ -340,6 +340,33 @@ + } + + ++/* Mark the memory of the stack as usable to the kernel. It frees everything ++ except for the space used for the TCB itself. */ ++static inline void ++__always_inline ++advise_stack_range (void *mem, size_t size, uintptr_t pd, size_t guardsize) ++{ ++ uintptr_t sp = (uintptr_t) CURRENT_STACK_FRAME; ++ size_t pagesize_m1 = __getpagesize () - 1; ++#if _STACK_GROWS_DOWN && !defined(NEED_SEPARATE_REGISTER_STACK) ++ size_t freesize = (sp - (uintptr_t) mem) & ~pagesize_m1; ++ assert (freesize < size); ++ if (freesize > PTHREAD_STACK_MIN) ++__madvise (mem, freesize - PTHREAD_STACK_MIN, MADV_DONTNEED); ++#else ++ /* Page aligned start of memory to free (higher than or equal ++ to current sp plus the minimum stack size). */ ++ uintptr_t freeblock = (sp + PTHREAD_STACK_MIN + pagesize_m1) & ~pagesize_m1; ++ uintptr_t free_end = (pd - guardsize) & ~pagesize_m1; ++ if (free_end > freeblock) ++{ ++ size_t freesize = free_end - freeblock; ++ assert (freesize < size); ++ __madvise ((void*) freeblock, freesize, MADV_DONTNEED); ++} ++#endif ++} ++ + /* Returns a usable stack for a new thread either by allocating a +new stack or reusing a cached stack of sufficient size. +ATTR must be non-NULL and point to a valid pthread_attr. +--- a/nptl/pthread_create.c b/nptl/pthread_create.c +@@ -545,31 +545,8 @@ + } + #endif + +- /* Mark the memory of the stack as usable to the kernel. We free +- everything except for the space used for the TCB itself. */ +- size_t pagesize_m1 = __getpagesize () - 1; +-#ifdef _STACK_GROWS_DOWN +- char *sp = CURRENT_STACK_FRAME; +- size_t freesize = (sp - (char *) pd->stackblock) & ~pagesize_m1; +- assert (freesize < pd->stackblock_size); +- if (freesize > PTHREAD_STACK_MIN) +-__madvise (pd->stackblock, freesize - PTHREAD_STACK_MIN, MADV_DONTNEED); +-#else +- /* Page aligned start of memory to free (higher than or equal +- to current sp plus the minimum stack size). */ +- void *freeblock = (void*)((size_t)(CURRENT_STACK_FRAME +- + PTHREAD_STACK_MIN +- + pagesize_m1) +- & ~pagesize_m1); +- char *free_end = (char *) (((uintptr_t) pd - pd->guardsize) & ~pagesize_m1); +- /* Is there any space to free? */ +- if (free_end > (char *)freeblock) +-{ +- size_t freesize = (size_t)(free_end - (char *)freeblock); +- assert (freesize < pd->stackblock_size); +- __madvise (freeblock, freesize, MADV_DONTNEED); +-} +-#endif ++ advise_stack_range (pd->stackblock, pd->stackblock_size, (uintptr_t) pd, ++pd->guardsize); + + /* If the thread is detached free the TCB. */ + if (IS_DETACHED (pd)) diff --git a/debian/patches/series b/debian/patches/series index bdbf764..94763cb 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -141,6 +141,8 @@ i386/local-biarch.diff i386/local-cmov.diff i386/unsubmitted-quiet-ldconfig.diff +ia64/git-ia64-crash-thread-exit.diff + kfreebsd/submitted-waitid.diff kfreebsd/submitted-auxv.diff kfreebsd/local-config_h_in.patch -- Alioth's
glibc_2.24-11+deb9u2_source.changes ACCEPTED into proposed-updates->stable-new
Mapping stretch to stable. Mapping stable to proposed-updates. Accepted: -BEGIN PGP SIGNED MESSAGE- Hash: SHA512 Format: 1.8 Date: Fri, 01 Dec 2017 21:09:18 +0100 Source: glibc Binary: libc-bin libc-dev-bin libc-l10n glibc-doc glibc-source locales locales-all nscd multiarch-support libc6 libc6-dev libc6-dbg libc6-pic libc6-udeb libc6.1 libc6.1-dev libc6.1-dbg libc6.1-pic libc6.1-udeb libc0.3 libc0.3-dev libc0.3-dbg libc0.3-pic libc0.3-udeb libc0.1 libc0.1-dev libc0.1-dbg libc0.1-pic libc0.1-udeb libc6-i386 libc6-dev-i386 libc6-sparc libc6-dev-sparc libc6-sparc64 libc6-dev-sparc64 libc6-s390 libc6-dev-s390 libc6-amd64 libc6-dev-amd64 libc6-powerpc libc6-dev-powerpc libc6-ppc64 libc6-dev-ppc64 libc6-mips32 libc6-dev-mips32 libc6-mipsn32 libc6-dev-mipsn32 libc6-mips64 libc6-dev-mips64 libc0.1-i386 libc0.1-dev-i386 libc6-x32 libc6-dev-x32 libc6-xen libc0.3-xen libc6.1-alphaev67 libc0.1-i686 libc0.3-i686 libc6-i686 Architecture: source Version: 2.24-11+deb9u2 Distribution: stretch Urgency: medium Maintainer: GNU Libc MaintainersChanged-By: Aurelien Jarno Description: glibc-doc - GNU C Library: Documentation glibc-source - GNU C Library: sources libc-bin - GNU C Library: Binaries libc-dev-bin - GNU C Library: Development binaries libc-l10n - GNU C Library: localization files libc0.1- GNU C Library: Shared libraries libc0.1-dbg - GNU C Library: detached debugging symbols libc0.1-dev - GNU C Library: Development Libraries and Header Files libc0.1-dev-i386 - GNU C Library: 32bit development libraries for AMD64 libc0.1-i386 - GNU C Library: 32bit shared libraries for AMD64 libc0.1-i686 - transitional dummy package libc0.1-pic - GNU C Library: PIC archive library libc0.1-udeb - GNU C Library: Shared libraries - udeb (udeb) libc0.3- GNU C Library: Shared libraries libc0.3-dbg - GNU C Library: detached debugging symbols libc0.3-dev - GNU C Library: Development Libraries and Header Files libc0.3-i686 - transitional dummy package libc0.3-pic - GNU C Library: PIC archive library libc0.3-udeb - GNU C Library: Shared libraries - udeb (udeb) libc0.3-xen - GNU C Library: Shared libraries [Xen version] libc6 - GNU C Library: Shared libraries libc6-amd64 - GNU C Library: 64bit Shared libraries for AMD64 libc6-dbg - GNU C Library: detached debugging symbols libc6-dev - GNU C Library: Development Libraries and Header Files libc6-dev-amd64 - GNU C Library: 64bit Development Libraries for AMD64 libc6-dev-i386 - GNU C Library: 32-bit development libraries for AMD64 libc6-dev-mips32 - GNU C Library: o32 Development Libraries for MIPS libc6-dev-mips64 - GNU C Library: 64bit Development Libraries for MIPS64 libc6-dev-mipsn32 - GNU C Library: n32 Development Libraries for MIPS64 libc6-dev-powerpc - GNU C Library: 32bit powerpc development libraries for ppc64 libc6-dev-ppc64 - GNU C Library: 64bit Development Libraries for PowerPC64 libc6-dev-s390 - GNU C Library: 32bit Development Libraries for IBM zSeries libc6-dev-sparc - GNU C Library: 32bit Development Libraries for SPARC libc6-dev-sparc64 - GNU C Library: 64bit Development Libraries for UltraSPARC libc6-dev-x32 - GNU C Library: X32 ABI Development Libraries for AMD64 libc6-i386 - GNU C Library: 32-bit shared libraries for AMD64 libc6-i686 - transitional dummy package libc6-mips32 - GNU C Library: o32 Shared libraries for MIPS libc6-mips64 - GNU C Library: 64bit Shared libraries for MIPS64 libc6-mipsn32 - GNU C Library: n32 Shared libraries for MIPS64 libc6-pic - GNU C Library: PIC archive library libc6-powerpc - GNU C Library: 32bit powerpc shared libraries for ppc64 libc6-ppc64 - GNU C Library: 64bit Shared libraries for PowerPC64 libc6-s390 - GNU C Library: 32bit Shared libraries for IBM zSeries libc6-sparc - GNU C Library: 32bit Shared libraries for SPARC libc6-sparc64 - GNU C Library: 64bit Shared libraries for UltraSPARC libc6-udeb - GNU C Library: Shared libraries - udeb (udeb) libc6-x32 - GNU C Library: X32 ABI Shared libraries for AMD64 libc6-xen - GNU C Library: Shared libraries [Xen version] libc6.1- GNU C Library: Shared libraries libc6.1-alphaev67 - GNU C Library: Shared libraries (EV67 optimized) libc6.1-dbg - GNU C Library: detached debugging symbols libc6.1-dev - GNU C Library: Development Libraries and Header Files libc6.1-pic - GNU C Library: PIC archive library libc6.1-udeb - GNU C Library: Shared libraries - udeb (udeb) locales- GNU C Library: National Language (locale) data [support] locales-all - GNU C Library: Precompiled locale data multiarch-support - Transitional package to ensure multiarch compatibility nscd - GNU C Library: Name Service Cache Daemon Closes: 865144 870648 881850 882272 Changes: glibc (2.24-11+deb9u2) stretch; urgency=medium . [ Aurelien Jarno ] * debian/control.in/x32: Add a gcc-multilib Recommends for libc6-dev-x32. * debian/patches/git-updates.diff: update
Processing of glibc_2.24-11+deb9u2_source.changes
glibc_2.24-11+deb9u2_source.changes uploaded successfully to localhost along with the files: glibc_2.24-11+deb9u2.dsc glibc_2.24-11+deb9u2.debian.tar.xz glibc_2.24-11+deb9u2_source.buildinfo Greetings, Your Debian queue daemon (running on host usper.debian.org)
[glibc] branch stretch updated (89f27be -> 724e680)
This is an automated email from the git hooks/post-receive script. aurel32 pushed a change to branch stretch in repository glibc. from 89f27be debian/script.in/nohwcap.sh: always check for all optimized packages as multiarch allows one to install foreign architectures. Closes: #882272. new 724e680 releasing package glibc version 2.24-11+deb9u2 The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Summary of changes: debian/changelog | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-glibc/glibc.git
[glibc] annotated tag debian/2.24-11+deb9u2 created (now e7aca3f)
This is an automated email from the git hooks/post-receive script. aurel32 pushed a change to annotated tag debian/2.24-11+deb9u2 in repository glibc. at e7aca3f (tag) tagging 724e680d98c5e5591666a4de2e5499a7ee9457fe (commit) replaces debian/2.24-11+deb9u1 tagged by Aurelien Jarno on Fri Dec 1 21:09:30 2017 +0100 - Log - tagging package glibc version debian/2.24-11+deb9u2 -BEGIN PGP SIGNATURE- iQIzBAABCgAdFiEEUryGlb40+QrX1Ay4E4jA+JnoM2sFAlohtvoACgkQE4jA+Jno M2uRFBAAj6PKHm9WcK4ecKJMePdNEGNWnyEW7Hll5iSaGQR/BqbI2nNyVUCHJd0v LNNGXIoYVSGVh2DUio30Xssj4AOqM5Sc5Ie5603bTbemxAYcmUnyqKnBLY12ElMG aihZqIOT50YGFEZIVnCZBBQ3wFHyVwZiuTdmYT+J3GVN7HQ5qLp5EDdvkEhlBcrY oLU6z0xV02sZ5b2sMhdXtyblGmNLOFvWupOFmYYH4PPkdPSAYO4a6xqbqpo6VpdC oL+TJBs++TrD/YiRQ+eRgDYbQS9UhaSqPaUgiTIYVSwA4UBwUM6K8SpGu/Yaxme1 KtElXjbAo0/F6IrN7KIQHag6xQwkmjiuq/TMqhJ81q9mADttp2pVlQhqsCbt71aa ZlDrExwYBOdFnORy8RytWrcrDCnL9/GvP5ANA2Lkl4Xe3NbGIznE/fL68KXC25dv CM1o2jPvhpjNrTUluiIZ6Ci8qLWmv/VY8pL+z49CQ6d3GxMVLGCMIPW0PVz+v6C7 FrHX8IvaJmVnE61HOu/BZ/s6hOXQhkGaNTIA7rht4CAPgy/WRbssX0aSWOJg7WJu WgN6Ybt2VXeFC4dolN+w/ipDjko/FJLW/zgmZPU4mtfr7o+Q1OhgIYU2YbvOuedg kv4CX3tQxYn9LfvxQUjNtMIk2dynQUDfkxJCfHnW5pqV50RrCyM= =8gZy -END PGP SIGNATURE- Aurelien Jarno (6): debian/control.in/x32: Add a gcc-multilib Recommends for libc6-dev-x32. debian/debhelper.in/libc-bin.postinst: do not update /etc/nsswitch.conf when its content already matches the default. Closes: #865144. debian/patches/git-updates.diff: update from upstream stable branch: Fix a typo debian/script.in/nohwcap.sh: always check for all optimized packages as multiarch allows one to install foreign architectures. Closes: #882272. releasing package glibc version 2.24-11+deb9u2 --- This annotated tag includes the following new commits: new 724e680 releasing package glibc version 2.24-11+deb9u2 The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-glibc/glibc.git
Re: Bug#882158: stretch-pu: package glibc/2.24-11+deb9u2
On 2017-12-01 19:49, Cyril Brulebois wrote: > Adam D. Barratt(2017-11-24): > > This looks OK to me, but will need a KiBi-ack; CCing. > > lgtm; apologies for the delay. Thanks, I have just uploaded it. Aurelien -- Aurelien Jarno GPG: 4096R/1DDD8C9B aurel...@aurel32.net http://www.aurel32.net signature.asc Description: PGP signature
[glibc] 01/01: releasing package glibc version 2.24-11+deb9u2
This is an automated email from the git hooks/post-receive script. aurel32 pushed a commit to branch stretch in repository glibc. commit 724e680d98c5e5591666a4de2e5499a7ee9457fe Author: Aurelien JarnoDate: Fri Dec 1 21:09:30 2017 +0100 releasing package glibc version 2.24-11+deb9u2 --- debian/changelog | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/debian/changelog b/debian/changelog index cb182fb..15d804c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -glibc (2.24-11+deb9u2) UNRELEASED; urgency=medium +glibc (2.24-11+deb9u2) stretch; urgency=medium [ Aurelien Jarno ] * debian/control.in/x32: Add a gcc-multilib Recommends for libc6-dev-x32. @@ -32,7 +32,7 @@ glibc (2.24-11+deb9u2) UNRELEASED; urgency=medium * debian/debhelper.in/libc-bin.postinst: do not update /etc/nsswitch.conf when its content already matches the default. Closes: #865144. - -- Aurelien Jarno Sun, 20 Aug 2017 13:58:01 +0200 + -- Aurelien Jarno Fri, 01 Dec 2017 21:09:18 +0100 glibc (2.24-11+deb9u1) stretch-security; urgency=medium -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-glibc/glibc.git
[glibc] branch sid updated (2ab9aac -> 514c3f2)
This is an automated email from the git hooks/post-receive script. aurel32 pushed a change to branch sid in repository glibc. from 2ab9aac debian/control.in/libc, debian/control.in/main, debian/rules.d/control.mk: Add support for IA64. Closes: #883012. new 514c3f2 debian/patches/submitted-ldconfig-c-collation.diff: New patch to process include directives in ldconfig using the C/POSIX collation. Closes: #882255. The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Summary of changes: debian/changelog | 3 +++ debian/patches/any/submitted-ldconfig-c-collation.diff | 17 + debian/patches/series | 1 + 3 files changed, 21 insertions(+) create mode 100644 debian/patches/any/submitted-ldconfig-c-collation.diff -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-glibc/glibc.git
Processed: Bug#882255 marked as pending
Processing commands for cont...@bugs.debian.org: > tag 882255 pending Bug #882255 [libc6-amd64] libc6-amd64: Multilib causes catastrophic system failure during upgrade to libc 2.25 Added tag(s) pending. > thanks Stopping processing here. Please contact me if you need assistance. -- 882255: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=882255 Debian Bug Tracking System Contact ow...@bugs.debian.org with problems
[glibc] 01/01: debian/patches/submitted-ldconfig-c-collation.diff: New patch to process include directives in ldconfig using the C/POSIX collation. Closes: #882255.
This is an automated email from the git hooks/post-receive script. aurel32 pushed a commit to branch sid in repository glibc. commit 514c3f235e480ed7aaf80025b7e026170d704774 Author: Aurelien JarnoDate: Fri Dec 1 19:59:41 2017 +0100 debian/patches/submitted-ldconfig-c-collation.diff: New patch to process include directives in ldconfig using the C/POSIX collation. Closes: #882255. --- debian/changelog | 3 +++ debian/patches/any/submitted-ldconfig-c-collation.diff | 17 + debian/patches/series | 1 + 3 files changed, 21 insertions(+) diff --git a/debian/changelog b/debian/changelog index c46e191..966ca2a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -7,6 +7,9 @@ glibc (2.25-3) UNRELEASED; urgency=medium #883186. * debian/patches/any/local-dlfptr.diff: remove, it's not used anymore by HPPA and causes issues on IA64. Closes: #882874. + * debian/patches/submitted-ldconfig-c-collation.diff: New patch to process +include directives in ldconfig using the C/POSIX collation. Closes: +#882255. [ Samuel Thibault ] * libc0.3.symbols.hurd-i386: Update against newer hurd definitions. diff --git a/debian/patches/any/submitted-ldconfig-c-collation.diff b/debian/patches/any/submitted-ldconfig-c-collation.diff new file mode 100644 index 000..5db19fd --- /dev/null +++ b/debian/patches/any/submitted-ldconfig-c-collation.diff @@ -0,0 +1,17 @@ +Submitted upstream, won't be backported in upstream stable branches. + +diff --git a/elf/ldconfig.c b/elf/ldconfig.c +index 89042351f8..2c01ab567b 100644 +--- a/elf/ldconfig.c b/elf/ldconfig.c +@@ -1259,6 +1259,10 @@ main (int argc, char **argv) + /* Set locale via LC_ALL. */ + setlocale (LC_ALL, ""); + ++ /* But keep the C collation. That way `include' directives using ++ globbing patterns are processed in a locale-independent order. */ ++ setlocale (LC_COLLATE, "C"); ++ + /* Set the text message domain. */ + textdomain (_libc_intl_domainname); + diff --git a/debian/patches/series b/debian/patches/series index f027c37..bdbf764 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -210,3 +210,4 @@ any/cvs-malloc-hardening.diff any/local-bits-sigstack.diff any/submitted-resolv-unaligned.diff any/submitted-intl-tstgettext.diff +any/submitted-ldconfig-c-collation.diff -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-glibc/glibc.git
Re: Bug#882158: stretch-pu: package glibc/2.24-11+deb9u2
Adam D. Barratt(2017-11-24): > This looks OK to me, but will need a KiBi-ack; CCing. lgtm; apologies for the delay. KiBi. signature.asc Description: PGP signature
Bug#883285: glibc: ia64 glibc crashes on thread exit
Source: glibc Severity: normal Tags: patch Dear Maintainer, glibc 2.24 has an ia64 bug as detailed here: https://sourceware.org/bugzilla/show_bug.cgi?id=21672 The patch as scheduled to be merged into 2.27 is available here: https://sourceware.org/git/gitweb.cgi?p=glibc.git;a=patch;h=01b87c656f670863ce437421b8e9278200965d38 Thank you! Jason -- System Information: Debian Release: buster/sid Architecture: ia64 Kernel: Linux 3.14-0.bpo.2-mckinley (SMP w/2 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash >From 01b87c656f670863ce437421b8e9278200965d38 Mon Sep 17 00:00:00 2001 From: Adhemerval ZanellaDate: Mon, 28 Aug 2017 11:24:35 -0300 Subject: [PATCH] ia64: Fix thread stack allocation permission set (BZ #21672) This patch fixes ia64 failures on thread exit by madvise the required area taking in consideration its disjoing stacks (NEED_SEPARATE_REGISTER_STACK). Also the snippet that setup the madvise call to advertise kernel the area won't be used anymore in near future is reallocated in allocatestack.c (for consistency to put all stack management function in one place). Checked on x86_64-linux-gnu and i686-linux-gnu for sanity (since it is not expected code changes for architecture that do not define NEED_SEPARATE_REGISTER_STACK) and also got a report that it fixes ia64-linux-gnu failures from Sergei Trofimovich . [BZ #21672] * nptl/allocatestack.c [_STACK_GROWS_DOWN] (setup_stack_prot): Set to use !NEED_SEPARATE_REGISTER_STACK as well. (advise_stack_range): New function. * nptl/pthread_create.c (START_THREAD_DEFN): Move logic to mark stack non required to advise_stack_range at allocatestack.c --- ChangeLog | 9 + nptl/allocatestack.c | 29 - nptl/pthread_create.c | 27 ++- 3 files changed, 39 insertions(+), 26 deletions(-) diff --git a/ChangeLog b/ChangeLog index 07cf8dd..b2016ca 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2017-08-29 Adhemerval Zanella + + [BZ #21672] + * nptl/allocatestack.c [_STACK_GROWS_DOWN] (setup_stack_prot): + Set to use !NEED_SEPARATE_REGISTER_STACK as well. + (advise_stack_range): New function. + * nptl/pthread_create.c (START_THREAD_DEFN): Move logic to mark + stack non required to advise_stack_range at allocatestack.c + 2017-08-29 Szabolcs Nagy * sysdeps/unix/sysv/linux/aarch64/sys/procfs.h: Use __uint64_t. diff --git a/nptl/allocatestack.c b/nptl/allocatestack.c index 6d1bcaa..8766deb 100644 --- a/nptl/allocatestack.c +++ b/nptl/allocatestack.c @@ -356,7 +356,7 @@ setup_stack_prot (char *mem, size_t size, char *guard, size_t guardsize, const int prot) { char *guardend = guard + guardsize; -#if _STACK_GROWS_DOWN +#if _STACK_GROWS_DOWN && !defined(NEED_SEPARATE_REGISTER_STACK) /* As defined at guard_position, for architectures with downward stack the guard page is always at start of the allocated area. */ if (__mprotect (guardend, size - guardsize, prot) != 0) @@ -372,6 +372,33 @@ setup_stack_prot (char *mem, size_t size, char *guard, size_t guardsize, return 0; } +/* Mark the memory of the stack as usable to the kernel. It frees everything + except for the space used for the TCB itself. */ +static inline void +__always_inline +advise_stack_range (void *mem, size_t size, uintptr_t pd, size_t guardsize) +{ + uintptr_t sp = (uintptr_t) CURRENT_STACK_FRAME; + size_t pagesize_m1 = __getpagesize () - 1; +#if _STACK_GROWS_DOWN && !defined(NEED_SEPARATE_REGISTER_STACK) + size_t freesize = (sp - (uintptr_t) mem) & ~pagesize_m1; + assert (freesize < size); + if (freesize > PTHREAD_STACK_MIN) +__madvise (mem, freesize - PTHREAD_STACK_MIN, MADV_DONTNEED); +#else + /* Page aligned start of memory to free (higher than or equal + to current sp plus the minimum stack size). */ + uintptr_t freeblock = (sp + PTHREAD_STACK_MIN + pagesize_m1) & ~pagesize_m1; + uintptr_t free_end = (pd - guardsize) & ~pagesize_m1; + if (free_end > freeblock) +{ + size_t freesize = free_end - freeblock; + assert (freesize < size); + __madvise ((void*) freeblock, freesize, MADV_DONTNEED); +} +#endif +} + /* Returns a usable stack for a new thread either by allocating a new stack or reusing a cached stack of sufficient size. ATTR must be non-NULL and point to a valid pthread_attr. diff --git a/nptl/pthread_create.c b/nptl/pthread_create.c index 2f8ada3..83b88bf 100644 --- a/nptl/pthread_create.c +++ b/nptl/pthread_create.c @@ -551,31 +551,8 @@ START_THREAD_DEFN } #endif - /* Mark the memory of the stack as usable to the kernel. We free - everything except for the space used for the TCB itself. */ - size_t pagesize_m1 = __getpagesize () - 1; -#ifdef _STACK_GROWS_DOWN - char *sp = CURRENT_STACK_FRAME; - size_t freesize = (sp - (char *)