mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-14 07:10:05 +00:00
5712f8db26
This patch adds a new build test to check for internal fields
offsets for user visible internal field. Although currently
the only field which is statically initialized to a non zero value
is pthread_mutex_t.__data.__kind value, the tests also check the
offset of __kind, __spins, __elision (if supported), and __list
internal member. A internal header (pthread-offset.h) is added
to each major ABI with the reference value.
Checked on x86_64-linux-gnu and with a build check for all affected
ABIs (aarch64-linux-gnu, alpha-linux-gnu, arm-linux-gnueabihf,
hppa-linux-gnu, i686-linux-gnu, ia64-linux-gnu, m68k-linux-gnu,
microblaze-linux-gnu, mips64-linux-gnu, mips64-n32-linux-gnu,
mips-linux-gnu, powerpc64le-linux-gnu, powerpc-linux-gnu,
s390-linux-gnu, s390x-linux-gnu, sh4-linux-gnu, sparc64-linux-gnu,
sparcv9-linux-gnu, tilegx-linux-gnu, tilegx-linux-gnu-x32,
tilepro-linux-gnu, x86_64-linux-gnu, and x86_64-linux-x32).
* nptl/pthreadP.h (ASSERT_PTHREAD_STRING,
ASSERT_PTHREAD_INTERNAL_OFFSET): New macro.
* nptl/pthread_mutex_init.c (__pthread_mutex_init): Add build time
checks for internal pthread_mutex_t offsets.
* sysdeps/aarch64/nptl/pthread-offsets.h
(__PTHREAD_MUTEX_NUSERS_OFFSET, __PTHREAD_MUTEX_KIND_OFFSET,
__PTHREAD_MUTEX_SPINS_OFFSET, __PTHREAD_MUTEX_ELISION_OFFSET,
__PTHREAD_MUTEX_LIST_OFFSET): New macro.
* sysdeps/alpha/nptl/pthread-offsets.h: Likewise.
* sysdeps/arm/nptl/pthread-offsets.h: Likewise.
* sysdeps/hppa/nptl/pthread-offsets.h: Likewise.
* sysdeps/i386/nptl/pthread-offsets.h: Likewise.
* sysdeps/ia64/nptl/pthread-offsets.h: Likewise.
* sysdeps/m68k/nptl/pthread-offsets.h: Likewise.
* sysdeps/microblaze/nptl/pthread-offsets.h: Likewise.
* sysdeps/mips/nptl/pthread-offsets.h: Likewise.
* sysdeps/nios2/nptl/pthread-offsets.h: Likewise.
* sysdeps/powerpc/nptl/pthread-offsets.h: Likewise.
* sysdeps/s390/nptl/pthread-offsets.h: Likewise.
* sysdeps/sh/nptl/pthread-offsets.h: Likewise.
* sysdeps/sparc/nptl/pthread-offsets.h: Likewise.
* sysdeps/tile/nptl/pthread-offsets.h: Likewise.
* sysdeps/x86_64/nptl/pthread-offsets.h: Likewise.
Signed-off-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
(cherry picked from commit
|
||
---|---|---|
.. | ||
bits | ||
fpu | ||
ieee754 | ||
include/sys | ||
mips32 | ||
mips64 | ||
nptl | ||
sys | ||
__longjmp.c | ||
abort-instr.h | ||
add_n.S | ||
addmul_1.S | ||
atomic-machine.h | ||
backtrace.c | ||
bsd-_setjmp.S | ||
bsd-setjmp.S | ||
configure | ||
configure.ac | ||
dl-dtprocnum.h | ||
dl-machine-reject-phdr.h | ||
dl-machine.h | ||
dl-procinfo.c | ||
dl-procinfo.h | ||
dl-tls.h | ||
dl-trampoline.c | ||
fpregdef.h | ||
fpu_control.h | ||
gccframe.h | ||
Implies | ||
jmpbuf-unwind.h | ||
ldsodefs.h | ||
libc-tls.c | ||
linkmap.h | ||
localplt.data | ||
lshift.S | ||
machine-gmon.h | ||
Makefile | ||
math_private.h | ||
math-tests.h | ||
memcpy.S | ||
memset.S | ||
memusage.h | ||
mul_1.S | ||
nan-high-order-bit.h | ||
preconfigure | ||
regdef.h | ||
rshift.S | ||
setjmp_aux.c | ||
setjmp.S | ||
sgidefs.h | ||
sotruss-lib.c | ||
stackinfo.h | ||
start.S | ||
strcmp.S | ||
sub_n.S | ||
submul_1.S | ||
tininess.h | ||
tls-macros.h | ||
tst-abi-fp32mod.c | ||
tst-abi-fp64amod.c | ||
tst-abi-fp64mod.c | ||
tst-abi-fpxxmod.c | ||
tst-abi-fpxxomod.c | ||
tst-abi-interlink.c | ||
tst-audit.h | ||
tst-mode-switch-1.c | ||
tst-mode-switch-2.c | ||
tst-mode-switch-3.c |