summaryrefslogtreecommitdiff
path: root/gcc/configure
diff options
context:
space:
mode:
authorDavid Edelsohn <dje@gcc.gnu.org>2012-11-14 11:41:21 -0500
committerDavid Edelsohn <dje@gcc.gnu.org>2012-11-14 11:41:21 -0500
commit9e81cc8bdec038bfed40030f487580437d2d6f66 (patch)
treec71692baa6ca664efa39787ea6398cc4fcbb3ed8 /gcc/configure
parent4a3d0b10a2b64ff78a6448240afe89c2b8d68076 (diff)
downloadgcc-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-xgcc/configure36
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 :