aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorTimothy Wall <twall@alum.mit.edu>2001-02-22 17:24:33 +0000
committerTimothy Wall <twall@alum.mit.edu>2001-02-22 17:24:33 +0000
commit41c4999810228d4795d0855426bfa4d24bb31230 (patch)
treebce42484c1c4e78980d4d45abc966cfb174846cd /ld
parent7463c317ad788d1e29737ecaf5b71f466fa88476 (diff)
downloadfsf-binutils-gdb-41c4999810228d4795d0855426bfa4d24bb31230.zip
fsf-binutils-gdb-41c4999810228d4795d0855426bfa4d24bb31230.tar.gz
fsf-binutils-gdb-41c4999810228d4795d0855426bfa4d24bb31230.tar.bz2
Add ia64-*-aix* configuration.
Diffstat (limited to 'ld')
-rw-r--r--ld/ChangeLog11
-rw-r--r--ld/Makefile.am4
-rw-r--r--ld/Makefile.in4
-rw-r--r--ld/configure.host6
-rw-r--r--ld/configure.tgt1
-rw-r--r--ld/emulparams/elf64_aix.sh17
-rw-r--r--ld/testsuite/ld-bootstrap/bootstrap.exp3
7 files changed, 45 insertions, 1 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 19e5b08..9a61a86 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -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
diff --git a/ld/Makefile.am b/ld/Makefile.am
index a66cefb..c7b8005 100644
--- a/ld/Makefile.am
+++ b/ld/Makefile.am
@@ -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)"
diff --git a/ld/Makefile.in b/ld/Makefile.in
index 2d25ac9..15eebe7 100644
--- a/ld/Makefile.in
+++ b/ld/Makefile.in
@@ -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)"
diff --git a/ld/configure.host b/ld/configure.host
index 25534a7..d8d9afa 100644
--- a/ld/configure.host
+++ b/ld/configure.host
@@ -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
;;
diff --git a/ld/configure.tgt b/ld/configure.tgt
index 33d1762..52f5faf 100644
--- a/ld/configure.tgt
+++ b/ld/configure.tgt
@@ -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
index 0000000..8376df2
--- /dev/null
+++ b/ld/emulparams/elf64_aix.sh
@@ -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
diff --git a/ld/testsuite/ld-bootstrap/bootstrap.exp b/ld/testsuite/ld-bootstrap/bootstrap.exp
index c989167..2507943 100644
--- a/ld/testsuite/ld-bootstrap/bootstrap.exp
+++ b/ld/testsuite/ld-bootstrap/bootstrap.exp
@@ -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"
}