This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
remove ia64-aix support
- From: Richard Henderson <rth at redhat dot com>
- To: binutils at gcc dot gnu dot org
- Date: Wed, 16 Jul 2003 15:50:06 -0700
- Subject: remove ia64-aix support
This OS never shipped, and has been dead for at least 2 years.
It removes some moderately gross stuff from elfxx-ia64.c.
r~
* config.bfd, configure.host, configure.in: Remove ia64-aix support.
* elfxx-ia64.c, targets.c: Likewise.
Index: config.bfd
===================================================================
RCS file: /cvs/src/src/bfd/config.bfd,v
retrieving revision 1.141
diff -c -p -d -r1.141 config.bfd
*** config.bfd 12 Jul 2003 11:16:46 -0000 1.141
--- config.bfd 16 Jul 2003 22:39:43 -0000
*************** case "${targ}" in
*** 117,126 ****
alpha*-*-*)
targ_defvec=ecoffalpha_little_vec
;;
- ia64*-*-aix*)
- targ_defvec=bfd_elf64_ia64_aix_little_vec
- targ_selvecs="bfd_elf64_ia64_aix_big_vec bfd_efi_app_ia64_vec"
- ;;
ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-gnu* | ia64*-*-elf*)
targ_defvec=bfd_elf64_ia64_little_vec
targ_selvecs="bfd_elf64_ia64_big_vec bfd_efi_app_ia64_vec"
--- 117,122 ----
Index: configure.host
===================================================================
RCS file: /cvs/src/src/bfd/configure.host,v
retrieving revision 1.11
diff -c -p -d -r1.11 configure.host
*** configure.host 16 May 2003 16:30:23 -0000 1.11
--- configure.host 16 Jul 2003 22:39:43 -0000
*************** hppa*-*-bsd*) HDEFINES=-DHOST_HPPABSD ;
*** 31,37 ****
hppa*-*-osf*) HDEFINES=-DHOST_HPPAOSF ;;
ia64-*-linux*) host64=true; HOST_64BIT_TYPE=long ;;
- ia64-*-aix*) host64=true; HOST_64BIT_TYPE=long ;;
ia64-*-hpux*) host64=true
HOST_64BIT_TYPE="long long";
HOST_U_64BIT_TYPE="unsigned long long";
--- 31,36 ----
Index: configure.in
===================================================================
RCS file: /cvs/src/src/bfd/configure.in,v
retrieving revision 1.133
diff -c -p -d -r1.133 configure.in
*** configure.in 10 Jul 2003 04:44:37 -0000 1.133
--- configure.in 16 Jul 2003 22:39:43 -0000
*************** do
*** 650,657 ****
bfd_elf64_bigmips_vec) tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
bfd_elf64_hppa_linux_vec) tb="$tb elf64-hppa.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_hppa_vec) tb="$tb elf64-hppa.lo elf64.lo $elf"; target_size=64 ;;
- bfd_elf64_ia64_aix_big_vec) tb="$tb elf64-ia64.lo elf64.lo $elf"; target_size=64 ;;
- bfd_elf64_ia64_aix_little_vec) tb="$tb elf64-ia64.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_ia64_big_vec) tb="$tb elf64-ia64.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_ia64_hpux_big_vec) tb="$tb elf64-ia64.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_ia64_little_vec) tb="$tb elf64-ia64.lo elf64.lo $elf"; target_size=64 ;;
--- 650,655 ----
Index: elfxx-ia64.c
===================================================================
RCS file: /cvs/src/src/bfd/elfxx-ia64.c,v
retrieving revision 1.89
diff -c -p -d -r1.89 elfxx-ia64.c
*** elfxx-ia64.c 16 Jul 2003 21:47:36 -0000 1.89
--- elfxx-ia64.c 16 Jul 2003 22:39:44 -0000
*************** static bfd_boolean elfNN_ia64_add_symbol
*** 193,206 ****
PARAMS ((bfd *abfd, struct bfd_link_info *info, const Elf_Internal_Sym *sym,
const char **namep, flagword *flagsp, asection **secp,
bfd_vma *valp));
- static bfd_boolean elfNN_ia64_aix_vec
- PARAMS ((const bfd_target *vec));
- static bfd_boolean elfNN_ia64_aix_add_symbol_hook
- PARAMS ((bfd *abfd, struct bfd_link_info *info, const Elf_Internal_Sym *sym,
- const char **namep, flagword *flagsp, asection **secp,
- bfd_vma *valp));
- static bfd_boolean elfNN_ia64_aix_link_add_symbols
- PARAMS ((bfd *abfd, struct bfd_link_info *info));
static int elfNN_ia64_additional_program_headers
PARAMS ((bfd *abfd));
static bfd_boolean elfNN_ia64_modify_segment_map
--- 193,198 ----
*************** static const bfd_byte plt_full_entry[PLT
*** 657,665 ****
};
#define ELF_DYNAMIC_INTERPRETER "/usr/lib/ld.so.1"
- #define AIX_DYNAMIC_INTERPRETER "/usr/lib/ia64l64/libc.so.1"
- #define DYNAMIC_INTERPRETER(abfd) \
- (elfNN_ia64_aix_vec (abfd->xvec) ? AIX_DYNAMIC_INTERPRETER : ELF_DYNAMIC_INTERPRETER)
static const bfd_byte oor_brl[16] =
{
--- 649,654 ----
*************** elfNN_ia64_add_symbol_hook (abfd, info,
*** 1367,1480 ****
return TRUE;
}
- static bfd_boolean
- elfNN_ia64_aix_vec (const bfd_target *vec)
- {
- extern const bfd_target bfd_elfNN_ia64_aix_little_vec;
- extern const bfd_target bfd_elfNN_ia64_aix_big_vec;
-
- return (/**/vec == & bfd_elfNN_ia64_aix_little_vec
- || vec == & bfd_elfNN_ia64_aix_big_vec);
- }
-
- /* Hook called by the linker routine which adds symbols from an object
- file. We use it to handle OS-specific symbols. */
-
- static bfd_boolean
- elfNN_ia64_aix_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp)
- bfd *abfd;
- struct bfd_link_info *info;
- const Elf_Internal_Sym *sym;
- const char **namep;
- flagword *flagsp;
- asection **secp;
- bfd_vma *valp;
- {
- if (strcmp (*namep, "__GLOB_DATA_PTR") == 0)
- {
- /* Define __GLOB_DATA_PTR when it is encountered. This is expected to
- be a linker-defined symbol by the Aix C runtime startup code. IBM sez
- no one else should use it b/c it is undocumented. */
- struct elf_link_hash_entry *h;
-
- h = elf_link_hash_lookup (elf_hash_table (info), *namep,
- FALSE, FALSE, FALSE);
- if (h == NULL)
- {
- struct elf_backend_data *bed;
- struct elfNN_ia64_link_hash_table *ia64_info;
- struct bfd_link_hash_entry *bh = NULL;
-
- bed = get_elf_backend_data (abfd);
- ia64_info = elfNN_ia64_hash_table (info);
-
- if (!(_bfd_generic_link_add_one_symbol
- (info, abfd, *namep, BSF_GLOBAL,
- bfd_get_section_by_name (abfd, ".bss"),
- bed->got_symbol_offset, (const char *) NULL, FALSE,
- bed->collect, &bh)))
- return FALSE;
-
- h = (struct elf_link_hash_entry *) bh;
- h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_REGULAR;
- h->type = STT_OBJECT;
-
- if (! _bfd_elf_link_record_dynamic_symbol (info, h))
- return FALSE;
- }
-
- return TRUE;
- }
- else if (sym->st_shndx == SHN_LOOS)
- {
- unsigned int i;
-
- /* SHN_AIX_SYSCALL: Treat this as any other symbol. The special symbol
- is only relevant when compiling code for extended system calls.
- Replace the "special" section with .text, if possible.
- Note that these symbols are always assumed to be in .text. */
- for (i = 1; i < elf_numsections (abfd); i++)
- {
- asection * sec = bfd_section_from_elf_index (abfd, i);
-
- if (sec && strcmp (sec->name, ".text") == 0)
- {
- *secp = sec;
- break;
- }
- }
-
- if (*secp == NULL)
- *secp = bfd_abs_section_ptr;
-
- *valp = sym->st_size;
-
- return TRUE;
- }
- else
- {
- return elfNN_ia64_add_symbol_hook (abfd, info, sym,
- namep, flagsp, secp, valp);
- }
- }
-
- bfd_boolean
- elfNN_ia64_aix_link_add_symbols (abfd, info)
- bfd *abfd;
- struct bfd_link_info *info;
- {
- /* Make sure dynamic sections are always created. */
- if (! elf_hash_table (info)->dynamic_sections_created
- && abfd->xvec == info->hash->creator)
- {
- if (! _bfd_elf_link_create_dynamic_sections (abfd, info))
- return FALSE;
- }
-
- /* Now do the standard call. */
- return bfd_elfNN_bfd_link_add_symbols (abfd, info);
- }
-
/* Return the number of additional phdrs we will need. */
static int
--- 1356,1361 ----
*************** elfNN_ia64_check_relocs (abfd, info, sec
*** 2301,2308 ****
if (h && ((!info->executable
&& (!info->symbolic || info->allow_shlib_undefined))
|| ! (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR)
! || h->root.type == bfd_link_hash_defweak
! || elfNN_ia64_aix_vec (abfd->xvec)))
maybe_dynamic = TRUE;
need_entry = 0;
--- 2182,2188 ----
if (h && ((!info->executable
&& (!info->symbolic || info->allow_shlib_undefined))
|| ! (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR)
! || h->root.type == bfd_link_hash_defweak))
maybe_dynamic = TRUE;
need_entry = 0;
*************** elfNN_ia64_check_relocs (abfd, info, sec
*** 2359,2365 ****
case R_IA64_FPTR32LSB:
case R_IA64_FPTR64MSB:
case R_IA64_FPTR64LSB:
! if (info->shared || h || elfNN_ia64_aix_vec (abfd->xvec))
need_entry = NEED_FPTR | NEED_DYNREL;
else
need_entry = NEED_FPTR;
--- 2239,2245 ----
case R_IA64_FPTR32LSB:
case R_IA64_FPTR64MSB:
case R_IA64_FPTR64LSB:
! if (info->shared || h)
need_entry = NEED_FPTR | NEED_DYNREL;
else
need_entry = NEED_FPTR;
*************** elfNN_ia64_check_relocs (abfd, info, sec
*** 2411,2420 ****
case R_IA64_DIR64MSB:
case R_IA64_DIR64LSB:
/* Shared objects will always need at least a REL relocation. */
! if (info->shared || maybe_dynamic
! || (elfNN_ia64_aix_vec (abfd->xvec)
! && (!h || strcmp (h->root.root.string,
! "__GLOB_DATA_PTR") != 0)))
need_entry = NEED_DYNREL;
dynrel_type = R_IA64_DIR64LSB;
break;
--- 2291,2297 ----
case R_IA64_DIR64MSB:
case R_IA64_DIR64LSB:
/* Shared objects will always need at least a REL relocation. */
! if (info->shared || maybe_dynamic)
need_entry = NEED_DYNREL;
dynrel_type = R_IA64_DIR64LSB;
break;
*************** elfNN_ia64_check_relocs (abfd, info, sec
*** 2488,2496 ****
/* FPTRs for shared libraries are allocated by the dynamic
linker. Make sure this local symbol will appear in the
dynamic symbol table. */
! if (!h && (info->shared
! /* AIX also needs one */
! || elfNN_ia64_aix_vec (abfd->xvec)))
{
if (! (_bfd_elfNN_link_record_local_dynamic_symbol
(info, abfd, (long) r_symndx)))
--- 2365,2371 ----
/* FPTRs for shared libraries are allocated by the dynamic
linker. Make sure this local symbol will appear in the
dynamic symbol table. */
! if (!h && info->shared)
{
if (! (_bfd_elfNN_link_record_local_dynamic_symbol
(info, abfd, (long) r_symndx)))
*************** allocate_global_data_got (dyn_i, data)
*** 2540,2549 ****
if ((dyn_i->want_got || dyn_i->want_gotx)
&& ! dyn_i->want_fptr
! && (elfNN_ia64_dynamic_symbol_p (dyn_i->h, x->info)
! || (elfNN_ia64_aix_vec (x->info->hash->creator)
! && (!dyn_i->h || strcmp (dyn_i->h->root.root.string,
! "__GLOB_DATA_PTR") != 0))))
{
dyn_i->got_offset = x->ofs;
x->ofs += 8;
--- 2415,2421 ----
if ((dyn_i->want_got || dyn_i->want_gotx)
&& ! dyn_i->want_fptr
! && elfNN_ia64_dynamic_symbol_p (dyn_i->h, x->info))
{
dyn_i->got_offset = x->ofs;
x->ofs += 8;
*************** allocate_global_fptr_got (dyn_i, data)
*** 2592,2599 ****
if (dyn_i->want_got
&& dyn_i->want_fptr
! && (elfNN_ia64_dynamic_symbol_p (dyn_i->h, x->info)
! || elfNN_ia64_aix_vec (x->info->hash->creator)))
{
dyn_i->got_offset = x->ofs;
x->ofs += 8;
--- 2464,2470 ----
if (dyn_i->want_got
&& dyn_i->want_fptr
! && elfNN_ia64_dynamic_symbol_p (dyn_i->h, x->info))
{
dyn_i->got_offset = x->ofs;
x->ofs += 8;
*************** allocate_local_got (dyn_i, data)
*** 2611,2618 ****
struct elfNN_ia64_allocate_data *x = (struct elfNN_ia64_allocate_data *)data;
if ((dyn_i->want_got || dyn_i->want_gotx)
! && ! (elfNN_ia64_dynamic_symbol_p (dyn_i->h, x->info)
! || elfNN_ia64_aix_vec (x->info->hash->creator)))
{
dyn_i->got_offset = x->ofs;
x->ofs += 8;
--- 2482,2488 ----
struct elfNN_ia64_allocate_data *x = (struct elfNN_ia64_allocate_data *)data;
if ((dyn_i->want_got || dyn_i->want_gotx)
! && !elfNN_ia64_dynamic_symbol_p (dyn_i->h, x->info))
{
dyn_i->got_offset = x->ofs;
x->ofs += 8;
*************** allocate_fptr (dyn_i, data)
*** 2658,2672 ****
|| h->root.type == bfd_link_hash_warning)
h = (struct elf_link_hash_entry *) h->root.u.i.link;
! if ((!x->info->executable
! && (!h
! || ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
! || h->root.type != bfd_link_hash_undefweak))
! /* AIX needs an FPTR in this case. */
! || (elfNN_ia64_aix_vec (x->info->hash->creator)
! && (!h
! || h->root.type == bfd_link_hash_defined
! || h->root.type == bfd_link_hash_defweak)))
{
if (h && h->dynindx == -1)
{
--- 2528,2537 ----
|| h->root.type == bfd_link_hash_warning)
h = (struct elf_link_hash_entry *) h->root.u.i.link;
! if (!x->info->executable
! && (!h
! || ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
! || h->root.type != bfd_link_hash_undefweak))
{
if (h && h->dynindx == -1)
{
*************** allocate_dynrel_entries (dyn_i, data)
*** 2789,2799 ****
bfd_boolean dynamic_symbol, shared, resolved_zero;
ia64_info = elfNN_ia64_hash_table (x->info);
! dynamic_symbol = elfNN_ia64_dynamic_symbol_p (dyn_i->h, x->info)
! || (elfNN_ia64_aix_vec (x->info->hash->creator)
! /* Don't allocate an entry for __GLOB_DATA_PTR */
! && (!dyn_i->h || strcmp (dyn_i->h->root.root.string,
! "__GLOB_DATA_PTR") != 0));
shared = x->info->shared;
resolved_zero = (dyn_i->h
&& ELF_ST_VISIBILITY (dyn_i->h->other)
--- 2654,2660 ----
bfd_boolean dynamic_symbol, shared, resolved_zero;
ia64_info = elfNN_ia64_hash_table (x->info);
! dynamic_symbol = elfNN_ia64_dynamic_symbol_p (dyn_i->h, x->info);
shared = x->info->shared;
resolved_zero = (dyn_i->h
&& ELF_ST_VISIBILITY (dyn_i->h->other)
*************** elfNN_ia64_size_dynamic_sections (output
*** 2939,2946 ****
{
sec = bfd_get_section_by_name (dynobj, ".interp");
BFD_ASSERT (sec != NULL);
! sec->contents = (bfd_byte *) DYNAMIC_INTERPRETER (output_bfd);
! sec->_raw_size = strlen (DYNAMIC_INTERPRETER (output_bfd)) + 1;
}
/* Allocate the GOT entries. */
--- 2800,2807 ----
{
sec = bfd_get_section_by_name (dynobj, ".interp");
BFD_ASSERT (sec != NULL);
! sec->contents = (bfd_byte *) ELF_DYNAMIC_INTERPRETER;
! sec->_raw_size = strlen (ELF_DYNAMIC_INTERPRETER) + 1;
}
/* Allocate the GOT entries. */
*************** set_got_entry (abfd, info, dyn_i, dynind
*** 3482,3488 ****
|| dyn_i->h->root.type != bfd_link_hash_undefweak)
&& dyn_r_type != R_IA64_DTPREL64LSB)
|| elfNN_ia64_dynamic_symbol_p (dyn_i->h, info)
- || elfNN_ia64_aix_vec (abfd->xvec)
|| (dynindx != -1 && dyn_r_type == R_IA64_FPTR64LSB))
&& (!dyn_i->want_ltoff_fptr
|| !info->pie
--- 3343,3348 ----
*************** elfNN_ia64_relocate_section (output_bfd,
*** 4079,4089 ****
case R_IA64_DIR64MSB:
case R_IA64_DIR64LSB:
/* Install a dynamic relocation for this reloc. */
! if ((dynamic_symbol_p || info->shared
! || (elfNN_ia64_aix_vec (info->hash->creator)
! /* Don't emit relocs for __GLOB_DATA_PTR on AIX. */
! && (!h || strcmp (h->root.root.string,
! "__GLOB_DATA_PTR") != 0)))
&& r_symndx != 0
&& (input_section->flags & SEC_ALLOC) != 0)
{
--- 3939,3945 ----
case R_IA64_DIR64MSB:
case R_IA64_DIR64LSB:
/* Install a dynamic relocation for this reloc. */
! if ((dynamic_symbol_p || info->shared)
&& r_symndx != 0
&& (input_section->flags & SEC_ALLOC) != 0)
{
*************** elfNN_ia64_relocate_section (output_bfd,
*** 4136,4143 ****
addend = value;
}
- if (elfNN_ia64_aix_vec (info->hash->creator))
- rel->r_addend = value;
elfNN_ia64_install_dyn_reloc (output_bfd, info, input_section,
srel, rel->r_offset, dyn_r_type,
dynindx, addend);
--- 3992,3997 ----
*************** elfNN_ia64_relocate_section (output_bfd,
*** 4302,4310 ****
case R_IA64_PCREL64MSB:
case R_IA64_PCREL64LSB:
/* Install a dynamic relocation for this reloc. */
! if ((dynamic_symbol_p
! || elfNN_ia64_aix_vec (info->hash->creator))
! && r_symndx != 0)
{
BFD_ASSERT (srel != NULL);
--- 4156,4162 ----
case R_IA64_PCREL64MSB:
case R_IA64_PCREL64LSB:
/* Install a dynamic relocation for this reloc. */
! if (dynamic_symbol_p && r_symndx != 0)
{
BFD_ASSERT (srel != NULL);
*************** elfNN_hpux_backend_section_from_bfd_sect
*** 5053,5079 ****
#define elf_backend_hide_symbol elfNN_ia64_hash_hide_symbol
#define elf_backend_reloc_type_class elfNN_ia64_reloc_type_class
#define elf_backend_rela_normal 1
-
- #include "elfNN-target.h"
-
- /* AIX-specific vectors. */
-
- #undef TARGET_LITTLE_SYM
- #define TARGET_LITTLE_SYM bfd_elfNN_ia64_aix_little_vec
- #undef TARGET_LITTLE_NAME
- #define TARGET_LITTLE_NAME "elfNN-ia64-aix-little"
- #undef TARGET_BIG_SYM
- #define TARGET_BIG_SYM bfd_elfNN_ia64_aix_big_vec
- #undef TARGET_BIG_NAME
- #define TARGET_BIG_NAME "elfNN-ia64-aix-big"
-
- #undef elf_backend_add_symbol_hook
- #define elf_backend_add_symbol_hook elfNN_ia64_aix_add_symbol_hook
-
- #undef bfd_elfNN_bfd_link_add_symbols
- #define bfd_elfNN_bfd_link_add_symbols elfNN_ia64_aix_link_add_symbols
-
- #define elfNN_bed elfNN_ia64_aix_bed
#include "elfNN-target.h"
--- 4905,4910 ----
Index: targets.c
===================================================================
RCS file: /cvs/src/src/bfd/targets.c,v
retrieving revision 1.94
diff -c -p -d -r1.94 targets.c
*** targets.c 10 Jul 2003 04:44:37 -0000 1.94
--- targets.c 16 Jul 2003 22:39:44 -0000
*************** extern const bfd_target bfd_elf64_big_ge
*** 589,596 ****
extern const bfd_target bfd_elf64_bigmips_vec;
extern const bfd_target bfd_elf64_hppa_linux_vec;
extern const bfd_target bfd_elf64_hppa_vec;
- extern const bfd_target bfd_elf64_ia64_aix_big_vec;
- extern const bfd_target bfd_elf64_ia64_aix_little_vec;
extern const bfd_target bfd_elf64_ia64_big_vec;
extern const bfd_target bfd_elf64_ia64_hpux_big_vec;
extern const bfd_target bfd_elf64_ia64_little_vec;
--- 589,594 ----
*************** static const bfd_target * const _bfd_tar
*** 885,892 ****
&bfd_elf64_bigmips_vec,
&bfd_elf64_hppa_linux_vec,
&bfd_elf64_hppa_vec,
- &bfd_elf64_ia64_aix_big_vec,
- &bfd_elf64_ia64_aix_little_vec,
&bfd_elf64_ia64_big_vec,
&bfd_elf64_ia64_hpux_big_vec,
&bfd_elf64_ia64_little_vec,
--- 883,888 ----