glibc/sysdeps
Sudakshina Das 91181954f9 aarch64: Add BTI support to assembly files
To enable building glibc with branch protection, assembly code
needs BTI landing pads and ELF object file markings in the form
of a GNU property note.

The landing pads are unconditionally added to all functions that
may be indirectly called. When the code segment is not mapped
with PROT_BTI these instructions are nops. They are kept in the
code when BTI is not supported so that the layout of performance
critical code is unchanged across configurations.

The GNU property notes are only added when there is support for
BTI in the toolchain, because old binutils does not handle the
notes right. (Does not know how to merge them nor to put them in
PT_GNU_PROPERTY segment instead of PT_NOTE, and some versions
of binutils emit warnings about the unknown GNU property. In
such cases the produced libc binaries would not have valid
ELF marking so BTI would not be enabled.)

Note: functions using ENTRY or ENTRY_ALIGN now start with an
additional BTI c, so alignment of the following code changes,
but ENTRY_ALIGN_AND_PAD was fixed so there is no change to the
existing code layout. Some string functions may need to be
tuned for optimal performance after this commit.

Co-authored-by: Szabolcs Nagy <szabolcs.nagy@arm.com>
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2020-07-08 15:02:37 +01:00
..
aarch64 aarch64: Add BTI support to assembly files 2020-07-08 15:02:37 +01:00
alpha alpha: Use builtin sqrt{f} 2020-06-22 11:09:49 -03:00
arm Rewrite abi-note.S in C. 2020-07-08 15:02:37 +01:00
csky semaphore: consolidate arch headers into a generic one 2020-05-06 13:07:12 -07:00
generic rtld: Clean up PT_NOTE and add PT_GNU_PROPERTY handling 2020-07-08 14:28:53 +01:00
gnu signal: Move sys_errlist to a compat symbol 2020-07-07 14:10:58 -03:00
hppa dl-runtime: reloc_{offset,index} now functions arch overide'able 2020-06-05 13:45:46 -07:00
htl htl: Move cleanup handling to non-private libc-lock 2020-06-28 00:13:57 +00:00
hurd hurd: Evaluate fd before entering the critical section 2020-07-07 22:10:24 +02:00
i386 i386: Use builtin sqrtl 2020-06-22 11:09:49 -03:00
ia64 ia64: Use generic exp10f 2020-06-19 12:08:52 -03:00
ieee754 Use C2x return value from getpayload of non-NaN (bug 26073). 2020-07-06 16:18:02 +00:00
m68k m68k: Use sqrt{f} builtin for coldfire 2020-06-22 11:09:50 -03:00
mach hurd: Fix strerror not setting errno 2020-07-07 21:46:53 +00:00
microblaze semaphore: consolidate arch headers into a generic one 2020-05-06 13:07:12 -07:00
mips mips: Use sqrt{f} builtin 2020-06-22 11:09:49 -03:00
nios2 semaphore: consolidate arch headers into a generic one 2020-05-06 13:07:12 -07:00
nptl nptl: Add pthread_attr_setsigmask_np, pthread_attr_getsigmask_np 2020-06-02 11:59:18 +02:00
posix hurd: Fix __writev_nocancel_nostatus 2020-06-14 17:45:04 +00:00
powerpc powerpc: Add support for POWER10 2020-06-29 10:08:38 -03:00
pthread htl: Enable cancel*16 an cancel*20 tests 2020-06-29 00:16:33 +00:00
riscv riscv: Use sqrt{f} builtin 2020-06-22 11:09:50 -03:00
s390 S390: Optimize __memset_z196. 2020-06-26 09:45:11 +02:00
sh semaphore: consolidate arch headers into a generic one 2020-05-06 13:07:12 -07:00
sparc sparc: Use sqrt{f} builtin 2020-06-22 11:09:49 -03:00
unix string: Add strerrorname_np and strerrordesc_np 2020-07-07 15:02:57 -03:00
wordsize-32 Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
wordsize-64 Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
x86 rtld: Clean up PT_NOTE and add PT_GNU_PROPERTY handling 2020-07-08 14:28:53 +01:00
x86_64 x86: Add thresholds for "rep movsb/stosb" to tunables 2020-07-06 11:48:42 -07:00