This is the mail archive of the
gcc-cvs@gcc.gnu.org
mailing list for the GCC project.
r249720 - in /trunk/gcc: ChangeLog config/s390/...
- From: krebbel at gcc dot gnu dot org
- To: gcc-cvs at gcc dot gnu dot org
- Date: Wed, 28 Jun 2017 07:03:35 -0000
- Subject: r249720 - in /trunk/gcc: ChangeLog config/s390/...
Author: krebbel
Date: Wed Jun 28 07:03:35 2017
New Revision: 249720
URL: https://gcc.gnu.org/viewcvs?rev=249720&root=gcc&view=rev
Log:
S/390: New option -mpic-data-is-text-relative
For hotpatching it might be required to introduce new .text parts
while keep using the existing .data/.bss sections. To make this work
the backend needs to be prevented from using relative addressing
between code and data.
This only works when already building PIC
since the addressing will then be handling via GOT.
gcc/testsuite/ChangeLog:
2017-06-28 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* gcc.target/s390/nodatarel-1.c: New test.
gcc/ChangeLog:
2017-06-28 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* config/s390/predicates.md: Use s390_rel_address_ok_p.
* config/s390/s390-protos.h: Add prototype of
s390_rel_address_ok_p.
* config/s390/s390.c (s390_got_symbol): New function.
(s390_rel_address_ok_p): New function.
(legitimize_pic_address): Use s390_rel_address_ok_p.
(s390_load_got): Use s390_got_symbol.
(s390_option_override): Issue error if
-mno-pic-data-is-text-relative is used without -fpic/-fPIC.
* config/s390/s390.h (TARGET_DEFAULT_PIC_DATA_IS_TEXT_RELATIVE):
New macro.
* config/s390/s390.opt: New option mpic-data-is-text-relative.
Added:
trunk/gcc/testsuite/gcc.target/s390/nodatarel-1.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/s390/predicates.md
trunk/gcc/config/s390/s390-protos.h
trunk/gcc/config/s390/s390.c
trunk/gcc/config/s390/s390.h
trunk/gcc/config/s390/s390.opt
trunk/gcc/testsuite/ChangeLog