freebsd-nq/lib/libc
Michal Meloun 6e16d0bc43 Rework alignment handling in __libc_allocate_tls() for Variant I of TLS layout.
There are two versions of variant I of TLS
- ARM and aarch64 uses original version of variant I here TP points to
  start of TCB followed by aligned TLS segment. Both TCB and TLS must
  be aligned to alignment of TLS section. The TCB[0] points to DTV vector
  and DTV values are real addresses (without bias).

- MIPS, PowerPC and RISC-V use modified version of variant I,
  where TP points (with bias) to TLS and TCB immediately precedes TLS
  without any alignment gap. Only TLS should be aligned. The TCB[0]
  points to DTV vector and DTV values are biased by constant value (0x8000)
  from real addresses.

Take all this in account when allocating memory for TLS structures.

MFC after:	1 month
Reviewed by:	kib, mizhka
Tested by:	mizhka(on mips)
Differential Revision:	https://reviews.freebsd.org/D13378
2017-12-12 11:25:30 +00:00
..
aarch64
amd64 libc: further adoption of SPDX licensing ID tags. 2017-11-25 17:12:48 +00:00
arm libc: further adoption of SPDX licensing ID tags. 2017-11-25 17:12:48 +00:00
capability
compat-43 General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
db libc: further adoption of SPDX licensing ID tags. 2017-11-25 17:12:48 +00:00
gdtoa libc: further adoption of SPDX licensing ID tags. 2017-11-25 17:12:48 +00:00
gen Rework alignment handling in __libc_allocate_tls() for Variant I of TLS layout. 2017-12-12 11:25:30 +00:00
gmon General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
i386 libc: further adoption of SPDX licensing ID tags. 2017-11-25 17:12:48 +00:00
iconv libc: further adoption of SPDX licensing ID tags. 2017-11-25 17:12:48 +00:00
include SPDX: license IDs for some ISC-related files. 2017-12-08 15:57:29 +00:00
inet SPDX: license IDs for some ISC-related files. 2017-12-08 15:57:29 +00:00
isc SPDX: more ISC-related files. 2017-12-08 17:52:53 +00:00
locale libc: further adoption of SPDX licensing ID tags. 2017-11-25 17:12:48 +00:00
md
mips Fix fabs() for MIPS when used on -0.0 2017-11-28 20:37:27 +00:00
nameser SPDX: license IDs for some ISC-related files. 2017-12-08 15:57:29 +00:00
net libc: further adoption of SPDX licensing ID tags. 2017-11-25 17:12:48 +00:00
nls
posix1e libc: further adoption of SPDX licensing ID tags. 2017-11-25 17:12:48 +00:00
powerpc libc: further adoption of SPDX licensing ID tags. 2017-11-25 17:12:48 +00:00
powerpc64 libc: further adoption of SPDX licensing ID tags. 2017-11-25 17:12:48 +00:00
powerpcspe
quad General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
regex General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
resolv SPDX: license IDs for some ISC-related files. 2017-12-08 15:57:29 +00:00
riscv Support for v1.10 (latest) of RISC-V privilege specification. 2017-08-10 14:18:09 +00:00
rpc libc: further adoption of SPDX licensing ID tags. 2017-11-25 17:12:48 +00:00
secure
softfloat libc: further adoption of SPDX licensing ID tags. 2017-11-25 17:12:48 +00:00
sparc64 libc: further adoption of SPDX licensing ID tags. 2017-11-25 17:12:48 +00:00
stdio The function fwscanf() return value is wrong when encountering an early 2017-12-06 21:12:24 +00:00
stdlib libc: further adoption of SPDX licensing ID tags. 2017-11-25 17:12:48 +00:00
stdtime libc: further adoption of SPDX licensing ID tags. 2017-11-25 17:12:48 +00:00
string libc: further adoption of SPDX licensing ID tags. 2017-11-25 17:12:48 +00:00
sys Note that old sys/event.h required manual sys/types.h inclusion 2017-12-07 01:50:17 +00:00
tests Optimize telldir(3) 2017-12-06 22:06:48 +00:00
uuid libc: further adoption of SPDX licensing ID tags. 2017-11-25 17:12:48 +00:00
x86/sys Fix a regression in r321608. 2017-08-13 14:42:23 +00:00
xdr General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
yp libc: further adoption of SPDX licensing ID tags. 2017-11-25 17:12:48 +00:00
libc_nossp.ldscript
libc.ldscript
Makefile Support armv7 builds for userland 2017-10-05 23:01:33 +00:00
Makefile.depend
Versions.def