Line 328... |
Line 328... |
/* Simply linked list of eisd for shared libraries. */
|
/* Simply linked list of eisd for shared libraries. */
|
struct vms_internal_eisd_map *gbl_eisd_head;
|
struct vms_internal_eisd_map *gbl_eisd_head;
|
struct vms_internal_eisd_map *gbl_eisd_tail;
|
struct vms_internal_eisd_map *gbl_eisd_tail;
|
|
|
/* linkage index counter used by conditional store commands */
|
/* linkage index counter used by conditional store commands */
|
int vms_linkage_index;
|
unsigned int vms_linkage_index;
|
|
|
/* see tc-alpha.c of gas for a description. */
|
/* see tc-alpha.c of gas for a description. */
|
int flag_hash_long_names; /* -+, hash instead of truncate */
|
int flag_hash_long_names; /* -+, hash instead of truncate */
|
int flag_show_after_trunc; /* -H, show hashing/truncation */
|
int flag_show_after_trunc; /* -H, show hashing/truncation */
|
};
|
};
|
Line 2658... |
Line 2658... |
vms_debug2 ((2, "vms_write_eeom\n"));
|
vms_debug2 ((2, "vms_write_eeom\n"));
|
|
|
_bfd_vms_output_alignment (recwr, 2);
|
_bfd_vms_output_alignment (recwr, 2);
|
|
|
_bfd_vms_output_begin (recwr, EOBJ__C_EEOM);
|
_bfd_vms_output_begin (recwr, EOBJ__C_EEOM);
|
_bfd_vms_output_long (recwr, (unsigned long) (PRIV (vms_linkage_index) >> 1));
|
_bfd_vms_output_long (recwr, PRIV (vms_linkage_index + 1) >> 1);
|
_bfd_vms_output_byte (recwr, 0); /* Completion code. */
|
_bfd_vms_output_byte (recwr, 0); /* Completion code. */
|
_bfd_vms_output_byte (recwr, 0); /* Fill byte. */
|
_bfd_vms_output_byte (recwr, 0); /* Fill byte. */
|
|
|
if ((abfd->flags & EXEC_P) == 0
|
if ((abfd->flags & EXEC_P) == 0
|
&& bfd_get_start_address (abfd) != (bfd_vma)-1)
|
&& bfd_get_start_address (abfd) != (bfd_vma)-1)
|
Line 3734... |
Line 3734... |
|
|
vms_debug2 ((2, "vms_write_tir (%p, %d)\n", abfd, objtype));
|
vms_debug2 ((2, "vms_write_tir (%p, %d)\n", abfd, objtype));
|
|
|
_bfd_vms_output_alignment (recwr, 4);
|
_bfd_vms_output_alignment (recwr, 4);
|
|
|
PRIV (vms_linkage_index) = 1;
|
PRIV (vms_linkage_index) = 0;
|
|
|
for (section = abfd->sections; section; section = section->next)
|
for (section = abfd->sections; section; section = section->next)
|
{
|
{
|
vms_debug2 ((4, "writing %d. section '%s' (%d bytes)\n",
|
vms_debug2 ((4, "writing %d. section '%s' (%d bytes)\n",
|
section->target_index, section->name, (int) (section->size)));
|
section->target_index, section->name, (int) (section->size)));
|
Line 3945... |
Line 3945... |
|
|
case ALPHA_R_LINKAGE:
|
case ALPHA_R_LINKAGE:
|
etir_output_check (abfd, section, curr_addr, 64);
|
etir_output_check (abfd, section, curr_addr, 64);
|
_bfd_vms_output_begin_subrec (recwr, ETIR__C_STC_LP_PSB);
|
_bfd_vms_output_begin_subrec (recwr, ETIR__C_STC_LP_PSB);
|
_bfd_vms_output_long
|
_bfd_vms_output_long
|
(recwr, (unsigned long) PRIV (vms_linkage_index));
|
(recwr, (unsigned long) rptr->addend);
|
PRIV (vms_linkage_index) += 2;
|
if (rptr->addend > PRIV (vms_linkage_index))
|
|
PRIV (vms_linkage_index) = rptr->addend;
|
hash = _bfd_vms_length_hash_symbol
|
hash = _bfd_vms_length_hash_symbol
|
(abfd, sym->name, EOBJ__C_SYMSIZ);
|
(abfd, sym->name, EOBJ__C_SYMSIZ);
|
_bfd_vms_output_counted (recwr, hash);
|
_bfd_vms_output_counted (recwr, hash);
|
_bfd_vms_output_byte (recwr, 0);
|
_bfd_vms_output_byte (recwr, 0);
|
_bfd_vms_output_end_subrec (recwr);
|
_bfd_vms_output_end_subrec (recwr);
|
Line 3972... |
Line 3973... |
etir_output_check (abfd, section, curr_addr,
|
etir_output_check (abfd, section, curr_addr,
|
32 + 1 + strlen (udata->origname));
|
32 + 1 + strlen (udata->origname));
|
_bfd_vms_output_begin_subrec (recwr, ETIR__C_STC_NOP_GBL);
|
_bfd_vms_output_begin_subrec (recwr, ETIR__C_STC_NOP_GBL);
|
_bfd_vms_output_long (recwr, (unsigned long) udata->lkindex);
|
_bfd_vms_output_long (recwr, (unsigned long) udata->lkindex);
|
_bfd_vms_output_long
|
_bfd_vms_output_long
|
(recwr,
|
(recwr, (unsigned long) section->target_index);
|
(unsigned long) udata->enbsym->section->target_index);
|
|
_bfd_vms_output_quad (recwr, rptr->address);
|
_bfd_vms_output_quad (recwr, rptr->address);
|
_bfd_vms_output_long (recwr, (unsigned long) 0x47ff041f);
|
_bfd_vms_output_long (recwr, (unsigned long) 0x47ff041f);
|
_bfd_vms_output_long
|
_bfd_vms_output_long
|
(recwr,
|
(recwr, (unsigned long) section->target_index);
|
(unsigned long) udata->enbsym->section->target_index);
|
|
_bfd_vms_output_quad (recwr, rptr->addend);
|
_bfd_vms_output_quad (recwr, rptr->addend);
|
_bfd_vms_output_counted
|
_bfd_vms_output_counted
|
(recwr, _bfd_vms_length_hash_symbol
|
(recwr, _bfd_vms_length_hash_symbol
|
(abfd, udata->origname, EOBJ__C_SYMSIZ));
|
(abfd, udata->origname, EOBJ__C_SYMSIZ));
|
_bfd_vms_output_end_subrec (recwr);
|
_bfd_vms_output_end_subrec (recwr);
|
Line 3999... |
Line 3998... |
32 + 1 + strlen (udata->origname));
|
32 + 1 + strlen (udata->origname));
|
_bfd_vms_output_begin_subrec (recwr, ETIR__C_STC_LDA_GBL);
|
_bfd_vms_output_begin_subrec (recwr, ETIR__C_STC_LDA_GBL);
|
_bfd_vms_output_long
|
_bfd_vms_output_long
|
(recwr, (unsigned long) udata->lkindex + 1);
|
(recwr, (unsigned long) udata->lkindex + 1);
|
_bfd_vms_output_long
|
_bfd_vms_output_long
|
(recwr,
|
(recwr, (unsigned long) section->target_index);
|
(unsigned long) udata->enbsym->section->target_index);
|
|
_bfd_vms_output_quad (recwr, rptr->address);
|
_bfd_vms_output_quad (recwr, rptr->address);
|
_bfd_vms_output_long (recwr, (unsigned long) 0x237B0000);
|
_bfd_vms_output_long (recwr, (unsigned long) 0x237B0000);
|
_bfd_vms_output_long
|
_bfd_vms_output_long
|
(recwr, (unsigned long) udata->bsym->section->target_index);
|
(recwr, (unsigned long) udata->bsym->section->target_index);
|
_bfd_vms_output_quad (recwr, rptr->addend);
|
_bfd_vms_output_quad (recwr, rptr->addend);
|
Line 4020... |
Line 4018... |
etir_output_check (abfd, section, curr_addr,
|
etir_output_check (abfd, section, curr_addr,
|
32 + 1 + strlen (udata->origname));
|
32 + 1 + strlen (udata->origname));
|
_bfd_vms_output_begin_subrec (recwr, ETIR__C_STC_BOH_GBL);
|
_bfd_vms_output_begin_subrec (recwr, ETIR__C_STC_BOH_GBL);
|
_bfd_vms_output_long (recwr, (unsigned long) udata->lkindex);
|
_bfd_vms_output_long (recwr, (unsigned long) udata->lkindex);
|
_bfd_vms_output_long
|
_bfd_vms_output_long
|
(recwr,
|
(recwr, (unsigned long) section->target_index);
|
(unsigned long) udata->enbsym->section->target_index);
|
|
_bfd_vms_output_quad (recwr, rptr->address);
|
_bfd_vms_output_quad (recwr, rptr->address);
|
_bfd_vms_output_long (recwr, (unsigned long) 0xD3400000);
|
_bfd_vms_output_long (recwr, (unsigned long) 0xD3400000);
|
_bfd_vms_output_long
|
_bfd_vms_output_long
|
(recwr,
|
(recwr, (unsigned long) section->target_index);
|
(unsigned long) udata->enbsym->section->target_index);
|
|
_bfd_vms_output_quad (recwr, rptr->addend);
|
_bfd_vms_output_quad (recwr, rptr->addend);
|
_bfd_vms_output_counted
|
_bfd_vms_output_counted
|
(recwr, _bfd_vms_length_hash_symbol
|
(recwr, _bfd_vms_length_hash_symbol
|
(abfd, udata->origname, EOBJ__C_SYMSIZ));
|
(abfd, udata->origname, EOBJ__C_SYMSIZ));
|
_bfd_vms_output_end_subrec (recwr);
|
_bfd_vms_output_end_subrec (recwr);
|
Line 5104... |
Line 5100... |
if (cur_psect < 0 || cur_psect > (int)PRIV (section_count))
|
if (cur_psect < 0 || cur_psect > (int)PRIV (section_count))
|
{
|
{
|
(*_bfd_error_handler) (_("Invalid section index in ETIR"));
|
(*_bfd_error_handler) (_("Invalid section index in ETIR"));
|
return FALSE;
|
return FALSE;
|
}
|
}
|
|
|
sec = PRIV (sections)[cur_psect];
|
sec = PRIV (sections)[cur_psect];
|
|
if (sec == bfd_abs_section_ptr)
|
|
{
|
|
(*_bfd_error_handler) (_("Relocation for non-REL psect"));
|
|
return FALSE;
|
|
}
|
|
|
vms_sec = vms_section_data (sec);
|
vms_sec = vms_section_data (sec);
|
|
|
/* Allocate a reloc entry. */
|
/* Allocate a reloc entry. */
|
if (sec->reloc_count >= vms_sec->reloc_max)
|
if (sec->reloc_count >= vms_sec->reloc_max)
|
{
|
{
|
Line 9331... |
Line 9334... |
#define alpha_vms_bfd_get_relocated_section_contents \
|
#define alpha_vms_bfd_get_relocated_section_contents \
|
bfd_generic_get_relocated_section_contents
|
bfd_generic_get_relocated_section_contents
|
|
|
#define alpha_vms_bfd_relax_section bfd_generic_relax_section
|
#define alpha_vms_bfd_relax_section bfd_generic_relax_section
|
#define alpha_vms_bfd_gc_sections bfd_generic_gc_sections
|
#define alpha_vms_bfd_gc_sections bfd_generic_gc_sections
|
|
#define alpha_vms_bfd_lookup_section_flags bfd_generic_lookup_section_flags
|
#define alpha_vms_bfd_merge_sections bfd_generic_merge_sections
|
#define alpha_vms_bfd_merge_sections bfd_generic_merge_sections
|
#define alpha_vms_bfd_is_group_section bfd_generic_is_group_section
|
#define alpha_vms_bfd_is_group_section bfd_generic_is_group_section
|
#define alpha_vms_bfd_discard_group bfd_generic_discard_group
|
#define alpha_vms_bfd_discard_group bfd_generic_discard_group
|
#define alpha_vms_section_already_linked \
|
#define alpha_vms_section_already_linked \
|
_bfd_generic_section_already_linked
|
_bfd_generic_section_already_linked
|