glibc/include
Florian Weimer dd32e1db38 Revert "elf: Always call destructors in reverse constructor order (bug 30785)"
This reverts commit 6985865bc3.

Reason for revert:

The commit changes the order of ELF destructor calls too much relative
to what applications expect or can handle.  In particular, during
process exit and _dl_fini, after the revert commit, we no longer call
the destructors of the main program first; that only happens after
some dlopen'ed objects have been destructed.  This robs applications
of an opportunity to influence destructor order by calling dlclose
explicitly from the main program's ELF destructors.  A couple of
different approaches involving reverse constructor order were tried,
and none of them worked really well.  It seems we need to keep the
dependency sorting in _dl_fini.

There is also an ambiguity regarding nested dlopen calls from ELF
constructors: Should those destructors run before or after the object
that called dlopen?  Commit 6985865bc3 used reverse order
of the start of ELF constructor calls for destructors, but arguably
using completion of constructors is more correct.  However, that alone
is not sufficient to address application compatibility issues (it
does not change _dl_fini ordering at all).
2023-10-18 11:30:38 +02:00
..
arpa Fix all the remaining misspellings -- BZ 25337 2023-06-02 01:39:48 +00:00
bits misc/bits/syslog.h: Clearly separate declaration from definition 2023-07-05 16:59:48 +02:00
gnu Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
net
netinet
programs Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
protocols
rpc
rpcsvc
sys misc/bits/syslog.h: Clearly separate declaration from definition 2023-07-05 16:59:48 +02:00
aio.h
aliases.h
alloc_buffer.h Fix all the remaining misspellings -- BZ 25337 2023-06-02 01:39:48 +00:00
alloca.h
allocate_once.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
ar.h
argp-fmtstream.h
argp.h
argz.h
array_length.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
assert.h
atomic.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
atomic_wide_counter.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
byteswap.h
clone_internal.h posix: Add pidfd_spawn and pidfd_spawnp (BZ 30349) 2023-09-05 13:08:59 -03:00
complex.h
cpio.h
crypt.h
ctype.h
des.h
dirent.h
dlfcn.h
dso_handle.h
elf.h
endian.h
envz.h
err.h
errno.h
error.h Mark various cold functions as __COLD 2023-05-01 19:33:21 +02:00
execinfo.h
fcntl.h
features-time64.h
features.h Increase version numbers 2023-07-30 21:35:28 +02:00
fenv.h
file_change_detection.h Fix all the remaining misspellings -- BZ 25337 2023-06-02 01:39:48 +00:00
filename.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
float.h
fmtmsg.h
fnmatch.h
fpu_control.h
fstab.h
fts.h
ftw.h
gconv.h
getopt.h
getopt_int.h
glob.h
gmp.h
gnu-versions.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
grp-merge.h
grp.h
gshadow.h
iconv.h
idx.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
ifaddrs.h nscd: Do not rebuild getaddrinfo (bug 30709) 2023-08-11 10:10:16 +02:00
ifreq.h
ifunc-impl-list.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
inline-hashtab.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
intprops.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
inttypes.h
langinfo.h
lastlog.h
libc-diag.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
libc-internal.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
libc-pointer-arith.h Fix all the remaining misspellings -- BZ 25337 2023-06-02 01:39:48 +00:00
libc-symbols.h Fix all the remaining misspellings -- BZ 25337 2023-06-02 01:39:48 +00:00
libgen.h
libintl.h
limits.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
link.h Revert "elf: Always call destructors in reverse constructor order (bug 30785)" 2023-10-18 11:30:38 +02:00
list.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
list_t.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
locale.h
loop_unroll.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
malloc.h
math-narrow-eval.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
math.h
mcheck.h
memory.h
mntent.h
monetary.h
mqueue.h
netdb.h
netgroup.h
nl_types.h
nss.h
nss_dns.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
nss_files.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
nsswitch.h
obstack.h
plural-exp.h
poll.h
printf.h
printf_buffer.h Fix all the remaining misspellings -- BZ 25337 2023-06-02 01:39:48 +00:00
pthread.h
pty.h
pwd.h
random-bits.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
re_comp.h
regex.h Fix regex type usage 2023-05-01 09:08:59 -04:00
regexp.h
register-atfork.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
resolv.h
rounding-mode.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
rtld-malloc.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
sched.h
scratch_buffer.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
search.h
set-freeres.h Fix a few more typos I missed in previous round -- BZ 25337 2023-06-02 23:46:32 +00:00
setjmp.h chk: Add and fix hidden builtin definitions for *_chk 2023-08-03 22:46:48 +02:00
sgtty.h
shadow.h
shlib-compat.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
shm-directory.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
signal.h
spawn.h
stab.h
stackinfo.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
stap-probe.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
stdc-predef.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
stdint.h
stdio.h stdio: Remove __libc_message alloca usage 2023-09-11 16:16:49 +00:00
stdio_ext.h
stdlib.h __call_tls_dtors: Use call_function_static_weak 2023-09-04 20:03:37 +02:00
string.h chk: Add and fix hidden builtin definitions for *_chk 2023-08-03 22:46:48 +02:00
strings.h
struct___timeb64.h
struct___timespec64.h
struct___timeval64.h
stubs-prologue.h
syscall.h
sysexits.h
syslog.h
tar.h
termios.h
tgmath.h
time.h
ttyent.h
uchar.h
ucontext.h
ulimit.h
unistd.h unistd: Avoid PLT entries with _FORTIFY_SOURCE 2023-07-05 16:59:48 +02:00
unistd_ext.h Move {read,write}_all functions to a dedicated header 2023-06-06 08:23:53 -04:00
utime.h
utmp.h
values.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
verify.h
wait.h
wchar.h wchar: Avoid PLT entries with _FORTIFY_SOURCE 2023-07-05 16:59:48 +02:00
wctype.h
wordexp.h