diff options
author | David Edelsohn <dje@gcc.gnu.org> | 2012-11-14 11:41:21 -0500 |
---|---|---|
committer | David Edelsohn <dje@gcc.gnu.org> | 2012-11-14 11:41:21 -0500 |
commit | 9e81cc8bdec038bfed40030f487580437d2d6f66 (patch) | |
tree | c71692baa6ca664efa39787ea6398cc4fcbb3ed8 /gcc/configure | |
parent | 4a3d0b10a2b64ff78a6448240afe89c2b8d68076 (diff) | |
download | gcc-9e81cc8bdec038bfed40030f487580437d2d6f66.tar.gz |
configure.ac (HAVE_LD_LARGE_TOC): Add AIX test.
* configure.ac (HAVE_LD_LARGE_TOC): Add AIX test.
* configure: Regenerated.
* config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Warn if
other toc options used with cmodel. Disable TARGET_NO_FP_IN_TOC
and TARGET_NO_SUM_IN_TOC if not CMODEL_SMALL. CMODEL_MEDIUM means
CMODEL_LARGE on AIX.
(ASM_SPEC): -mvsx implies -mpwr6. Add -many.
(ASM_DEFAULT_SPEC): Use -mpwr4.
(TARGET_CMODEL): Define.
(SET_CMODEL): Define.
* config/rs6000/rs6000.md (largetoc_high_aix<mode>): New.
(largetoc_high_plus_aix<mode>): New.
(largetoc_low<mode>): Change to mode iterator. Test TARGET_TOC
instead of TARGET_ELF.
(tocref): Remove TARGET_ELF test.
* config/rs6000/rs6000.c (output_toc): Use [TE] for large TOC
symbols on AIX.
* config/rs6000/aix64.opt (mcmodel): New.
From-SVN: r193502
Diffstat (limited to 'gcc/configure')
-rwxr-xr-x | gcc/configure | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/gcc/configure b/gcc/configure index 673b9087a1d..3f1ca7411c0 100755 --- a/gcc/configure +++ b/gcc/configure @@ -26413,6 +26413,42 @@ $as_echo "#define HAVE_LD_LARGE_TOC 1" >>confdefs.h ;; esac +case "$target" in + *-*-aix*) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking linker large toc support" >&5 +$as_echo_n "checking linker large toc support... " >&6; } +if test "${gcc_cv_ld_large_toc+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + gcc_cv_ld_large_toc=no + if test x$gcc_cv_as != x ; then + cat > conftest.s <<EOF + .toc +LC..1: + .tc a[TC],a[RW] + .extern a[RW] + .csect .text[PR] +.largetoctest: + addis 9,LC..1@u(2) + ld 3,LC..1@l(9) +EOF + if $gcc_cv_as -a64 -o conftest.o conftest.s > /dev/null 2>&1; then + gcc_cv_ld_large_toc=yes + fi + rm -f conftest conftest.o conftest.s + fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_ld_large_toc" >&5 +$as_echo "$gcc_cv_ld_large_toc" >&6; } + if test x"$gcc_cv_ld_large_toc" = xyes; then + +$as_echo "#define HAVE_LD_LARGE_TOC 1" >>confdefs.h + + fi + ;; +esac + { $as_echo "$as_me:${as_lineno-$LINENO}: checking linker --build-id support" >&5 $as_echo_n "checking linker --build-id support... " >&6; } if test "${gcc_cv_ld_buildid+set}" = set; then : |