This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
PATCH ld for AIX5 on IA-64
- To: binutils at sources dot redhat dot com
- Subject: PATCH ld for AIX5 on IA-64
- From: Timothy Wall <twall at oculustech dot com>
- Date: Tue, 20 Feb 2001 17:30:03 -0500
- Organization: Oculus Technologies
- Reply-To: twall at oculustech dot com
ld/Makefile.am: Add AIX emulation.
ld/Makefile.in: Regenerate.
ld/configure.host: Add ia64-*-aix* configuration.
ld/configure.tgt: Ditto.
ld/emulparams/elf64_aix.sh: New. Settings for AIX output files.
ld/testsuite/ld-bootstrap/bootstrap.exp: Exclude AIX/IA-64 from usual
AIX tests.
Index: ld/Makefile.am
===================================================================
RCS file: /cvs/src/src/ld/Makefile.am,v
retrieving revision 1.53
diff -d -c -p -b -w -r1.53 Makefile.am
*** Makefile.am 2001/02/18 23:33:08 1.53
--- Makefile.am 2001/02/20 21:53:53
*************** ALL_EMULATIONS = \
*** 242,247 ****
--- 242,248 ----
ez8002.o
ALL_64_EMULATIONS = \
+ eelf64_aix.o \
eelf64_ia64.o \
eelf_x86_64.o \
eelf64_s390.o \
*************** eelf64alpha.c: $(srcdir)/emulparams/elf6
*** 486,491 ****
--- 487,495 ----
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: ld/Makefile.in
===================================================================
RCS file: /cvs/src/src/ld/Makefile.in,v
retrieving revision 1.58
diff -d -c -p -b -w -r1.58 Makefile.in
*** Makefile.in 2001/02/18 23:33:08 1.58
--- Makefile.in 2001/02/20 21:53:54
*************** ALL_EMULATIONS = \
*** 351,356 ****
--- 351,357 ----
ALL_64_EMULATIONS = \
+ eelf64_aix.o \
eelf64_ia64.o \
eelf_x86_64.o \
eelf64_s390.o \
*************** eelf64alpha.c: $(srcdir)/emulparams/elf6
*** 1200,1205 ****
--- 1201,1209 ----
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: ld/configure.host
===================================================================
RCS file: /cvs/src/src/ld/configure.host,v
retrieving revision 1.13
diff -d -c -p -b -w -r1.13 configure.host
*** configure.host 2001/02/18 02:17:24 1.13
--- configure.host 2001/02/20 21:53:55
*************** ia64-*-linux-gnu*)
*** 115,120 ****
--- 115,126 ----
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: ld/configure.tgt
===================================================================
RCS file: /cvs/src/src/ld/configure.tgt,v
retrieving revision 1.48
diff -d -c -p -b -w -r1.48 configure.tgt
*** configure.tgt 2001/02/19 06:51:51 1.48
--- configure.tgt 2001/02/20 21:53:55
*************** i960-*-elf*) targ_emul=elf32_i960 ;;
*** 99,104 ****
--- 99,105 ----
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" ;;
Index: ld/emulparams/elf64_aix.sh
===================================================================
RCS file: elf64_aix.sh
diff -N elf64_aix.sh
*** /dev/null Tue May 5 13:32:27 1998
--- elf64_aix.sh Tue Feb 20 13:53:55 2001
***************
*** 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: ld/testsuite/ld-bootstrap/bootstrap.exp
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-bootstrap/bootstrap.exp,v
retrieving revision 1.3
diff -d -c -p -b -w -r1.3 bootstrap.exp
*** bootstrap.exp 2001/02/15 01:17:04 1.3
--- bootstrap.exp 2001/02/20 21:53:55
*************** foreach flags {"" "strip" "--static" "--
*** 65,71 ****
# 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 {"$flags" == "--static"} {
set flags "--static -bI:/lib/syscalls.exp"
}
--- 65,72 ----
# 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*"]
! && ![istarget "ia64-*-aix*"]} {
if {"$flags" == "--static"} {
set flags "--static -bI:/lib/syscalls.exp"
}