Your message dated Mon, 14 Mar 2016 12:12:07 +0100 with message-id <20160314111206.GA2334@aurel32.net> and subject line Bug#223384: libc7: Global constructors from shared objects are sometimes run in the wrong order has caused the Debian Bug report #223384, regarding libc6: Global constructors from shared objects are sometimes run in the wrong order to be marked as done. This means that you claim that the problem has been dealt with. If this is not the case it is now your responsibility to reopen the Bug report if necessary, and/or fix the problem forthwith. (NB: If you are a system administrator and have no idea what this message is talking about, this may indicate a serious mail system misconfiguration somewhere. Please contact owner@bugs.debian.org immediately.) -- 223384: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=223384 Debian Bug Tracking System Contact owner@bugs.debian.org with problems
--- Begin Message ---
- To: submit@bugs.debian.org
- Subject: libc6: Global constructors from shared objects are sometimes run in the wrong order
- From: Avery Pennarun <apenwarr@nit.ca>
- Date: Mon, 8 Dec 2003 19:39:55 -0500
- Message-id: <20031209003955.GB9748@worldvisions.ca>
Package: libc6 Version: 2.3.2.ds1-10 Severity: normal Here's a greatly simplified test case of a problem I had today. If you extract the attached tarball and type the following, cd ldtest export LD_LIBRARY_PATH=$PWD make ./main The output is as follows: creating libwvstreams.so creating libpthread.so creating libdb-4.0.so creating libwvutils.so starting The output should be like this instead: creating libwvutils.so creating libwvstreams.so creating libpthread.so creating libdb-4.0.so starting Or, at any rate, libwvutils.so should somehow be initialized before libwvstreams.so, since libwvstreams.so depends on that library, and not the other way around. As you can see in the Makefile, there are no dependency loops, so there's no reason to initialize the libraries in the wrong order. Removing libdb entirely, or linking libpthread.so to main *before* libwvstreams.so instead of after, eliminates the problem. Note that, in my test case, all the libraries are actually empty except for the global object whose constructor prints the above messages; there are no symbol inter-references between the libraries. This test case performs identically with glibc 2.3.2 in the current Red Hat, so it's not a debian-specific bug. Thanks, Avery -- System Information Debian Release: testing/unstable Architecture: i386 Kernel: Linux insight 2.4.19 #1 mer sep 4 10:52:04 EDT 2002 i686 Locale: LANG=fr_CA, LC_CTYPE=fr_CA Versions of packages libc6 depends on: ii libdb1-compat 2.1.3-7 The Berkeley database routines [glAttachment: ldtest.tar.gz
Description: Binary data
--- End Message ---
--- Begin Message ---
- To: Avery Pennarun <apenwarr@nit.ca>
- Cc: 223384-done@bugs.debian.org
- Subject: Bug#223384: libc7: Global constructors from shared objects are sometimes run in the wrong order
- From: Aurelien Jarno <aurelien@aurel32.net>
- Date: Mon, 14 Mar 2016 12:12:07 +0100
- Message-id: <20160314111206.GA2334@aurel32.net>
- In-reply-to: <20031209003955.GB9748@worldvisions.ca>
- References: <20031209003955.GB9748@worldvisions.ca>
Version: 2.13-38 On 2003-12-08 19:39, Avery Pennarun wrote: > Package: libc6 > Version: 2.3.2.ds1-10 > Severity: normal > > Here's a greatly simplified test case of a problem I had today. > > If you extract the attached tarball and type the following, > > cd ldtest > export LD_LIBRARY_PATH=$PWD > make > ./main > > The output is as follows: > > creating libwvstreams.so > creating libpthread.so > creating libdb-4.0.so > creating libwvutils.so > starting > > The output should be like this instead: > > creating libwvutils.so > creating libwvstreams.so > creating libpthread.so > creating libdb-4.0.so > starting > > Or, at any rate, libwvutils.so should somehow be initialized before > libwvstreams.so, since libwvstreams.so depends on that library, and not the > other way around. As you can see in the Makefile, there are no dependency > loops, so there's no reason to initialize the libraries in the wrong order. > > Removing libdb entirely, or linking libpthread.so to main *before* > libwvstreams.so instead of after, eliminates the problem. > > Note that, in my test case, all the libraries are actually empty except for > the global object whose constructor prints the above messages; there are no > symbol inter-references between the libraries. > > This test case performs identically with glibc 2.3.2 in the current Red > Hat, so it's not a debian-specific bug. This bug is reproducible in squeeze (2.11.3-4+deb6u11), but not in wheezy (2.13-38+deb7u10), so I believe it has been fixed in between. I am therefore closing the bug. Don't hesitate to reopen it if I am wrong. -- Aurelien Jarno GPG: 4096R/1DDD8C9B aurelien@aurel32.net http://www.aurel32.net
--- End Message ---