| Index: bfd/doc/section.texi
|
| diff --git a/bfd/doc/section.texi b/bfd/doc/section.texi
|
| index 501370101a9fee74033b5f7e3e6bae162c02da04..cc6ee94ffaa163b92a3714a6b4ea6dc980dc5f6b 100644
|
| --- a/bfd/doc/section.texi
|
| +++ b/bfd/doc/section.texi
|
| @@ -339,11 +339,11 @@ typedef struct bfd_section
|
|
|
| /* Type of sec_info information. */
|
| unsigned int sec_info_type:3;
|
| -#define ELF_INFO_TYPE_NONE 0
|
| -#define ELF_INFO_TYPE_STABS 1
|
| -#define ELF_INFO_TYPE_MERGE 2
|
| -#define ELF_INFO_TYPE_EH_FRAME 3
|
| -#define ELF_INFO_TYPE_JUST_SYMS 4
|
| +#define SEC_INFO_TYPE_NONE 0
|
| +#define SEC_INFO_TYPE_STABS 1
|
| +#define SEC_INFO_TYPE_MERGE 2
|
| +#define SEC_INFO_TYPE_EH_FRAME 3
|
| +#define SEC_INFO_TYPE_JUST_SYMS 4
|
|
|
| /* Nonzero if this section uses RELA relocations, rather than REL. */
|
| unsigned int use_rela_p:1;
|
| @@ -473,9 +473,6 @@ typedef struct bfd_section
|
| /* The BFD which owns the section. */
|
| bfd *owner;
|
|
|
| - /* INPUT_SECTION_FLAGS if specified in the linker script. */
|
| - struct flag_info *section_flag_info;
|
| -
|
| /* A symbol which points at this section only. */
|
| struct bfd_symbol *symbol;
|
| struct bfd_symbol **symbol_ptr_ptr;
|
| @@ -503,28 +500,25 @@ struct relax_table @{
|
|
|
| /* These sections are global, and are managed by BFD. The application
|
| and target back end are not permitted to change the values in
|
| - these sections. New code should use the section_ptr macros rather
|
| - than referring directly to the const sections. The const sections
|
| - may eventually vanish. */
|
| + these sections. */
|
| +extern asection std_section[4];
|
| +
|
| #define BFD_ABS_SECTION_NAME "*ABS*"
|
| #define BFD_UND_SECTION_NAME "*UND*"
|
| #define BFD_COM_SECTION_NAME "*COM*"
|
| #define BFD_IND_SECTION_NAME "*IND*"
|
|
|
| -/* The absolute section. */
|
| -extern asection bfd_abs_section;
|
| -#define bfd_abs_section_ptr ((asection *) &bfd_abs_section)
|
| -#define bfd_is_abs_section(sec) ((sec) == bfd_abs_section_ptr)
|
| -/* Pointer to the undefined section. */
|
| -extern asection bfd_und_section;
|
| -#define bfd_und_section_ptr ((asection *) &bfd_und_section)
|
| -#define bfd_is_und_section(sec) ((sec) == bfd_und_section_ptr)
|
| /* Pointer to the common section. */
|
| -extern asection bfd_com_section;
|
| -#define bfd_com_section_ptr ((asection *) &bfd_com_section)
|
| +#define bfd_com_section_ptr (&std_section[0])
|
| +/* Pointer to the undefined section. */
|
| +#define bfd_und_section_ptr (&std_section[1])
|
| +/* Pointer to the absolute section. */
|
| +#define bfd_abs_section_ptr (&std_section[2])
|
| /* Pointer to the indirect section. */
|
| -extern asection bfd_ind_section;
|
| -#define bfd_ind_section_ptr ((asection *) &bfd_ind_section)
|
| +#define bfd_ind_section_ptr (&std_section[3])
|
| +
|
| +#define bfd_is_und_section(sec) ((sec) == bfd_und_section_ptr)
|
| +#define bfd_is_abs_section(sec) ((sec) == bfd_abs_section_ptr)
|
| #define bfd_is_ind_section(sec) ((sec) == bfd_ind_section_ptr)
|
|
|
| #define bfd_is_const_section(SEC) \
|
| @@ -639,8 +633,8 @@ extern asection bfd_ind_section;
|
| /* vma, lma, size, rawsize, compressed_size, relax, relax_count, */ \
|
| 0, 0, 0, 0, 0, 0, 0, \
|
| \
|
| - /* output_offset, output_section, alignment_power, */ \
|
| - 0, (struct bfd_section *) &SEC, 0, \
|
| + /* output_offset, output_section, alignment_power, */ \
|
| + 0, &SEC, 0, \
|
| \
|
| /* relocation, orelocation, reloc_count, filepos, rel_filepos, */ \
|
| NULL, NULL, 0, 0, 0, \
|
| @@ -654,9 +648,6 @@ extern asection bfd_ind_section;
|
| /* target_index, used_by_bfd, constructor_chain, owner, */ \
|
| 0, NULL, NULL, NULL, \
|
| \
|
| - /* flag_info, */ \
|
| - NULL, \
|
| - \
|
| /* symbol, symbol_ptr_ptr, */ \
|
| (struct bfd_symbol *) SYM, &SEC.symbol, \
|
| \
|
| @@ -687,14 +678,29 @@ hash table entries.
|
| asection *bfd_get_section_by_name (bfd *abfd, const char *name);
|
| @end example
|
| @strong{Description}@*
|
| -Run through @var{abfd} and return the one of the
|
| -@code{asection}s whose name matches @var{name}, otherwise @code{NULL}.
|
| -@xref{Sections}, for more information.
|
| -
|
| -This should only be used in special cases; the normal way to process
|
| -all sections of a given name is to use @code{bfd_map_over_sections} and
|
| -@code{strcmp} on the name (or better yet, base it on the section flags
|
| -or something else) for each section.
|
| +Return the most recently created section attached to @var{abfd}
|
| +named @var{name}. Return NULL if no such section exists.
|
| +
|
| +@findex bfd_get_next_section_by_name
|
| +@subsubsection @code{bfd_get_next_section_by_name}
|
| +@strong{Synopsis}
|
| +@example
|
| +asection *bfd_get_next_section_by_name (asection *sec);
|
| +@end example
|
| +@strong{Description}@*
|
| +Given @var{sec} is a section returned by @code{bfd_get_section_by_name},
|
| +return the next most recently created section attached to the same
|
| +BFD with the same name. Return NULL if no such section exists.
|
| +
|
| +@findex bfd_get_linker_section
|
| +@subsubsection @code{bfd_get_linker_section}
|
| +@strong{Synopsis}
|
| +@example
|
| +asection *bfd_get_linker_section (bfd *abfd, const char *name);
|
| +@end example
|
| +@strong{Description}@*
|
| +Return the linker created section attached to @var{abfd}
|
| +named @var{name}. Return NULL if no such section exists.
|
|
|
| @findex bfd_get_section_by_name_if
|
| @subsubsection @code{bfd_get_section_by_name_if}
|
|
|