glibc/sysdeps
Adhemerval Zanella e921c89e01 powerpc: Fix TLE build for SPE (BZ #22926)
Some SPE opcodes clashes with some recent PowerISA opcodes and
until recently gas did not complain about it.  However binutils
recently changed it and now VLE configured gas does not support to
assembler some instruction that might class with VLE (HTM for
instance).  It also does not help that glibc build hardware lock
elision support as default (regardless of assembler support).

Although runtime will not actually enables TLE on SPE hardware
(since kernel will not advertise it), I see little advantage on
adding HTM support on SPE built glibc.  SPE uses an incompatible
ABI which does not allow share the same build with default
powerpc and HTM code slows down SPE without any benefict.

This patch fixes it by only building HTM when SPE configuration
is not used.

Checked with a powerpc-linux-gnuspe build. I also did some sniff
tests on a e500 hardware without any issue.

	[BZ #22926]
	* sysdeps/powerpc/powerpc32/sysdep.h (ABORT_TRANSACTION_IMPL): Define
	empty for __SPE__.
	* sysdeps/powerpc/sysdep.h (ABORT_TRANSACTION): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/elision-lock.c (__lll_lock_elision):
	Do not build hardware transactional code for __SPE__.
	* sysdeps/unix/sysv/linux/powerpc/elision-trylock.c
	(__lll_trylock_elision): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/elision-unlock.c
	(__lll_unlock_elision): Likewise.
2018-03-07 17:39:44 -03:00
..
aarch64 aarch64: Fix branch target to loop16 2018-03-06 23:01:02 +05:30
alpha Update Alpha libm-test-ulps 2018-01-27 13:31:38 +01:00
arm Move LDBL_CLASSIFY_COMPAT to its own header. 2018-02-01 21:01:00 +00:00
generic Rename nptl-signals.h to internal-signals.h 2018-02-22 16:43:59 -03:00
gnu Add TCP_FASTOPEN_KEY, TCP_FASTOPEN_NO_COOKIE from Linux 4.15. 2018-02-06 00:42:22 +00:00
hppa Fix ulps for pow on hppa. 2018-02-17 13:46:50 -05:00
i386 Fix i386 fenv_private.h float128 for 32-bit --with-fpmath=sse (bug 22902). 2018-02-28 21:55:51 +00:00
ia64 Remove mplog and mpexp 2018-02-15 12:41:05 +00:00
ieee754 Mechanically remove _IO_ name aliases for types and constants. 2018-02-21 14:11:05 -05:00
init_array sysdeps/init_array: Add PREINIT_FUNCTION to crti.S 2018-01-29 10:22:26 -08:00
m68k Remove mplog and mpexp 2018-02-15 12:41:05 +00:00
mach Add missing start-of-file descriptive comment. 2018-03-06 09:21:04 +01:00
microblaze Move LDBL_CLASSIFY_COMPAT to its own header. 2018-02-01 21:01:00 +00:00
mips Move LDBL_CLASSIFY_COMPAT to its own header. 2018-02-01 21:01:00 +00:00
nios2 Move LDBL_CLASSIFY_COMPAT to its own header. 2018-02-01 21:01:00 +00:00
nptl Refactor Linux ARCH_FORK implementation 2018-03-07 17:39:40 -03:00
posix Add missing start-of-file descriptive comment. 2018-03-06 09:21:04 +01:00
powerpc powerpc: Fix TLE build for SPE (BZ #22926) 2018-03-07 17:39:44 -03:00
pthread hurd: fix timer_routines.c build 2018-02-27 01:15:39 +01:00
riscv RISC-V: fmax/fmin: Handle signalling NaNs correctly. 2018-02-22 14:31:54 -05:00
s390 Fix s390 -Os iconv build. 2018-03-05 21:46:55 +00:00
sh Update SH libm-tests-ulps 2018-02-14 14:03:40 -02:00
sparc Update sparc ulps 2018-02-22 16:44:58 -03:00
tile Unify and simplify bits/byteswap.h, bits/byteswap-16.h headers (bug 14508, bug 15512, bug 17082, bug 20530). 2018-02-06 21:55:08 +00:00
unix powerpc: Fix TLE build for SPE (BZ #22926) 2018-03-07 17:39:44 -03:00
wordsize-32 Use libc_hidden_* for strtoumax (bug 15105). 2018-02-28 14:16:21 +00:00
wordsize-64 Use libc_hidden_* for strtoumax (bug 15105). 2018-02-28 14:16:21 +00:00
x86 Unify and simplify bits/byteswap.h, bits/byteswap-16.h headers (bug 14508, bug 15512, bug 17082, bug 20530). 2018-02-06 21:55:08 +00:00
x86_64 Remove mplog and mpexp 2018-02-15 12:41:05 +00:00