glibc/sysdeps/unix/sysv/linux/s390/s390-64
Ilya Leoshkevich 71c01af52f S390: Implement 64-bit __fentry__
* Since __fentry__ is almost the same as _mcount, reuse the code by
  #including it twice with different #defines around.
* Remove LA usages - they are needed in 31-bit mode to clear the top
  bit, but in 64-bit they appear to do nothing.
* Add CFI rule for the nonstandard return register. This rule applies
  to the current function (binutils generates a new CIE - see
  gas/dw2gencfi.c:select_cie_for_fde()), so it is not necessary to put
  __fentry__ into a new file.
* Fix CFI offset for %r14.
* Add CFI rule for %r0.
* Fix unwound value of %r15 being off by 244 bytes.
* Unwinding in __fentry__@plt does not work, no plan to fix it - it
  would require asking linker to generate CFI for return address in
  %r0.  From functional perspective keeping it broken is fine, since
  the callee did not have a chance to do anything yet.  From
  convenience perspective it would be possible to enhance GDB in the
  future to treat __fentry__@plt in a special way.
* Fix whitespace.
* Fix offsets in comments, which were copied from 32-bit code.
* 32-bit version will not be implemented, since it's not compatible
  with the corresponding PLT stubs: they assume %r12 points to GOT,
  which is not the case for gcc-emitted __fentry__ stub, which runs
  before the prolog.

This patch adds the runtime support in glibc for the -mfentry
gcc feature introduced in [1] and [2].

[1] https://gcc.gnu.org/ml/gcc-patches/2018-07/msg00784.html
[2] https://gcc.gnu.org/ml/gcc-patches/2018-07/msg00912.html

ChangeLog:

	* sysdeps/s390/s390-64/Versions (__fentry__): Add.
	* sysdeps/s390/s390-64/s390x-mcount.S: Move the common
	code to s390x-mcount.h and #include it.
	* sysdeps/s390/s390-64/s390x-mcount.h: New file.
	* sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
	(__fentry__): Add.
2018-08-10 09:07:44 +02:00
..
____longjmp_chk.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
__makecontext_ret.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
c++-types.data S390: Consolidate nptl/ subdirectories under linux/... 2014-06-26 09:34:34 -07:00
clone.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
configure LIBC_SLIBDIR_RTLDDIR: substitute arguments in single quotes 2018-01-25 17:20:28 +01:00
configure.ac Refactor handling of /lib64 etc. cases, move out of sysdeps/gnu/configure.ac. 2014-07-17 14:35:48 +00:00
dl-cache.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
getcontext.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
Implies
jmp_buf-macros.h Add jmp_buf-macros.h 2017-11-09 05:10:03 -08:00
kernel_stat.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
ld.abilist Ignore absolute symbols in ABI tests. 2018-05-04 15:46:32 +00:00
libBrokenLocale.abilist Ignore absolute symbols in ABI tests. 2018-05-04 15:46:32 +00:00
libc.abilist S390: Implement 64-bit __fentry__ 2018-08-10 09:07:44 +02:00
libcrypt.abilist Ignore absolute symbols in ABI tests. 2018-05-04 15:46:32 +00:00
libdl.abilist Ignore absolute symbols in ABI tests. 2018-05-04 15:46:32 +00:00
libm.abilist Add narrowing divide functions. 2018-05-17 00:40:52 +00:00
libnsl.abilist Ignore absolute symbols in ABI tests. 2018-05-04 15:46:32 +00:00
libpthread.abilist nptl: Add abilist symbols for C11 threads 2018-07-24 14:07:18 -03:00
libresolv.abilist Ignore absolute symbols in ABI tests. 2018-05-04 15:46:32 +00:00
librt.abilist Ignore absolute symbols in ABI tests. 2018-05-04 15:46:32 +00:00
libthread_db.abilist Ignore absolute symbols in ABI tests. 2018-05-04 15:46:32 +00:00
libutil.abilist Ignore absolute symbols in ABI tests. 2018-05-04 15:46:32 +00:00
makecontext.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
Makefile S/390: Fix uc_link == NULL handling for makecontext 2012-07-19 15:58:17 +02:00
profil-counter.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
register-dump.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
setcontext.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
shlib-versions Remove shlib-versions entries redundant with DEFAULT entries. 2014-09-26 17:34:22 +00:00
sigprocmask.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
swapcontext.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
syscall.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
sysdep.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
sysdep.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
timer_create.c Move remaining S390 code out of nptl/. 2014-06-26 09:31:11 -07:00
timer_delete.c Move remaining S390 code out of nptl/. 2014-06-26 09:31:11 -07:00
timer_getoverr.c Move remaining S390 code out of nptl/. 2014-06-26 09:31:11 -07:00
timer_gettime.c Move remaining S390 code out of nptl/. 2014-06-26 09:31:11 -07:00
timer_settime.c Move remaining S390 code out of nptl/. 2014-06-26 09:31:11 -07:00
Versions Revert {send,sendm,recv,recvm}msg conformance changes 2016-06-10 11:58:16 -03:00
vfork.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00