freebsd-nq/lib/libc/sys
Konstantin Belousov 5d00c5a657 Fix initial exec TLS mode for dynamically loaded shared objects.
If dso uses initial exec TLS mode, rtld tries to allocate TLS in
static space. If there is no space left, the dlopen(3) fails. If space
if allocated, initial content from PT_TLS segment is distributed to
all threads' pcbs, which was missed and caused un-initialized TLS
segment for such dso after dlopen(3).

The mode is auto-detected either due to the relocation used, or if the
DF_STATIC_TLS dynamic flag is set.  In the later case, the TLS segment
is tried to allocate earlier, which increases chance of the dlopen(3)
to succeed.  LLD was recently fixed to properly emit the flag, ld.bdf
did it always.

Initial test by:	dumbbell
Tested by:	emaste (amd64), ian (arm)
Tested by:	Gerald Aryeetey <aryeeteygerald_rogers.com> (arm64)
Sponsored by:	The FreeBSD Foundation
MFC after:	2 weeks
Differential revision:	https://reviews.freebsd.org/D19072
2019-03-29 17:52:57 +00:00
..
__error.c General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
__vdso_gettimeofday.c libc: further adoption of SPDX licensing ID tags. 2017-11-25 17:12:48 +00:00
_exit.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
_umtx_op.2 Fix formatting of _umtx_op(2) 2017-11-13 17:46:38 +00:00
abort2.2
accept4.c
accept.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
accept.c
access.2 First draft of documentation for AT/O_BENEATH handling of the absolute 2018-11-11 01:46:48 +00:00
acct.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
adjtime.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
aio_cancel.2
aio_error.2
aio_fsync.2 Fix various nits in the aio operation manpages. 2016-08-19 17:37:32 +00:00
aio_mlock.2 Fix various nits in the aio operation manpages. 2016-08-19 17:37:32 +00:00
aio_read.2 Fix various nits in the aio operation manpages. 2016-08-19 17:37:32 +00:00
aio_return.2 Fully handle size_t lengths in AIO requests. 2016-03-21 21:37:33 +00:00
aio_suspend.2 Bump man page revision dates for r324941 2017-10-24 14:34:25 +00:00
aio_suspend.c
aio_waitcomplete.2 Fully handle size_t lengths in AIO requests. 2016-03-21 21:37:33 +00:00
aio_write.2 Fix various nits in the aio operation manpages. 2016-08-19 17:37:32 +00:00
bind.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
bindat.2 Clarify bindat/connectat use with AT_FDCWD 2018-04-30 17:16:17 +00:00
brk.2 Reimplement brk() and sbrk() to avoid the use of _end. 2018-06-04 19:35:15 +00:00
brk.c Reimplement brk() and sbrk() to avoid the use of _end. 2018-06-04 19:35:15 +00:00
cap_enter.2 cap_enter(2): fix manlint issues 2017-05-23 07:31:03 +00:00
cap_fcntls_limit.2
cap_ioctls_limit.2
cap_rights_limit.2
chdir.2 Mark all the system calls that were in 1st Edition Unix as such in the 2017-12-01 22:26:36 +00:00
chflags.2 First draft of documentation for AT/O_BENEATH handling of the absolute 2018-11-11 01:46:48 +00:00
chmod.2 First draft of documentation for AT/O_BENEATH handling of the absolute 2018-11-11 01:46:48 +00:00
chown.2 First draft of documentation for AT/O_BENEATH handling of the absolute 2018-11-11 01:46:48 +00:00
chroot.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
clock_gettime.2 clock_gettime.2: add some clock IDs 2017-03-22 00:50:36 +00:00
clock_gettime.c libc: further adoption of SPDX licensing ID tags. 2017-11-25 17:12:48 +00:00
clock_nanosleep.c Remove 'All rights reserved' from my files 2018-05-09 20:12:59 +00:00
close.2 Mark all the system calls that were in 1st Edition Unix as such in the 2017-12-01 22:26:36 +00:00
close.c Add missing includes to eliminate -Wmissing-prototypes warnings 2015-09-20 03:45:57 +00:00
closefrom.2
compat-ino64.h Forward compatibility for ino64. 2017-06-23 18:06:20 +00:00
compat-stub.c Remove bits of the old NUMA. 2018-07-10 22:00:20 +00:00
connect.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
connect.c
connectat.2 Clarify bindat/connectat use with AT_FDCWD 2018-04-30 17:16:17 +00:00
cpuset_getaffinity.2 Document new NUMA related syscalls and utility options. 2018-03-24 23:58:44 +00:00
cpuset_getdomain.2 Add missing file from 4331508 2018-03-25 07:42:44 +00:00
cpuset.2 Document new NUMA related syscalls and utility options. 2018-03-24 23:58:44 +00:00
dup.2 Correct history for Unix 2nd Edition through 6th Edition for the 2017-12-01 22:48:20 +00:00
execve.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
extattr_get_file.2
fcntl.2 fcntl.2: document an additional error condition 2018-11-15 16:13:25 +00:00
fcntl.c libc: further adoption of SPDX licensing ID tags. 2017-11-25 17:12:48 +00:00
fdatasync.c The fdatasync(2) call must be cancellation point. 2016-08-16 08:27:03 +00:00
ffclock.2
fhlink.2 Add new file handle system calls. 2018-12-07 15:17:29 +00:00
fhopen.2
fhreadlink.2 Add new file handle system calls. 2018-12-07 15:17:29 +00:00
flock.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
fork.2 Mark all the system calls that were in 1st Edition Unix as such in the 2017-12-01 22:26:36 +00:00
fork.c
fstat.c Forward compatibility for ino64. 2017-06-23 18:06:20 +00:00
fstatat.c Forward compatibility for ino64. 2017-06-23 18:06:20 +00:00
fstatfs.c Forward compatibility for ino64. 2017-06-23 18:06:20 +00:00
fsync.2 Don't put multiple names on a single .Nm line. This fixes apropos(1) 2018-04-17 09:05:46 +00:00
fsync.c Add missing includes to eliminate -Wmissing-prototypes warnings 2015-09-20 03:45:57 +00:00
getdents.c Forward compatibility for ino64. 2017-06-23 18:06:20 +00:00
getdirentries.2 Add d_off support for multiple filesystems. 2018-11-14 14:18:35 +00:00
getdirentries.c Forward compatibility for ino64. 2017-06-23 18:06:20 +00:00
getdtablesize.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
getfh.2 Remove special case handling for getfhat(fd, NULL, handle). 2018-12-11 02:48:49 +00:00
getfsstat.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
getfsstat.c Be sure to free allocated statfs11 buffer. 2017-06-24 00:28:35 +00:00
getgid.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
getgroups.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
getitimer.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
getlogin.2 MAXLOGNAME changed to 33 in r243023. 2018-08-03 16:05:03 +00:00
getloginclass.2 MAXLOGNAME changed to 33 in r243023. 2018-08-03 16:05:03 +00:00
getpeername.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
getpgrp.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
getpid.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
getpriority.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
getrandom.2 Implement getrandom(2) and getentropy(3) 2018-03-21 01:15:45 +00:00
getrlimit.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
getrusage.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
getsid.2
getsockname.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
getsockopt.2 Document the ENOBUFS errno in setsockopt(2). 2019-02-09 21:33:32 +00:00
gettimeofday.2 Bump .Dd forgotten in last commit. 2018-10-28 03:02:09 +00:00
gettimeofday.c libc: further adoption of SPDX licensing ID tags. 2017-11-25 17:12:48 +00:00
getuid.2 Correct history for Unix 2nd Edition through 6th Edition for the 2017-12-01 22:48:20 +00:00
interposing_table.c Fix initial exec TLS mode for dynamically loaded shared objects. 2019-03-29 17:52:57 +00:00
intro.2 Create new EINTEGRITY error with message "Integrity check failed". 2019-01-17 06:35:45 +00:00
ioctl.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
issetugid.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
jail.2 Revert r337922, except for some documention-only bits. This needs to wait 2018-08-16 19:09:43 +00:00
kenv.2 Make several improvements and corrections in the kenv(2) man page 2017-02-21 19:51:41 +00:00
kevent.c
kill.2 Correct history for Unix 2nd Edition through 6th Edition for the 2017-12-01 22:48:20 +00:00
kldfind.2
kldfirstmod.2
kldload.2
kldnext.2
kldstat.2
kldsym.2 Use 'cmd' rather than 'command' to match the function prototype. 2016-10-17 22:36:37 +00:00
kldunload.2
kqueue.2 Allow a EVFILT_TIMER kevent to be updated. 2018-07-27 13:49:17 +00:00
ktrace.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
link.2 First draft of documentation for AT/O_BENEATH handling of the absolute 2018-11-11 01:46:48 +00:00
lio_listio.2 Bump man page revision dates for r324941 2017-10-24 14:34:25 +00:00
listen.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
lseek.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
lstat.c Forward compatibility for ino64. 2017-06-23 18:06:20 +00:00
madvise.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
Makefile.inc Add new file handle system calls. 2018-12-07 15:17:29 +00:00
mincore.2 Add a tunable which changes mincore(2) algorithm to only report data 2019-01-07 22:10:48 +00:00
minherit.2 Implement INHERIT_ZERO for minherit(2). 2017-03-14 17:10:42 +00:00
mkdir.2 Mark all the system calls that were in 1st Edition Unix as such in the 2017-12-01 22:26:36 +00:00
mkfifo.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
mknod.2 Fix missing .Dd bump 2017-12-01 22:52:45 +00:00
mknod.c Commit the 64-bit inode project. 2017-05-23 09:29:05 +00:00
mlock.2 Remove a lingering inaccuracy from mlock.2. 2018-03-20 20:45:47 +00:00
mlockall.2
mmap.2 Simplify language. 2017-07-08 07:33:30 +00:00
modfind.2 Use the right argumant name 2016-03-18 08:47:17 +00:00
modnext.2
modstat.2
mount.2 Mark all the system calls that were in 1st Edition Unix as such in the 2017-12-01 22:26:36 +00:00
mprotect.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
mq_close.2
mq_getattr.2
mq_notify.2 Add documentation for the sigevent structure. 2016-07-15 15:12:56 +00:00
mq_open.2
mq_receive.2
mq_send.2
mq_setattr.2
msgctl.2 Rename kernel-only members of semid_ds and msgid_ds. 2018-03-02 22:10:48 +00:00
msgget.2 Refer to SysV IPC permissions as numeric constants. 2018-03-04 20:06:02 +00:00
msgrcv.2 Change the return type of msgrcv() to ssize_t as required by POSIX. 2016-07-28 12:22:01 +00:00
msgsnd.2
msync.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
msync.c Add missing includes to eliminate -Wmissing-prototypes warnings 2015-09-20 03:45:57 +00:00
munmap.2 Implement address space guards. 2017-06-24 17:01:11 +00:00
nanosleep.2 Add clock_nanosleep() 2017-03-19 00:51:12 +00:00
nanosleep.c
nfssvc.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
ntp_adjtime.2
open.2 First draft of documentation for AT/O_BENEATH handling of the absolute 2018-11-11 01:46:48 +00:00
open.c
openat.c use @@@ instead of @@ in __sym_default 2017-12-05 20:19:13 +00:00
pathconf.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
pdfork.2 Add .Xrs to kqueue(2) from pdfork(2) and procdesc(4), to make EVFILT_PROCDESC 2018-10-14 18:42:54 +00:00
pipe.2 Correct history for Unix 2nd Edition through 6th Edition for the 2017-12-01 22:48:20 +00:00
pipe.c Replace use of the pipe(2) system call with pipe2(2) with a zero flags 2016-06-22 21:11:27 +00:00
poll.2 poll.2: POLLNVAL is returned also for insufficient rights 2019-02-27 17:52:22 +00:00
poll.c
posix_fadvise.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
posix_fallocate.2 posix_fallocate.2: add an EINVAL errno case 2017-11-05 03:02:19 +00:00
posix_openpt.2 posix_openpt.2: Sort includes per style(9) 2016-09-21 17:51:27 +00:00
ppoll.c
procctl.2 procctl(2): document ASLR knobs. 2019-02-26 17:41:41 +00:00
profil.2 Correct history for Unix 2nd Edition through 6th Edition for the 2017-12-01 22:48:20 +00:00
pselect.2
pselect.c
ptrace.2 Added ptrace support for reading/writing powerpc VSX registers 2018-06-02 19:17:11 +00:00
ptrace.c Rewrite ptrace(2) wrappers in C. 2016-08-29 18:47:51 +00:00
quotactl.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
rctl_add_rule.2 rctl_add_rule(2): fix manlint warnings 2017-05-23 07:32:57 +00:00
read.2 Mark all the system calls that were in 1st Edition Unix as such in the 2017-12-01 22:26:36 +00:00
read.c
readlink.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
readv.c Add missing includes to eliminate -Wmissing-prototypes warnings 2015-09-20 03:45:57 +00:00
reboot.2 Tweak documentation to RB_ constants to reflect current use 2018-07-10 00:01:14 +00:00
recv.2 Update example to something people less than 40 years old have heard about. 2018-10-21 07:30:26 +00:00
recvfrom.c
recvmsg.c
rename.2 Add some words clarifying that rename(2) does nothing when the 'from' and 2018-06-21 15:21:17 +00:00
revoke.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
rfork.2
rmdir.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
rtprio.2 Remove "All rights reserved" from my files. 2018-05-10 06:41:08 +00:00
sched_get_priority_max.2
sched_setparam.2
sched_setscheduler.2
sched_yield.2
sctp_generic_recvmsg.2
sctp_generic_sendmsg.2
sctp_peeloff.2
select.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
select.c
semctl.2 Don't declare union semun in userspace unless _WANT_SEMUN is defined. 2018-03-02 22:32:53 +00:00
semget.2 Refer to SysV IPC permissions as numeric constants. 2018-03-04 20:06:02 +00:00
semop.2
send.2 Support MSG_DONTWAIT in send*(2). 2019-01-04 17:31:50 +00:00
sendfile.2 Imaginary cat jumped my keyboard! 2019-02-15 23:46:34 +00:00
sendmsg.c
sendto.c
setcontext.c use @@@ instead of @@ in __sym_default 2017-12-05 20:19:13 +00:00
setfib.2 Don't end up manpage titles with a full stop. 2017-05-24 21:02:53 +00:00
setgroups.2 Update .Dd missed in -r328304. 2018-01-24 22:36:21 +00:00
setpgid.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
setregid.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
setresuid.2
setreuid.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
setsid.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
setuid.2 Correct history for Unix 2nd Edition through 6th Edition for the 2017-12-01 22:48:20 +00:00
shm_open.2 Mention sendfile(2) by popular demand. 2017-01-20 17:29:59 +00:00
shmat.2 Implement shmat(2) flag SHM_REMAP. 2019-01-16 05:15:57 +00:00
shmctl.2 Change the default setting of kern.ipc.shm_allow_removed from 0 to 1. 2015-10-10 09:29:47 +00:00
shmget.2 Refer to SysV IPC permissions as numeric constants. 2018-03-04 20:06:02 +00:00
shutdown.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
sigaction.2 sigaction.2: Minor cleanups 2018-06-28 18:17:20 +00:00
sigaction.c Switch libc from using _sig{procmask,action,suspend} symbols, which 2015-08-29 14:25:01 +00:00
sigaltstack.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
sigpending.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
sigprocmask.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
sigprocmask.c Switch libc from using _sig{procmask,action,suspend} symbols, which 2015-08-29 14:25:01 +00:00
sigqueue.2 Provide a freebsd32 implementation of sigqueue() 2017-05-05 18:49:39 +00:00
sigreturn.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
sigstack.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
sigsuspend.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
sigsuspend.c Switch libc from using _sig{procmask,action,suspend} symbols, which 2015-08-29 14:25:01 +00:00
sigtimedwait.c
sigwait.2
sigwait.c libc: further adoption of SPDX licensing ID tags. 2017-11-25 17:12:48 +00:00
sigwaitinfo.2
sigwaitinfo.c
socket.2 Document socket control message routines for ancillary data access (CMSG_DATA). 2018-08-19 17:42:49 +00:00
socketpair.2 socketpair.2: Reference relevant POSIX standards 2018-02-10 19:41:32 +00:00
stat.2 Use consistent struct stat arg name in stat man page 2019-03-13 15:18:14 +00:00
stat.c Forward compatibility for ino64. 2017-06-23 18:06:20 +00:00
statfs.2 Add a reference to getfsstat in statfs. 2017-11-22 05:27:18 +00:00
statfs.c Forward compatibility for ino64. 2017-06-23 18:06:20 +00:00
swapcontext.c use @@@ instead of @@ in __sym_default 2017-12-05 20:19:13 +00:00
swapon.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
Symbol.map Add new file handle system calls. 2018-12-07 15:17:29 +00:00
symlink.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
sync.2 Correct history for Unix 2nd Edition through 6th Edition for the 2017-12-01 22:48:20 +00:00
sysarch.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
syscall.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
thr_exit.2 thr_*(2): Add xrefs to what libthr implements using each syscall. 2016-06-01 21:58:13 +00:00
thr_kill.2 thr_*(2): Add xrefs to what libthr implements using each syscall. 2016-06-01 21:58:13 +00:00
thr_new.2 Improve errno documentation in pthread_create(3) and thr_new(2) 2016-06-03 14:30:32 +00:00
thr_self.2 thr_*(2): Add xrefs to what libthr implements using each syscall. 2016-06-01 21:58:13 +00:00
thr_set_name.2 thr_set_name(): silently truncate the given name as needed 2016-12-03 01:14:21 +00:00
thr_suspend.2 Reword the statement. 2016-09-30 16:02:25 +00:00
thr_wake.2 thr_wake(2): Minor mdoc fixes 2019-01-06 21:34:05 +00:00
timer_create.2 Add documentation for the sigevent structure. 2016-07-15 15:12:56 +00:00
timer_delete.2
timer_settime.2
trivial-vdso_tc.c Implement userspace gettimeofday(2) with HPET timecounter. 2016-08-17 09:52:09 +00:00
truncate.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
umask.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
undelete.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
unlink.2 First draft of documentation for AT/O_BENEATH handling of the absolute 2018-11-11 01:46:48 +00:00
utimensat.2 First draft of documentation for AT/O_BENEATH handling of the absolute 2018-11-11 01:46:48 +00:00
utimes.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
utrace.2 mdoc: sort Xr 2016-01-18 20:21:38 +00:00
uuidgen.2
vadvise.c Make vadvise compat freebsd11. 2018-05-25 20:40:23 +00:00
vfork.2 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
wait4.c
wait6.c
wait.2 Clarify slightly the interaction between wait*() and pdfork(). 2018-10-24 18:42:13 +00:00
write.2 Mark all the system calls that were in 1st Edition Unix as such in the 2017-12-01 22:26:36 +00:00
write.c
writev.c Add missing includes to eliminate -Wmissing-prototypes warnings 2015-09-20 03:45:57 +00:00