diff options
Diffstat (limited to 'contrib/binutils/bfd/doc/syms.texi')
-rw-r--r-- | contrib/binutils/bfd/doc/syms.texi | 159 |
1 files changed, 88 insertions, 71 deletions
diff --git a/contrib/binutils/bfd/doc/syms.texi b/contrib/binutils/bfd/doc/syms.texi index 400a106..1987e23 100644 --- a/contrib/binutils/bfd/doc/syms.texi +++ b/contrib/binutils/bfd/doc/syms.texi @@ -141,126 +141,125 @@ An @code{asymbol} has the form: typedef struct symbol_cache_entry @{ - /* A pointer to the BFD which owns the symbol. This information - is necessary so that a back end can work out what additional - information (invisible to the application writer) is carried - with the symbol. - - This field is *almost* redundant, since you can use section->owner - instead, except that some symbols point to the global sections - bfd_@{abs,com,und@}_section. This could be fixed by making - these globals be per-bfd (or per-target-flavor). FIXME. */ - - struct _bfd *the_bfd; /* Use bfd_asymbol_bfd(sym) to access this field. */ - - /* The text of the symbol. The name is left alone, and not copied; the - application may not alter it. */ - CONST char *name; - - /* The value of the symbol. This really should be a union of a - numeric value with a pointer, since some flags indicate that - a pointer to another symbol is stored here. */ + /* A pointer to the BFD which owns the symbol. This information + is necessary so that a back end can work out what additional + information (invisible to the application writer) is carried + with the symbol. + + This field is *almost* redundant, since you can use section->owner + instead, except that some symbols point to the global sections + bfd_@{abs,com,und@}_section. This could be fixed by making + these globals be per-bfd (or per-target-flavor). FIXME. */ + struct _bfd *the_bfd; /* Use bfd_asymbol_bfd(sym) to access this field. */ + + /* The text of the symbol. The name is left alone, and not copied; the + application may not alter it. */ + const char *name; + + /* The value of the symbol. This really should be a union of a + numeric value with a pointer, since some flags indicate that + a pointer to another symbol is stored here. */ symvalue value; - /* Attributes of a symbol: */ - + /* Attributes of a symbol. */ #define BSF_NO_FLAGS 0x00 - /* The symbol has local scope; @code{static} in @code{C}. The value - is the offset into the section of the data. */ + /* The symbol has local scope; @code{static} in @code{C}. The value + is the offset into the section of the data. */ #define BSF_LOCAL 0x01 - /* The symbol has global scope; initialized data in @code{C}. The - value is the offset into the section of the data. */ + /* The symbol has global scope; initialized data in @code{C}. The + value is the offset into the section of the data. */ #define BSF_GLOBAL 0x02 - /* The symbol has global scope and is exported. The value is - the offset into the section of the data. */ -#define BSF_EXPORT BSF_GLOBAL /* no real difference */ + /* The symbol has global scope and is exported. The value is + the offset into the section of the data. */ +#define BSF_EXPORT BSF_GLOBAL /* No real difference. */ - /* A normal C symbol would be one of: - @code{BSF_LOCAL}, @code{BSF_FORT_COMM}, @code{BSF_UNDEFINED} or - @code{BSF_GLOBAL} */ + /* A normal C symbol would be one of: + @code{BSF_LOCAL}, @code{BSF_FORT_COMM}, @code{BSF_UNDEFINED} or + @code{BSF_GLOBAL}. */ - /* The symbol is a debugging record. The value has an arbitary - meaning, unless BSF_DEBUGGING_RELOC is also set. */ + /* The symbol is a debugging record. The value has an arbitary + meaning, unless BSF_DEBUGGING_RELOC is also set. */ #define BSF_DEBUGGING 0x08 - /* The symbol denotes a function entry point. Used in ELF, - perhaps others someday. */ + /* The symbol denotes a function entry point. Used in ELF, + perhaps others someday. */ #define BSF_FUNCTION 0x10 - /* Used by the linker. */ + /* Used by the linker. */ #define BSF_KEEP 0x20 #define BSF_KEEP_G 0x40 - /* A weak global symbol, overridable without warnings by - a regular global symbol of the same name. */ + /* A weak global symbol, overridable without warnings by + a regular global symbol of the same name. */ #define BSF_WEAK 0x80 - /* This symbol was created to point to a section, e.g. ELF's - STT_SECTION symbols. */ + /* This symbol was created to point to a section, e.g. ELF's + STT_SECTION symbols. */ #define BSF_SECTION_SYM 0x100 - /* The symbol used to be a common symbol, but now it is - allocated. */ + /* The symbol used to be a common symbol, but now it is + allocated. */ #define BSF_OLD_COMMON 0x200 - /* The default value for common data. */ + /* The default value for common data. */ #define BFD_FORT_COMM_DEFAULT_VALUE 0 - /* In some files the type of a symbol sometimes alters its - location in an output file - ie in coff a @code{ISFCN} symbol - which is also @code{C_EXT} symbol appears where it was - declared and not at the end of a section. This bit is set - by the target BFD part to convey this information. */ - + /* In some files the type of a symbol sometimes alters its + location in an output file - ie in coff a @code{ISFCN} symbol + which is also @code{C_EXT} symbol appears where it was + declared and not at the end of a section. This bit is set + by the target BFD part to convey this information. */ #define BSF_NOT_AT_END 0x400 - /* Signal that the symbol is the label of constructor section. */ + /* Signal that the symbol is the label of constructor section. */ #define BSF_CONSTRUCTOR 0x800 - /* Signal that the symbol is a warning symbol. The name is a - warning. The name of the next symbol is the one to warn about; - if a reference is made to a symbol with the same name as the next - symbol, a warning is issued by the linker. */ + /* Signal that the symbol is a warning symbol. The name is a + warning. The name of the next symbol is the one to warn about; + if a reference is made to a symbol with the same name as the next + symbol, a warning is issued by the linker. */ #define BSF_WARNING 0x1000 - /* Signal that the symbol is indirect. This symbol is an indirect - pointer to the symbol with the same name as the next symbol. */ + /* Signal that the symbol is indirect. This symbol is an indirect + pointer to the symbol with the same name as the next symbol. */ #define BSF_INDIRECT 0x2000 - /* BSF_FILE marks symbols that contain a file name. This is used - for ELF STT_FILE symbols. */ + /* BSF_FILE marks symbols that contain a file name. This is used + for ELF STT_FILE symbols. */ #define BSF_FILE 0x4000 - /* Symbol is from dynamic linking information. */ + /* Symbol is from dynamic linking information. */ #define BSF_DYNAMIC 0x8000 - /* The symbol denotes a data object. Used in ELF, and perhaps - others someday. */ + /* The symbol denotes a data object. Used in ELF, and perhaps + others someday. */ #define BSF_OBJECT 0x10000 - /* This symbol is a debugging symbol. The value is the offset - into the section of the data. BSF_DEBUGGING should be set - as well. */ + /* This symbol is a debugging symbol. The value is the offset + into the section of the data. BSF_DEBUGGING should be set + as well. */ #define BSF_DEBUGGING_RELOC 0x20000 flagword flags; - /* A pointer to the section to which this symbol is - relative. This will always be non NULL, there are special - sections for undefined and absolute symbols. */ + /* A pointer to the section to which this symbol is + relative. This will always be non NULL, there are special + sections for undefined and absolute symbols. */ struct sec *section; - /* Back end special data. */ + /* Back end special data. */ union @{ PTR p; bfd_vma i; - @} udata; + @} + udata; +@} +asymbol; -@} asymbol; @end example @node symbol handling functions, , typedef asymbol, Symbols @@ -277,6 +276,7 @@ the BFD, then return 0. If an error occurs, return -1. @example #define bfd_get_symtab_upper_bound(abfd) \ BFD_SEND (abfd, _bfd_get_symtab_upper_bound, (abfd)) + @end example @findex bfd_is_local_label @@ -303,6 +303,7 @@ local label. @example #define bfd_is_local_label_name(abfd, name) \ BFD_SEND (abfd, _bfd_is_local_label_name, (abfd, name)) + @end example @findex bfd_canonicalize_symtab @@ -317,6 +318,7 @@ including the NULL. #define bfd_canonicalize_symtab(abfd, location) \ BFD_SEND (abfd, _bfd_canonicalize_symtab,\ (abfd, location)) + @end example @findex bfd_set_symtab @@ -334,7 +336,7 @@ will be written. @subsubsection @code{bfd_print_symbol_vandf} @strong{Synopsis} @example -void bfd_print_symbol_vandf(PTR file, asymbol *symbol); +void bfd_print_symbol_vandf(bfd *abfd, PTR file, asymbol *symbol); @end example @strong{Description}@* Print the value and flags of the @var{symbol} supplied to the @@ -353,8 +355,21 @@ information, and will cause problems later on. @example #define bfd_make_empty_symbol(abfd) \ BFD_SEND (abfd, _bfd_make_empty_symbol, (abfd)) + @end example +@findex _bfd_generic_make_empty_symbol +@subsubsection @code{_bfd_generic_make_empty_symbol} +@strong{Synopsis} +@example +asymbol *_bfd_generic_make_empty_symbol (bfd *); +@end example +@strong{Description}@* +Create a new @code{asymbol} structure for the BFD @var{abfd} +and return a pointer to it. Used by core file routines, +binary back-end and anywhere else where no private info +is needed. + @findex bfd_make_debug_symbol @subsubsection @code{bfd_make_debug_symbol} @strong{Description}@* @@ -364,6 +379,7 @@ yet to be worked out. @example #define bfd_make_debug_symbol(abfd,ptr,size) \ BFD_SEND (abfd, _bfd_make_debug_symbol, (abfd, ptr, size)) + @end example @findex bfd_decode_symclass @@ -420,5 +436,6 @@ Not enough memory exists to create private data for @var{osec}. #define bfd_copy_private_symbol_data(ibfd, isymbol, obfd, osymbol) \ BFD_SEND (obfd, _bfd_copy_private_symbol_data, \ (ibfd, isymbol, obfd, osymbol)) + @end example |