[AArch64] Fix PR target/63874
authorRamana Radhakrishnan <ramana.radhakrishnan@arm.com>
Mon, 4 Jul 2016 09:06:02 +0000 (09:06 +0000)
committerRamana Radhakrishnan <ramana@gcc.gnu.org>
Mon, 4 Jul 2016 09:06:02 +0000 (09:06 +0000)
commit15f6e0dac34a243341fba80f8ebdaeec78d766fe
treee92d0a15a4459d3e662684de30d415d75d78ffa8
parentc61465bda5ed50a1bf664211515436f884e6fa66
[AArch64] Fix PR target/63874

     In this PR we have a situation where we aren't really detecting
weak references vs weak definitions. If one has a weak definition that
binds locally there's no reason not to put out PC relative
relocations.

However if you have a genuine weak reference that is known not to bind
locally it makes very little sense to put out an entry into the
literal pool which doesn't always work with DSOs and shared objects.

Tested aarch64-none-linux-gnu bootstrap and regression test with no
regressions

2016-07-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

PR target/63874
* config/aarch64/aarch64.c (aarch64_classify_symbol): Fix
typo in comment.  Only force to memory if it is a weak
external reference.

2016-07-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

PR target/63874
* gcc.target/aarch64/pr63874.c: New test.

From-SVN: r237957
gcc/ChangeLog
gcc/config/aarch64/aarch64.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/aarch64/pr63874.c [new file with mode: 0644]