Run check-localpltk/textrel/execstack over ld.so.
commitda53d6dbc28d2a90d6e14dd661e68611c3b741cf
authorCarlos O'Donell <carlos@redhat.com>
Thu, 6 Nov 2014 20:48:44 +0000 (6 15:48 -0500)
committerCarlos O'Donell <carlos@redhat.com>
Thu, 6 Nov 2014 20:48:44 +0000 (6 15:48 -0500)
tree8d8a5a7c54d96c6a34a4780bd83a648ea073368a
parent9cf27b8d09aab26bd4693b10f281d64da779da83
Run check-localpltk/textrel/execstack over ld.so.

For maximum paranoia we run ld.so through the normal set
of tests for all of the shared libraries. This includes
running ld.so through check-localplt, check-textrel, and
check-execstack. While none of these should trigger any
failures given the way ld.so is built, it might possibly
fail if a developer does something wrong. This paranoia
was triggered by a discussion over the use of __strcpy
vs. strcpy [1] and if the symbol could leak and use the
libc.so version.

The check-localplt test fails right away because localplt.data
needs updating for all arches. By default we add 6 new symbols:
__tls_get_addr, __libc_memalign, malloc, calloc, realloc and
free. Other machines like i386, power, and s390 require some
different symbol sets e.g. ___tls_get_addr vs. __tls_get_addr
for i386.

Verified for i386
Verified for x86_64
Verified for ppc32
Verified for ppc64
Verified for ppc64le
Verified for arm
Verified for aarch64
Verified for s390
Verified for s390x
Guessed for alpha
Guessed for ia64
Guessed for m68k
Guessed for microblaze
Guessed for sparc32
Guessed for sparc64
Defaults for sh
Defaults for mips
Defaults for hppa
Defaults for tile

Machine manintainers notified to double check the data
used in localplt.data.

[1] https://sourceware.org/ml/libc-alpha/2014-10/msg00548.html
16 files changed:
ChangeLog
elf/Makefile
sysdeps/generic/localplt.data
sysdeps/unix/sysv/linux/aarch64/localplt.data
sysdeps/unix/sysv/linux/alpha/localplt.data
sysdeps/unix/sysv/linux/arm/localplt.data
sysdeps/unix/sysv/linux/i386/localplt.data
sysdeps/unix/sysv/linux/ia64/localplt.data
sysdeps/unix/sysv/linux/m68k/localplt.data
sysdeps/unix/sysv/linux/microblaze/localplt.data
sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/localplt.data
sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/localplt.data
sysdeps/unix/sysv/linux/powerpc/powerpc64/localplt.data
sysdeps/unix/sysv/linux/s390/localplt.data
sysdeps/unix/sysv/linux/sparc/sparc32/localplt.data
sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data