Add ia64-*-aix* configuration.
authorTimothy Wall <twall@alum.mit.edu>
Thu, 22 Feb 2001 17:24:33 +0000 (17:24 +0000)
committerTimothy Wall <twall@alum.mit.edu>
Thu, 22 Feb 2001 17:24:33 +0000 (17:24 +0000)
ld/ChangeLog
ld/Makefile.am
ld/Makefile.in
ld/configure.host
ld/configure.tgt
ld/emulparams/elf64_aix.sh [new file with mode: 0644]
ld/testsuite/ld-bootstrap/bootstrap.exp

index 19e5b08..9a61a86 100644 (file)
@@ -1,3 +1,14 @@
+2001-02-22  Timothy Wall  <twall@cygnus.com>
+
+       * configure.host: Add configuration for ia64-*-aix*.
+       * Makefile.am (ALL_64_EMULATIONS): Add emulation for ia64-*-aix*.
+       Add dependencies for eelf64_aix.c.
+       * Makefile.in: Regenerate.
+       * configure.tgt: Add ia64-*-aix* mapping.
+       * emulparams/elf64_aix.sh: Add settings for elf64 on aix5.
+       * testsuite/ld-bootstrap/boostrap.exp: Exclude ia64 flavor from
+       AIX-specific test. 
+       
 2001-02-20  H.J. Lu  <hjl@gnu.org>
 
        * ldfile.c (ldfile_open_file): Set entry->search_dirs_flag to
index a66cefb..c7b8005 100644 (file)
@@ -242,6 +242,7 @@ ALL_EMULATIONS = \
        ez8002.o
 
 ALL_64_EMULATIONS = \
+       eelf64_aix.o \
        eelf64_ia64.o \
        eelf_x86_64.o \
        eelf64_s390.o \
@@ -486,6 +487,9 @@ eelf64alpha.c: $(srcdir)/emulparams/elf64alpha.sh \
 eelf64hppa.c: $(srcdir)/emulparams/elf64hppa.sh \
   $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
        ${GENSCRIPTS} elf64hppa "$(tdir_elf64hppa)"
+eelf64_aix.c: $(srcdir)/emulparams/elf64_aix.sh \
+  $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+       ${GENSCRIPTS} elf64_aix "$(tdir_elf64_aix)"
 eelf64_ia64.c: $(srcdir)/emulparams/elf64_ia64.sh \
   $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
        ${GENSCRIPTS} elf64_ia64 "$(tdir_elf64_ia64)"
index 2d25ac9..15eebe7 100644 (file)
@@ -351,6 +351,7 @@ ALL_EMULATIONS = \
 
 
 ALL_64_EMULATIONS = \
+       eelf64_aix.o \
        eelf64_ia64.o \
        eelf_x86_64.o \
        eelf64_s390.o \
@@ -1200,6 +1201,9 @@ eelf64alpha.c: $(srcdir)/emulparams/elf64alpha.sh \
 eelf64hppa.c: $(srcdir)/emulparams/elf64hppa.sh \
   $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
        ${GENSCRIPTS} elf64hppa "$(tdir_elf64hppa)"
+eelf64_aix.c: $(srcdir)/emulparams/elf64_aix.sh \
+  $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+       ${GENSCRIPTS} elf64_aix "$(tdir_elf64_aix)"
 eelf64_ia64.c: $(srcdir)/emulparams/elf64_ia64.sh \
   $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
        ${GENSCRIPTS} elf64_ia64 "$(tdir_elf64_ia64)"
index 25534a7..d8d9afa 100644 (file)
@@ -115,6 +115,12 @@ ia64-*-linux-gnu*)
   HOSTING_LIBS='`if [ -f ../gcc/libgcc.a ] ; then echo ../gcc/libgcc.a ; else ${CC} -print-libgcc-file-name; fi` -L`dirname \`${CC} --print-file-name=libc.so\`` -lc `if [ -f ../gcc/libgcc.a ] ; then echo ../gcc/libgcc.a ; else ${CC} -print-libgcc-file-name; fi` `if [ -f ../gcc/crtend.o ]; then echo ../gcc/crtend.o; else ${CC} --print-file-name=crtend.o; fi` `${CC} --print-file-name=crtn.o`'
   ;;
 
+ia64-*-aix*)
+  HOSTING_CRT0='-dynamic-linker `egrep "libc.so" \`${CC} --print-file-name=specs\` | sed -e "s,.*-dynamic-linker[      ][      ]*\(.*/libc.so..\).*,\1,"` `${CC} --print-file-name=crt1.o` `${CC} --print-file-name=crti.o` `if [ -f ../gcc/crtbegin.o ]; then echo ../gcc/crtbegin.o; else ${CC} --print-file-name=crtbegin.o; fi`'
+  HOSTING_LIBS='`if [ -f ../gcc/libgcc.a ] ; then echo ../gcc/libgcc.a ; else ${CC} -print-libgcc-file-name; fi` -L`dirname \`${CC} --print-file-name=libc.so\`` -lc `if [ -f ../gcc/libgcc.a ] ; then echo ../gcc/libgcc.a ; else ${CC} -print-libgcc-file-name; fi` `if [ -f ../gcc/crtend.o ]; then echo ../gcc/crtend.o; else ${CC} --print-file-name=crtend.o; fi` `${CC} --print-file-name=crtn.o`'
+  NATIVE_LIB_DIRS=/usr/lib/ia64l64
+  ;;
+
 mips*-dec-bsd*)
   HOSTING_CRT0=/usr/lib/crt0.o
   ;;
index 33d1762..52f5faf 100644 (file)
@@ -99,6 +99,7 @@ i960-*-elf*)          targ_emul=elf32_i960 ;;
 ia64-*-elf*)           targ_emul=elf64_ia64 ;;
 ia64-*-freebsd*)       targ_emul=elf64_ia64 ;;
 ia64-*-linux*)         targ_emul=elf64_ia64 ;;
+ia64-*-aix*)           targ_emul=elf64_aix ;;
 m32r-*-*)              targ_emul=m32relf ;;
 m68hc11-*-*|m6811-*-*) targ_emul=m68hc11elf 
                        targ_extra_emuls="m68hc11elfb m68hc12elf m68hc12elfb" ;;
diff --git a/ld/emulparams/elf64_aix.sh b/ld/emulparams/elf64_aix.sh
new file mode 100644 (file)
index 0000000..8376df2
--- /dev/null
@@ -0,0 +1,17 @@
+# See genscripts.sh and ../scripttempl/elf.sc for the meaning of these.
+SCRIPT_NAME=elf
+ELFSIZE=64
+TEMPLATE_NAME=elf32
+OUTPUT_FORMAT="elf64-ia64-aix-little"
+ARCH=ia64
+MACHINE=
+MAXPAGESIZE=0x1000
+TEXT_START_ADDR="0x100000000"
+DATA_ADDR="0x200000000 + (. & (${MAXPAGESIZE} - 1))"
+GENERATE_SHLIB_SCRIPT=yes
+NOP=0x00300000010070000002000001000400  # a bundle full of nops
+#OTHER_GOT_SYMBOLS='. = ALIGN (8); PROVIDE (__gp = . + 0x200000);'
+OTHER_GOT_SECTIONS='.IA_64.pltoff : { *(.IA_64.pltoff) }'
+OTHER_PLT_RELOC_SECTIONS='.rela.IA_64.pltoff : { *(.rela.IA_64.pltoff) }'
+OTHER_READONLY_SECTIONS='.opd : { *(.opd) }'
+#LIB_PATH=/usr/lib/ia64l64:/usr/lib:/usr/local/lib
index c989167..2507943 100644 (file)
@@ -65,7 +65,8 @@ foreach flags {"" "strip" "--static" "--traditional-format" "--no-keep-memory"}
     # On AIX, you need to specify an import list when using --static.
     # You only want the import list when creating the final
     # executable.
-    if [istarget "*-*-aix*"] {
+    if { [istarget "*-*-aix*"] 
+         && ![istarget "ia64-*-aix*"]} {
        if {"$flags" == "--static"} {
            set flags "--static -bI:/lib/syscalls.exp"
        }