OpenCores
URL https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk

Subversion Repositories openrisc_2011-10-31

[/] [openrisc/] [trunk/] [gnu-src/] [gdb-6.8/] [include/] [coff/] [xcoff.h] - Diff between revs 157 and 225

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 157 Rev 225
Line 1... Line 1...
/* Internal format of XCOFF object file data structures for BFD.
/* Internal format of XCOFF object file data structures for BFD.
 
 
   Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005
   Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005,
   Free Software Foundation, Inc.
   2009 Free Software Foundation, Inc.
   Written by Ian Lance Taylor <ian@cygnus.com>, Cygnus Support.
   Written by Ian Lance Taylor <ian@cygnus.com>, Cygnus Support.
 
 
   This file is part of BFD, the Binary File Descriptor library.
   This file is part of BFD, the Binary File Descriptor library.
 
 
   This program is free software; you can redistribute it and/or modify
   This program is free software; you can redistribute it and/or modify
Line 212... Line 212...
#define L_IMPORT (0x40)
#define L_IMPORT (0x40)
/* Entry point.  */
/* Entry point.  */
#define L_ENTRY (0x20)
#define L_ENTRY (0x20)
/* Exported symbol.  */
/* Exported symbol.  */
#define L_EXPORT (0x10)
#define L_EXPORT (0x10)
 
/* Weak symbol.  */
 
#define L_WEAK (0x08)
 
 
/* The ldrel structure.  This is used to represent a reloc in the
/* The ldrel structure.  This is used to represent a reloc in the
   .loader section.  */
   .loader section.  */
 
 
struct internal_ldrel
struct internal_ldrel
Line 289... Line 291...
#define XCOFF_DEF_DYNAMIC      0x00000004
#define XCOFF_DEF_DYNAMIC      0x00000004
/* Symbol is used in a reloc being copied into the .loader section.  */
/* Symbol is used in a reloc being copied into the .loader section.  */
#define XCOFF_LDREL            0x00000008
#define XCOFF_LDREL            0x00000008
/* Symbol is the entry point.  */
/* Symbol is the entry point.  */
#define XCOFF_ENTRY            0x00000010
#define XCOFF_ENTRY            0x00000010
/* Symbol is called; this is, it appears in a R_BR reloc.  */
/* Symbol is for a function and is the target of a relocation.
 
   The relocation may or may not be a branch-type relocation.  */
#define XCOFF_CALLED           0x00000020
#define XCOFF_CALLED           0x00000020
/* Symbol needs the TOC entry filled in.  */
/* Symbol needs the TOC entry filled in.  */
#define XCOFF_SET_TOC          0x00000040
#define XCOFF_SET_TOC          0x00000040
/* Symbol is explicitly imported.  */
/* Symbol is implicitly or explicitly imported.  */
#define XCOFF_IMPORT           0x00000080
#define XCOFF_IMPORT           0x00000080
/* Symbol is explicitly exported.  */
/* Symbol is explicitly exported.  */
#define XCOFF_EXPORT           0x00000100
#define XCOFF_EXPORT           0x00000100
/* Symbol has been processed by xcoff_build_ldsyms.  */
/* Symbol has been processed by xcoff_build_ldsyms.  */
#define XCOFF_BUILT_LDSYM      0x00000200
#define XCOFF_BUILT_LDSYM      0x00000200
Line 313... Line 316...
#define XCOFF_RTINIT           0x00004000
#define XCOFF_RTINIT           0x00004000
/* Symbol is an imported 32 bit syscall.  */
/* Symbol is an imported 32 bit syscall.  */
#define XCOFF_SYSCALL32        0x00008000
#define XCOFF_SYSCALL32        0x00008000
/* Symbol is an imported 64 bit syscall.  */
/* Symbol is an imported 64 bit syscall.  */
#define XCOFF_SYSCALL64        0x00010000 
#define XCOFF_SYSCALL64        0x00010000 
 
/* Symbol was not explicitly defined by the time it was marked.  */
 
#define XCOFF_WAS_UNDEFINED    0x00020000
 
/* We have assigned an output XCOFF entry to this symbol.  */
 
#define XCOFF_ALLOCATED        0x00040000
 
 
/* The XCOFF linker hash table.  */
/* The XCOFF linker hash table.  */
 
 
#define XCOFF_NUMBER_OF_SPECIAL_SECTIONS 6
#define XCOFF_NUMBER_OF_SPECIAL_SECTIONS 6
#define XCOFF_SPECIAL_SECTION_TEXT       0
#define XCOFF_SPECIAL_SECTION_TEXT       0
Line 324... Line 331...
#define XCOFF_SPECIAL_SECTION_DATA       2
#define XCOFF_SPECIAL_SECTION_DATA       2
#define XCOFF_SPECIAL_SECTION_EDATA      3
#define XCOFF_SPECIAL_SECTION_EDATA      3
#define XCOFF_SPECIAL_SECTION_END        4
#define XCOFF_SPECIAL_SECTION_END        4
#define XCOFF_SPECIAL_SECTION_END2       5
#define XCOFF_SPECIAL_SECTION_END2       5
 
 
struct xcoff_link_hash_table
/* These flags indicate which of -bexpall and -bexpfull are in effect.  */
{
#define XCOFF_EXPALL 1
  struct bfd_link_hash_table root;
#define XCOFF_EXPFULL 2
 
 
  /* The .debug string hash table.  We need to compute this while
 
     reading the input files, so that we know how large the .debug
 
     section will be before we assign section positions.  */
 
  struct bfd_strtab_hash *debug_strtab;
 
 
 
  /* The .debug section we will use for the final output.  */
 
  asection *debug_section;
 
 
 
  /* The .loader section we will use for the final output.  */
 
  asection *loader_section;
 
 
 
  /* A count of non TOC relative relocs which will need to be
 
     allocated in the .loader section.  */
 
  size_t ldrel_count;
 
 
 
  /* The .loader section header.  */
 
  struct internal_ldhdr ldhdr;
 
 
 
  /* The .gl section we use to hold global linkage code.  */
 
  asection *linkage_section;
 
 
 
  /* The .tc section we use to hold toc entries we build for global
 
     linkage code.  */
 
  asection *toc_section;
 
 
 
  /* The .ds section we use to hold function descriptors which we
 
     create for exported symbols.  */
 
  asection *descriptor_section;
 
 
 
  /* The list of import files.  */
 
  struct xcoff_import_file *imports;
 
 
 
  /* Required alignment of sections within the output file.  */
 
  unsigned long file_align;
 
 
 
  /* Whether the .text section must be read-only.  */
 
  bfd_boolean textro;
 
 
 
  /* Whether garbage collection was done.  */
 
  bfd_boolean gc;
 
 
 
  /* A linked list of symbols for which we have size information.  */
 
  struct xcoff_link_size_list
 
  {
 
    struct xcoff_link_size_list *next;
 
    struct xcoff_link_hash_entry *h;
 
    bfd_size_type size;
 
  }
 
  *size_list;
 
 
 
  /* Magic sections: _text, _etext, _data, _edata, _end, end. */
 
  asection *special_sections[XCOFF_NUMBER_OF_SPECIAL_SECTIONS];
 
};
 
 
 
 
 
/* This structure is used to pass information through
/* This structure is used to pass information through
   xcoff_link_hash_traverse.  */
   xcoff_link_hash_traverse.  */
 
 
struct xcoff_loader_info
struct xcoff_loader_info
Line 397... Line 349...
  bfd *output_bfd;
  bfd *output_bfd;
 
 
  /* Link information structure.  */
  /* Link information structure.  */
  struct bfd_link_info *info;
  struct bfd_link_info *info;
 
 
  /* Whether all defined symbols should be exported.  */
  /* A mask of XCOFF_EXPALL and XCOFF_EXPFULL flags.  */
  bfd_boolean export_defineds;
  unsigned int auto_export_flags;
 
 
  /* Number of ldsym structures.  */
  /* Number of ldsym structures.  */
  size_t ldsym_count;
  size_t ldsym_count;
 
 
  /* Size of string table.  */
  /* Size of string table.  */
Line 634... Line 586...
#define arch_xhdr(bfd) \
#define arch_xhdr(bfd) \
  ((struct xcoff_ar_hdr *) arch_eltdata (bfd)->arch_header)
  ((struct xcoff_ar_hdr *) arch_eltdata (bfd)->arch_header)
#define arch_xhdr_big(bfd) \
#define arch_xhdr_big(bfd) \
  ((struct xcoff_ar_hdr_big *) arch_eltdata (bfd)->arch_header)
  ((struct xcoff_ar_hdr_big *) arch_eltdata (bfd)->arch_header)
 
 
 
/* True if symbols of class CLASS are external.  */
 
#define EXTERN_SYM_P(CLASS) \
 
  ((CLASS) == C_EXT || (CLASS) == C_AIX_WEAKEXT)
 
 
#endif /* _INTERNAL_XCOFF_H */
#endif /* _INTERNAL_XCOFF_H */
 
 
 No newline at end of file
 No newline at end of file

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.