Line 164... |
Line 164... |
/* Attributes of a symbol. */
|
/* Attributes of a symbol. */
|
#define BSF_NO_FLAGS 0x00
|
#define BSF_NO_FLAGS 0x00
|
|
|
/* The symbol has local scope; @code{static} in @code{C}. The value
|
/* The symbol has local scope; @code{static} in @code{C}. The value
|
is the offset into the section of the data. */
|
is the offset into the section of the data. */
|
#define BSF_LOCAL 0x01
|
#define BSF_LOCAL (1 << 0)
|
|
|
/* The symbol has global scope; initialized data in @code{C}. The
|
/* The symbol has global scope; initialized data in @code{C}. The
|
value is the offset into the section of the data. */
|
value is the offset into the section of the data. */
|
#define BSF_GLOBAL 0x02
|
#define BSF_GLOBAL (1 << 1)
|
|
|
/* The symbol has global scope and is exported. The value is
|
/* The symbol has global scope and is exported. The value is
|
the offset into the section of the data. */
|
the offset into the section of the data. */
|
#define BSF_EXPORT BSF_GLOBAL /* No real difference. */
|
#define BSF_EXPORT BSF_GLOBAL /* No real difference. */
|
|
|
/* A normal C symbol would be one of:
|
/* A normal C symbol would be one of:
|
@code{BSF_LOCAL}, @code{BSF_FORT_COMM}, @code{BSF_UNDEFINED} or
|
@code{BSF_LOCAL}, @code{BSF_COMMON}, @code{BSF_UNDEFINED} or
|
@code{BSF_GLOBAL}. */
|
@code{BSF_GLOBAL}. */
|
|
|
/* The symbol is a debugging record. The value has an arbitrary
|
/* The symbol is a debugging record. The value has an arbitrary
|
meaning, unless BSF_DEBUGGING_RELOC is also set. */
|
meaning, unless BSF_DEBUGGING_RELOC is also set. */
|
#define BSF_DEBUGGING 0x08
|
#define BSF_DEBUGGING (1 << 2)
|
|
|
/* The symbol denotes a function entry point. Used in ELF,
|
/* The symbol denotes a function entry point. Used in ELF,
|
perhaps others someday. */
|
perhaps others someday. */
|
#define BSF_FUNCTION 0x10
|
#define BSF_FUNCTION (1 << 3)
|
|
|
/* Used by the linker. */
|
/* Used by the linker. */
|
#define BSF_KEEP 0x20
|
#define BSF_KEEP (1 << 5)
|
#define BSF_KEEP_G 0x40
|
#define BSF_KEEP_G (1 << 6)
|
|
|
/* A weak global symbol, overridable without warnings by
|
/* A weak global symbol, overridable without warnings by
|
a regular global symbol of the same name. */
|
a regular global symbol of the same name. */
|
#define BSF_WEAK 0x80
|
#define BSF_WEAK (1 << 7)
|
|
|
/* This symbol was created to point to a section, e.g. ELF's
|
/* This symbol was created to point to a section, e.g. ELF's
|
STT_SECTION symbols. */
|
STT_SECTION symbols. */
|
#define BSF_SECTION_SYM 0x100
|
#define BSF_SECTION_SYM (1 << 8)
|
|
|
/* The symbol used to be a common symbol, but now it is
|
/* The symbol used to be a common symbol, but now it is
|
allocated. */
|
allocated. */
|
#define BSF_OLD_COMMON 0x200
|
#define BSF_OLD_COMMON (1 << 9)
|
|
|
/* The default value for common data. */
|
|
#define BFD_FORT_COMM_DEFAULT_VALUE 0
|
|
|
|
/* In some files the type of a symbol sometimes alters its
|
/* In some files the type of a symbol sometimes alters its
|
location in an output file - ie in coff a @code{ISFCN} symbol
|
location in an output file - ie in coff a @code{ISFCN} symbol
|
which is also @code{C_EXT} symbol appears where it was
|
which is also @code{C_EXT} symbol appears where it was
|
declared and not at the end of a section. This bit is set
|
declared and not at the end of a section. This bit is set
|
by the target BFD part to convey this information. */
|
by the target BFD part to convey this information. */
|
#define BSF_NOT_AT_END 0x400
|
#define BSF_NOT_AT_END (1 << 10)
|
|
|
/* Signal that the symbol is the label of constructor section. */
|
/* Signal that the symbol is the label of constructor section. */
|
#define BSF_CONSTRUCTOR 0x800
|
#define BSF_CONSTRUCTOR (1 << 11)
|
|
|
/* Signal that the symbol is a warning symbol. The name is a
|
/* 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;
|
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
|
if a reference is made to a symbol with the same name as the next
|
symbol, a warning is issued by the linker. */
|
symbol, a warning is issued by the linker. */
|
#define BSF_WARNING 0x1000
|
#define BSF_WARNING (1 << 12)
|
|
|
/* Signal that the symbol is indirect. This symbol is an indirect
|
/* Signal that the symbol is indirect. This symbol is an indirect
|
pointer to the symbol with the same name as the next symbol. */
|
pointer to the symbol with the same name as the next symbol. */
|
#define BSF_INDIRECT 0x2000
|
#define BSF_INDIRECT (1 << 13)
|
|
|
/* BSF_FILE marks symbols that contain a file name. This is used
|
/* BSF_FILE marks symbols that contain a file name. This is used
|
for ELF STT_FILE symbols. */
|
for ELF STT_FILE symbols. */
|
#define BSF_FILE 0x4000
|
#define BSF_FILE (1 << 14)
|
|
|
/* Symbol is from dynamic linking information. */
|
/* Symbol is from dynamic linking information. */
|
#define BSF_DYNAMIC 0x8000
|
#define BSF_DYNAMIC (1 << 15)
|
|
|
/* The symbol denotes a data object. Used in ELF, and perhaps
|
/* The symbol denotes a data object. Used in ELF, and perhaps
|
others someday. */
|
others someday. */
|
#define BSF_OBJECT 0x10000
|
#define BSF_OBJECT (1 << 16)
|
|
|
/* This symbol is a debugging symbol. The value is the offset
|
/* This symbol is a debugging symbol. The value is the offset
|
into the section of the data. BSF_DEBUGGING should be set
|
into the section of the data. BSF_DEBUGGING should be set
|
as well. */
|
as well. */
|
#define BSF_DEBUGGING_RELOC 0x20000
|
#define BSF_DEBUGGING_RELOC (1 << 17)
|
|
|
/* This symbol is thread local. Used in ELF. */
|
/* This symbol is thread local. Used in ELF. */
|
#define BSF_THREAD_LOCAL 0x40000
|
#define BSF_THREAD_LOCAL (1 << 18)
|
|
|
/* This symbol represents a complex relocation expression,
|
/* This symbol represents a complex relocation expression,
|
with the expression tree serialized in the symbol name. */
|
with the expression tree serialized in the symbol name. */
|
#define BSF_RELC 0x80000
|
#define BSF_RELC (1 << 19)
|
|
|
/* This symbol represents a signed complex relocation expression,
|
/* This symbol represents a signed complex relocation expression,
|
with the expression tree serialized in the symbol name. */
|
with the expression tree serialized in the symbol name. */
|
#define BSF_SRELC 0x100000
|
#define BSF_SRELC (1 << 20)
|
|
|
|
/* This symbol was created by bfd_get_synthetic_symtab. */
|
|
#define BSF_SYNTHETIC (1 << 21)
|
|
|
|
/* This symbol is an indirect code object. Unrelated to BSF_INDIRECT.
|
|
The dynamic linker will compute the value of this symbol by
|
|
calling the function that it points to. BSF_FUNCTION must
|
|
also be also set. */
|
|
#define BSF_GNU_INDIRECT_FUNCTION (1 << 22)
|
|
/* This symbol is a globally unique data object. The dynamic linker
|
|
will make sure that in the entire process there is just one symbol
|
|
with this name and type in use. BSF_OBJECT must also be set. */
|
|
#define BSF_GNU_UNIQUE (1 << 23)
|
|
|
flagword flags;
|
flagword flags;
|
|
|
/* A pointer to the section to which this symbol is
|
/* A pointer to the section to which this symbol is
|
relative. This will always be non NULL, there are special
|
relative. This will always be non NULL, there are special
|