* bfdlink.h (struct bfd_link_info): Use ENUM_BITFIELD for strip,
	discard, common_skip_ar_symbols, unresolved_syms_in_objects, and
	unresolved_syms_in_shared_libs fields.  Move emit_note_gnu_build_id
	out of bitfields.  Reorder bitfields.
bfd/
	* configure.in: Bump version.
	* configure: Regenerate.
This commit is contained in:
Alan Modra 2011-07-15 02:36:36 +00:00
parent 953b98d1cf
commit 05aecedb60
5 changed files with 126 additions and 115 deletions

View File

@ -1,3 +1,8 @@
2011-07-15 Alan Modra <amodra@gmail.com>
* configure.in: Bump version.
* configure: Regenerate.
2011-07-14 Alan Modra <amodra@gmail.com>
* linker.c (_bfd_generic_section_already_linked): Set l_flags.

2
bfd/configure vendored
View File

@ -3988,7 +3988,7 @@ fi
# Define the identity of the package.
PACKAGE=bfd
VERSION=2.21.52
VERSION=2.21.53
cat >>confdefs.h <<_ACEOF

View File

@ -8,7 +8,7 @@ AC_CONFIG_SRCDIR([libbfd.c])
AC_CANONICAL_TARGET
AC_ISC_POSIX
AM_INIT_AUTOMAKE(bfd, 2.21.52)
AM_INIT_AUTOMAKE(bfd, 2.21.53)
dnl These must be called before LT_INIT, because it may want
dnl to call AC_CHECK_PROG.

View File

@ -1,7 +1,13 @@
2011-07-15 Alan Modra <amodra@gmail.com>
* bfdlink.h (struct bfd_link_info): Use ENUM_BITFIELD for strip,
discard, common_skip_ar_symbols, unresolved_syms_in_objects, and
unresolved_syms_in_shared_libs fields. Move emit_note_gnu_build_id
out of bitfields. Reorder bitfields.
2011-07-13 Sriraman Tallam <tmsriram@google.com>
* plugin-api.h
(ld_plugin_section): New struct.
* plugin-api.h (ld_plugin_section): New struct.
(ld_plugin_get_section_count): New typedef.
(ld_plugin_get_section_type): New typedef.
(ld_plugin_get_section_name): New typedef.

View File

@ -251,110 +251,91 @@ struct bfd_elf_dynamic_list;
struct bfd_link_info
{
/* TRUE if BFD should generate a shared object (or a pie). */
unsigned int shared: 1;
/* TRUE if generating an executable, position independent or not. */
unsigned int executable : 1;
/* TRUE if generating a position independent executable. */
unsigned int pie: 1;
/* TRUE if BFD should generate a relocatable object file. */
unsigned int relocatable: 1;
/* TRUE if BFD should generate relocation information in the final
executable. */
unsigned int emitrelocations: 1;
/* TRUE if BFD should generate a "task linked" object file,
similar to relocatable but also with globals converted to
statics. */
unsigned int task_link: 1;
/* TRUE if BFD should generate a shared object. */
unsigned int shared: 1;
/* TRUE if BFD should pre-bind symbols in a shared object. */
unsigned int symbolic: 1;
/* TRUE if BFD should export all symbols in the dynamic symbol table
of an executable, rather than only those used. */
unsigned int export_dynamic: 1;
/* TRUE if shared objects should be linked directly, not shared. */
unsigned int static_link: 1;
/* TRUE if the output file should be in a traditional format. This
is equivalent to the setting of the BFD_TRADITIONAL_FORMAT flag
on the output file, but may be checked when reading the input
files. */
unsigned int traditional_format: 1;
/* TRUE if we want to produced optimized output files. This might
need much more time and therefore must be explicitly selected. */
unsigned int optimize: 1;
/* TRUE if ok to have multiple definition. */
unsigned int allow_multiple_definition: 1;
/* TRUE if ok to have version with no definition. */
unsigned int allow_undefined_version: 1;
/* TRUE if a default symbol version should be created and used for
exported symbols. */
unsigned int create_default_symver: 1;
/* TRUE if a default symbol version should be created and used for
imported symbols. */
unsigned int default_imported_symver: 1;
/* TRUE if symbols should be retained in memory, FALSE if they
should be freed and reread. */
unsigned int keep_memory: 1;
/* TRUE if every symbol should be reported back via the notice
callback. */
unsigned int notice_all: 1;
/* TRUE if executable should not contain copy relocs.
Setting this true may result in a non-sharable text segment. */
unsigned int nocopyreloc: 1;
/* TRUE if the new ELF dynamic tags are enabled. */
unsigned int new_dtags: 1;
/* TRUE if BFD should export all symbols in the dynamic symbol table
of an executable, rather than only those used. */
unsigned int export_dynamic: 1;
/* TRUE if non-PLT relocs should be merged into one reloc section
and sorted so that relocs against the same symbol come together. */
unsigned int combreloc: 1;
/* TRUE if a default symbol version should be created and used for
exported symbols. */
unsigned int create_default_symver: 1;
/* TRUE if unreferenced sections should be removed. */
unsigned int gc_sections: 1;
/* TRUE if every symbol should be reported back via the notice
callback. */
unsigned int notice_all: 1;
/* TRUE if we are loading LTO outputs. */
unsigned int loading_lto_outputs: 1;
/* TRUE if global symbols in discarded sections should be stripped. */
unsigned int strip_discarded: 1;
/* TRUE if all data symbols should be dynamic. */
unsigned int dynamic_data: 1;
/* Which symbols to strip. */
ENUM_BITFIELD (bfd_link_strip) strip : 2;
/* Which local symbols to discard. */
ENUM_BITFIELD (bfd_link_discard) discard : 2;
/* Criteria for skipping symbols when determining
whether to include an object from an archive. */
ENUM_BITFIELD (bfd_link_common_skip_ar_symbols) common_skip_ar_symbols : 2;
/* What to do with unresolved symbols in an object file.
When producing executables the default is GENERATE_ERROR.
When producing shared libraries the default is IGNORE. The
assumption with shared libraries is that the reference will be
resolved at load/execution time. */
ENUM_BITFIELD (report_method) unresolved_syms_in_objects : 2;
/* What to do with unresolved symbols in a shared library.
The same defaults apply. */
ENUM_BITFIELD (report_method) unresolved_syms_in_shared_libs : 2;
/* TRUE if shared objects should be linked directly, not shared. */
unsigned int static_link: 1;
/* TRUE if symbols should be retained in memory, FALSE if they
should be freed and reread. */
unsigned int keep_memory: 1;
/* TRUE if BFD should generate relocation information in the final
executable. */
unsigned int emitrelocations: 1;
/* TRUE if PT_GNU_RELRO segment should be created. */
unsigned int relro: 1;
/* TRUE if .eh_frame_hdr section and PT_GNU_EH_FRAME ELF segment
should be created. */
unsigned int eh_frame_hdr: 1;
/* TRUE if global symbols in discarded sections should be stripped. */
unsigned int strip_discarded: 1;
/* TRUE if generating a position independent executable. */
unsigned int pie: 1;
/* TRUE if generating an executable, position independent or not. */
unsigned int executable : 1;
/* TRUE if PT_GNU_STACK segment should be created with PF_R|PF_W|PF_X
flags. */
unsigned int execstack: 1;
/* TRUE if PT_GNU_STACK segment should be created with PF_R|PF_W
flags. */
unsigned int noexecstack: 1;
/* TRUE if PT_GNU_RELRO segment should be created. */
unsigned int relro: 1;
/* TRUE if we should warn when adding a DT_TEXTREL to a shared object. */
unsigned int warn_shared_textrel: 1;
/* TRUE if we should warn alternate ELF machine code. */
unsigned int warn_alternate_em: 1;
/* TRUE if unreferenced sections should be removed. */
unsigned int gc_sections: 1;
/* TRUE if user shoudl be informed of removed unreferenced sections. */
unsigned int print_gc_sections: 1;
/* TRUE if .hash section should be created. */
unsigned int emit_hash: 1;
@ -366,43 +347,59 @@ struct bfd_link_info
caching ELF symbol buffer. */
unsigned int reduce_memory_overheads: 1;
/* TRUE if all data symbols should be dynamic. */
unsigned int dynamic_data: 1;
/* TRUE if the output file should be in a traditional format. This
is equivalent to the setting of the BFD_TRADITIONAL_FORMAT flag
on the output file, but may be checked when reading the input
files. */
unsigned int traditional_format: 1;
/* TRUE if some symbols have to be dynamic, controlled by
--dynamic-list command line options. */
unsigned int dynamic: 1;
/* TRUE if non-PLT relocs should be merged into one reloc section
and sorted so that relocs against the same symbol come together. */
unsigned int combreloc: 1;
/* TRUE if a default symbol version should be created and used for
imported symbols. */
unsigned int default_imported_symver: 1;
/* TRUE if the new ELF dynamic tags are enabled. */
unsigned int new_dtags: 1;
/* FALSE if .eh_frame unwind info should be generated for PLT and other
linker created sections, TRUE if it should be omitted. */
unsigned int no_ld_generated_unwind_info: 1;
/* TRUE if we are loading LTO outputs. */
unsigned int loading_lto_outputs: 1;
/* TRUE if BFD should generate a "task linked" object file,
similar to relocatable but also with globals converted to
statics. */
unsigned int task_link: 1;
/* Non-NULL if .note.gnu.build-id section should be created. */
char *emit_note_gnu_build_id;
/* TRUE if ok to have multiple definition. */
unsigned int allow_multiple_definition: 1;
/* What to do with unresolved symbols in an object file.
When producing executables the default is GENERATE_ERROR.
When producing shared libraries the default is IGNORE. The
assumption with shared libraries is that the reference will be
resolved at load/execution time. */
enum report_method unresolved_syms_in_objects;
/* TRUE if ok to have version with no definition. */
unsigned int allow_undefined_version: 1;
/* What to do with unresolved symbols in a shared library.
The same defaults apply. */
enum report_method unresolved_syms_in_shared_libs;
/* TRUE if some symbols have to be dynamic, controlled by
--dynamic-list command line options. */
unsigned int dynamic: 1;
/* Which symbols to strip. */
enum bfd_link_strip strip;
/* TRUE if PT_GNU_STACK segment should be created with PF_R|PF_W|PF_X
flags. */
unsigned int execstack: 1;
/* Which local symbols to discard. */
enum bfd_link_discard discard;
/* TRUE if PT_GNU_STACK segment should be created with PF_R|PF_W
flags. */
unsigned int noexecstack: 1;
/* Criteria for skipping symbols when determining
whether to include an object from an archive. */
enum bfd_link_common_skip_ar_symbols common_skip_ar_symbols;
/* TRUE if we want to produced optimized output files. This might
need much more time and therefore must be explicitly selected. */
unsigned int optimize: 1;
/* TRUE if user should be informed of removed unreferenced sections. */
unsigned int print_gc_sections: 1;
/* TRUE if we should warn alternate ELF machine code. */
unsigned int warn_alternate_em: 1;
/* Char that may appear as the first char of a symbol, but should be
skipped (like symbol_leading_char) when looking up symbols in
@ -439,6 +436,9 @@ struct bfd_link_info
bfd *input_bfds;
bfd **input_bfds_tail;
/* Non-NULL if .note.gnu.build-id section should be created. */
char *emit_note_gnu_build_id;
/* If a symbol should be created for each input BFD, this is section
where those symbols should be placed. It must be a section in
the output BFD. It may be NULL, in which case no such symbols