diff options
author | Chris Metcalf <cmetcalf@tilera.com> | 2013-05-24 14:02:31 -0400 |
---|---|---|
committer | Chris Metcalf <cmetcalf@tilera.com> | 2013-05-24 14:02:31 -0400 |
commit | 86bd05fbc8b3a635148f6a7d8b4fb89c9a524e58 (patch) | |
tree | 27f5694a5169d2e4bbb9437f3f70b90debbf0600 /ports/sysdeps/tile/crti.S | |
parent | e8bdba36c5fdfdb7e85af2b7ed80ea9013794180 (diff) |
tile: improve detection for missing -mcmodel=large support
The existing test avoided passing -mcmodel=large if the compiler didn't
support it. However, we need to test not just the compiler support, but
also the toolchain (as and ld) support, so make the test more complete.
In addition, we have to avoid using the hwN_plt() assembly operators if
that support is missing, so guard the uses with #ifdef NO_PLT_PCREL.
This allows us to properly build glibc with the current community
binutils, which doesn't yet have the PC-relative PLT operator support.
The -mcmodel=large support is in gcc 4.8, but the toolchain support
won't be present in the community until binutils 2.24.
Diffstat (limited to 'ports/sysdeps/tile/crti.S')
-rw-r--r-- | ports/sysdeps/tile/crti.S | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/ports/sysdeps/tile/crti.S b/ports/sysdeps/tile/crti.S index 9046010dc1..7e8e559b91 100644 --- a/ports/sysdeps/tile/crti.S +++ b/ports/sysdeps/tile/crti.S @@ -95,7 +95,7 @@ _init: LD_PTR r0, r0 BEQZ r0, .Lno_weak_fn jalr r0 -#elif defined(__tilegx__) +#elif defined(__tilegx__) && !defined(NO_PLT_PCREL) /* Since we are calling from the start of the object to the PLT, call by loading the full address into a register. */ lnk r2 |