Line 1... |
Line 1... |
/* BFD COFF object file private structure.
|
/* BFD COFF object file private structure.
|
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
|
2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
|
Free Software Foundation, Inc.
|
Free Software Foundation, Inc.
|
Written by Cygnus Support.
|
Written by Cygnus Support.
|
|
|
This file is part of BFD, the Binary File Descriptor library.
|
This file is part of BFD, the Binary File Descriptor library.
|
|
|
Line 104... |
Line 104... |
|
|
/* Copy of some of the f_flags bits in the COFF filehdr structure,
|
/* Copy of some of the f_flags bits in the COFF filehdr structure,
|
used by ARM code. */
|
used by ARM code. */
|
flagword flags;
|
flagword flags;
|
|
|
|
/* coff-stgo32 EXE stub header after BFD tdata has been allocated. Its data
|
|
is kept in internal_filehdr.go32stub beforehand. */
|
|
char *go32stub;
|
} coff_data_type;
|
} coff_data_type;
|
|
|
/* Tdata for pe image files. */
|
/* Tdata for pe image files. */
|
typedef struct pe_tdata
|
typedef struct pe_tdata
|
{
|
{
|
Line 115... |
Line 118... |
struct internal_extra_pe_aouthdr pe_opthdr;
|
struct internal_extra_pe_aouthdr pe_opthdr;
|
int dll;
|
int dll;
|
int has_reloc_section;
|
int has_reloc_section;
|
bfd_boolean (*in_reloc_p) (bfd *, reloc_howto_type *);
|
bfd_boolean (*in_reloc_p) (bfd *, reloc_howto_type *);
|
flagword real_flags;
|
flagword real_flags;
|
int target_subsystem;
|
|
bfd_boolean force_minimum_alignment;
|
|
} pe_data_type;
|
} pe_data_type;
|
|
|
#define pe_data(bfd) ((bfd)->tdata.pe_obj_data)
|
#define pe_data(bfd) ((bfd)->tdata.pe_obj_data)
|
|
|
/* Tdata for XCOFF files. */
|
/* Tdata for XCOFF files. */
|
Line 163... |
Line 164... |
/* maxstack from optional header. */
|
/* maxstack from optional header. */
|
bfd_vma maxstack;
|
bfd_vma maxstack;
|
|
|
/* Used by the XCOFF backend linker. */
|
/* Used by the XCOFF backend linker. */
|
asection **csects;
|
asection **csects;
|
unsigned long *debug_indices;
|
long *debug_indices;
|
|
unsigned int *lineno_counts;
|
unsigned int import_file_id;
|
unsigned int import_file_id;
|
};
|
};
|
|
|
#define xcoff_data(abfd) ((abfd)->tdata.xcoff_obj_data)
|
#define xcoff_data(abfd) ((abfd)->tdata.xcoff_obj_data)
|
|
|
Line 213... |
Line 215... |
XCOFF section which contains this csect. */
|
XCOFF section which contains this csect. */
|
asection *enclosing;
|
asection *enclosing;
|
/* The lineno_count field for the enclosing section, because we are
|
/* The lineno_count field for the enclosing section, because we are
|
going to clobber it there. */
|
going to clobber it there. */
|
unsigned int lineno_count;
|
unsigned int lineno_count;
|
/* The first and one past the last symbol indices for symbols used
|
/* The first and last symbol indices for symbols used by this csect. */
|
by this csect. */
|
|
unsigned long first_symndx;
|
unsigned long first_symndx;
|
unsigned long last_symndx;
|
unsigned long last_symndx;
|
};
|
};
|
|
|
/* An accessor macro the xcoff_section_tdata structure. */
|
/* An accessor macro the xcoff_section_tdata structure. */
|
Line 251... |
Line 252... |
|
|
/* Symbol type. */
|
/* Symbol type. */
|
unsigned short type;
|
unsigned short type;
|
|
|
/* Symbol class. */
|
/* Symbol class. */
|
unsigned char class;
|
unsigned char symbol_class;
|
|
|
/* Number of auxiliary entries. */
|
/* Number of auxiliary entries. */
|
char numaux;
|
char numaux;
|
|
|
/* BFD to take auxiliary entries from. */
|
/* BFD to take auxiliary entries from. */
|
Line 391... |
Line 392... |
{
|
{
|
/* Next type with the same name. */
|
/* Next type with the same name. */
|
struct coff_debug_merge_type *next;
|
struct coff_debug_merge_type *next;
|
|
|
/* Class of type. */
|
/* Class of type. */
|
int class;
|
int type_class;
|
|
|
/* Symbol index where this type is defined. */
|
/* Symbol index where this type is defined. */
|
long indx;
|
long indx;
|
|
|
/* List of elements. */
|
/* List of elements. */
|
Line 587... |
Line 588... |
(struct bfd_link_hash_table *);
|
(struct bfd_link_hash_table *);
|
extern bfd_boolean _bfd_xcoff_bfd_link_add_symbols
|
extern bfd_boolean _bfd_xcoff_bfd_link_add_symbols
|
(bfd *, struct bfd_link_info *);
|
(bfd *, struct bfd_link_info *);
|
extern bfd_boolean _bfd_xcoff_bfd_final_link
|
extern bfd_boolean _bfd_xcoff_bfd_final_link
|
(bfd *, struct bfd_link_info *);
|
(bfd *, struct bfd_link_info *);
|
|
extern bfd_boolean _bfd_xcoff_define_common_symbol
|
|
(bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *);
|
extern bfd_boolean _bfd_ppc_xcoff_relocate_section
|
extern bfd_boolean _bfd_ppc_xcoff_relocate_section
|
(bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
|
(bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
|
struct internal_reloc *, struct internal_syment *, asection **);
|
struct internal_reloc *, struct internal_syment *, asection **);
|
|
|
/* Functions in coff-ppc.c. FIXME: These are called be pe.em in the
|
/* Functions in coff-ppc.c. FIXME: These are called by pe.em in the
|
linker, and so should start with bfd and be declared in bfd.h. */
|
linker, and so should start with bfd and be declared in bfd.h. */
|
|
|
extern bfd_boolean ppc_allocate_toc_section
|
extern bfd_boolean ppc_allocate_toc_section
|
(struct bfd_link_info *);
|
(struct bfd_link_info *);
|
extern bfd_boolean ppc_process_before_allocation
|
extern bfd_boolean ppc_process_before_allocation
|
(bfd *, struct bfd_link_info *);
|
(bfd *, struct bfd_link_info *);
|
|
|
|
|
No newline at end of file
|
No newline at end of file
|