diff options
-rw-r--r-- | ld/ChangeLog | 11 | ||||
-rw-r--r-- | ld/Makefile.am | 4 | ||||
-rw-r--r-- | ld/Makefile.in | 4 | ||||
-rw-r--r-- | ld/configure.host | 6 | ||||
-rw-r--r-- | ld/configure.tgt | 1 | ||||
-rw-r--r-- | ld/emulparams/elf64_aix.sh | 17 | ||||
-rw-r--r-- | ld/testsuite/ld-bootstrap/bootstrap.exp | 3 |
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" } |