Alan Modra
73e87d7038
hash bfd sections for fast lookup and create.
...
bfd/ChangeLog
* bfd.c (struct _bfd): Add section_htab, section_tail.
* libbfd-in.h (_bfd_delete_bfd): Declare.
(bfd_section_hash_newfunc): Declare.
* opncls.c (_bfd_new_bfd): Free memory on failure. Init
section_htab and section_tail.
(_bfd_delete_bfd): New function.
(bfd_openr): Use it.
(bfd_fdopenr): Likewise.
(bfd_openstreamr): Likewise.
(bfd_openw): Likewise.
(bfd_close): Likewise.
(bfd_close_all_done): Likewise.
(bfd_release): Comment.
* section.c (struct section_hash_entry): New.
(bfd_section_hash_newfunc): New function.
(section_hash_lookup): Define.
(bfd_section_init): New function, split out from
bfd_make_section_anyway.
(bfd_get_section_by_name): Lookup via hash table.
(bfd_get_unique_section_name): Likewise.
(bfd_make_section_old_way): Rewrite to use hash table.
(bfd_make_section_anyway): Likewise.
(bfd_make_section): Likewise. Return NULL for attempts to make
BFD_{ABS,COM,UND,IND}_SECTION_NAME.
(_bfd_strip_section_from_output): Adjust section_tail if needed.
* configure.in: Bump bfd version.
* configure: Regenerate.
* libbfd.h: Regenerate.
* bfd-in2.h: Regenerate.
ld/ChangeLog
* emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Adjust
section_tail when fiddling with section list.
(gld${EMULATION_NAME}_list_options): Ensure sentences aren't
broken into separate strings to make translation easier.
* emultempl/mmo.em (mmo_place_orphan): Adjust section_tail when
fiddling with section list.
* emultempl/pe.em (gld_${EMULATION_NAME}_place_orphan): Likewise.
2001-12-17 00:40:53 +00:00
Nick Clifton
84c254c646
Define and use bfd_is_const_section().
2001-11-19 15:35:38 +00:00
Alan Modra
4e6bfe8ada
* section.c (bfd_make_section_anyway): Don't increment section_id
...
and the BFD's section_count if adding the section failed.
* vms.c (vms_new_section_hook): Adjust for bfd_make_section_anyway
change.
2001-11-13 03:52:25 +00:00
Jakub Jelinek
25263aad5c
* section.c (_bfd_strip_section_from_output): Don't count
...
SEC_EXCLUDE sections as references. Set SEC_EXCLUDE.
2001-10-18 08:22:44 +00:00
Kazu Hirata
08da05b004
* aout-encap.c: Fix comment typos.
...
* aoutx.h: Likewise.
* archive.c: Likewise.
* bout.c: Likewise.
* coff64-rs6000.c: Likewise.
* coffcode.h: Likewise.
* coffgen.c: Likewise.
* cofflink.c: Likewise.
* coff-mips.c: Likewise.
* ecoff.c: Likewise.
* elf32-m32r.c: Likewise.
* libcoff-in.h: Likewise.
* libecoff.h: Likewise.
* libxcoff.h: Likewise.
* nlm32-i386.c: Likewise.
* pdp11.c: Likewise.
* section.c: Likewise.
* som.c: Likewise.
* som.h: Likewise.
* bfd-in2.h: Regenerate.
* libcoff.h: Likewise.
2001-10-10 12:08:29 +00:00
Alan Modra
dbb410c3e2
* elf-bfd.h (struct bfd_elf_section_data): Add "group" and
...
"next_in_group". Fix gp and gp_size comments.
* elf.c (union elf_internal_group): New.
(setup_group): New function.
(_bfd_elf_make_section_from_shdr): Set BFD flags for SHT_GROUP.
Call setup_group for SHF_GROUP sections.
(bfd_section_from_shdr): Build a BFD section for SHT_GROUP.
(elf_fake_sections): Set header type for SEC_GROUP, and header
flags for sections in a group.
(set_group_contents): New function.
(_bfd_elf_compute_section_file_positions): Call it.
(assign_section_numbers): Set sh_link for SHT_GROUP.
* elflink.h (gc_mark_hook): Handle section groups.
* elfxx-target.h: Add SEC_GROUP to applicable_flags.
* section.c (SEC_GROUP): Define.
(struct sec): Comment fixes.
* bfd-in2.h: Regenerate.
* elf.c (bfd_elf_print_symbol): Formatting fix; migrate expression
out of function args.
(_bfd_elf_canonicalize_reloc): Similarly.
(_bfd_elf_get_symtab): Here too.
(_bfd_elf_canonicalize_dynamic_symtab): And here.
* elfcode.h (elf_slurp_symbol_table): Don't recalculate size for
bfd_bread, and remove unnecessary cast.
2001-10-09 06:05:17 +00:00
Alan Modra
862517b650
* section.c (struct sec): Remove kept_section.
...
(STD_SECTION): Remove kept_section initialisation.
(bfd_make_section_anyway): Here too.
* ecoff.c (bfd_debug_section): Remove kept_section initialisation.
* cofflink.c (_bfd_coff_link_input_bfd): Don't test kept_section.
* elflink.h (elf_link_input_bfd): Set discarded link-once section
symbols to zero, and remove all code involved with kept_section
and tracking section symbol values.
* bfd-in2.h: Regenerate.
* configure.in: Bump version number.
* configure: Regenerate.
* ldlang.c (section_already_linked): Remove assignment to kept_section.
2001-09-29 12:07:01 +00:00
Richard Henderson
65db3b0dbf
* section.c (SEC_ARCH_BIT_0): New; replace unused SEC_BALIGN.
...
* bfd-in2.h: Rebuild.
2001-09-28 20:51:15 +00:00
Alan Modra
dc810e3900
Touches most files in bfd/, so likely will be blamed for everything..
...
o bfd_read and bfd_write lose an unnecessary param and become
bfd_bread and bfd_bwrite.
o bfd_*alloc now all take a bfd_size_type arg, and will error if
size_t is too small. eg. 32 bit host, 64 bit bfd, verrry big files
or bugs in linker scripts etc.
o file_ptr becomes a bfd_signed_vma. Besides matching sizes with
various other types involved in handling sections, this should make
it easier for bfd to support a 64 bit off_t on 32 bit hosts that
provide it.
o I've made the H_GET_* and H_PUT_* macros (which invoke bfd_h_{get,put}_*)
generally available. They now cast their args to bfd_vma and
bfd_byte * as appropriate, which removes a swag of casts from the
source.
o Bug fixes to bfd_get8, aix386_core_vec, elf32_h8_relax_section, and
aout-encap.c.
o Zillions of formatting and -Wconversion fixes.
2001-09-18 09:57:26 +00:00
Hans-Peter Nilsson
2f484710e6
* section.c (_bfd_strip_section_from_output): Handle NULL
...
output_section.
2001-06-02 19:05:34 +00:00
Alan Modra
d1778b88f8
Add a flag to asection, linker_has_input, and use it to reliably
...
determine whether an input section is the first one assigned to
an output section.
2001-05-17 03:58:45 +00:00
Jakub Jelinek
767e4b0d59
* section.c (STD_SECTION): Add entsize.
2001-04-14 14:23:31 +00:00
H.J. Lu
2dd439c54e
2001-04-13 H.J. Lu <hjl@gnu.org>
...
* section.c (SEC_MERGE): Define new flag for merging.
(SEC_STRINGS): Likewise.
(entsize): New field.
2001-04-14 04:13:00 +00:00
Nick Clifton
7898dedac0
Update copyright notices
2001-03-08 21:04:02 +00:00
Kazu Hirata
7b82c249fa
2000-12-19 Kazu Hirata <kazu@hxi.com>
...
* sco5-core.c: Fix formatting.
* section.c: Likewise.
* sparclinux.c: Likewise.
* sparclynx.c: Likewise.
* sparcnetbsd.c: Likewise.
* srec.c: Likewise.
* stabs.c: Likewise.
* stab-syms.c: Likewise.
* sunos.c: Likewise.
* syms.c: Likewise.
* sysdep.h: Likewise.
2000-12-20 00:21:57 +00:00
Phil Blundell
90460d9725
2000-11-09 Philip Blundell <pb@futuretv.com>
...
* section.c (STD_SECTION): Set gc_mark flag.
2000-11-13 10:01:13 +00:00
Richard Henderson
9a951beb03
* elf64-ia64.c (elf64_ia64_final_link): New local unwind_output_sec.
...
Set it before bfd_elf64_bfd_final_link call. Use it after the call.
* section.c (bfd_set_section_contents): Call memcpy if
section->contents set and location not equal to contents plus offset.
2000-11-08 07:54:31 +00:00
Alan Modra
24376d1b58
Another try at correcting relocations against discarded
...
link-once section symbols.
2000-10-12 03:44:51 +00:00
Alan Modra
4d7ce4dd48
* section.c (bfd_make_section_anyway): Release newsect ptr when
...
newsect->symbol fails to alloc. Use bfd_release instead of free.
2000-10-10 15:23:38 +00:00
Alan Modra
b3ea35849f
Handle out of memory situations.
2000-09-20 04:20:26 +00:00
Alan Modra
77cb06e9d4
(bfd_get_unique_section_name): Put a dot before the numeric suffix.
2000-09-08 02:11:34 +00:00
Alan Modra
a966dba9da
`template' isn't a very good name for a variable.
...
Who invented c++ anyway?
2000-09-06 00:22:01 +00:00
Alan Modra
1bd916895e
(SEC_HAS_GOT_REF): Define new flag for asection.
...
(bfd_get_unique_section_name): New function.
2000-09-05 02:42:16 +00:00
Nick Clifton
bc67d8a6e3
Restore reverted code. Fix bug in reverted code which was eliminating too
...
many segments.
2000-08-03 19:40:29 +00:00
H.J. Lu
c0f7859bc6
2000-08-03 H.J. Lu <hjl@gnu.org>
...
* section.c: Back out the change made by Nick Clifton
<nickc@cygnus.com> on 2000-07-31. It breaks stripping dynamic
binaries.
* bfd-in2.h: Likewise.
* elf.c: Likewise.
2000-08-03 13:50:35 +00:00
Nick Clifton
5c440b1e3b
Improve section to segment mapping code.
2000-07-31 18:45:26 +00:00
Alan Modra
3df7b4e2d2
Avoid negative section sequence ids.
2000-07-10 02:05:40 +00:00
Alan Modra
52b219b5e4
Add sequence id field to asection.
...
Tidy comments and replace deprecated CONST with const.
2000-07-08 12:08:43 +00:00
Nick Clifton
60bcf0fa8c
Applied Stephane Carrez <Stephane.Carrez@worldnet.fr> patches to add support
...
for m68hc11 and m68hc12 processors.
2000-06-19 01:22:44 +00:00
Timothy Wall
34cbe64ecf
SEC_BLOCK, SEC_CLINK, and C_STATLAB added (TI COFF support).
2000-04-07 00:58:07 +00:00
Alan Modra
f6af82bd44
This lot mainly cleans up `comparison between signed and unsigned' gcc
...
warnings. One usused var, and a macro parenthesis fix too. Also check
input sections are elf when doing gc in elflink.h.
2000-02-21 12:01:27 +00:00
Ian Lance Taylor
7f8d5fc90b
* section.c (_bfd_strip_section_from_output): Add info parameter.
...
If it passed as non-NULL, use it to check whether any input BFD
has an input section which uses this output section. Change all
callers.
* bfd-in2.h: Rebuild.
* bfd-in.h: Move declarations of bfd_get_elf_phdr_upper_bound and
bfd_get_elf_phdrs in from bfd-in2.h, correcting patch of
1999-11-29.
* bfd-in2.h: Rebuild.
2000-02-13 22:45:29 +00:00
Nick Clifton
9a968f4332
Apply Tim walls octest vs bytes patch
2000-01-13 22:10:36 +00:00
Ian Lance Taylor
022a5af495
1999-09-06 Donn Terry <donn@interix.com>
...
* section.c (struct bfd_comdat_info): Define.
(asection): Add comdat field.
(STD_SECTION): Initialize comdat field.
(bfd_make_section_anyway): Likewise.
* bfd-in2.h: Rebuild.
1999-09-06 18:34:29 +00:00
Ian Lance Taylor
851edbafcc
* section.c (SEC_SMALL_DATA): Rename from SEC_SHORT.
...
* bfd-in2.h: Rebuild.
1999-08-09 03:20:31 +00:00
Ian Lance Taylor
bd826630b1
1999-08-08 Mumit Khan <khan@xraylith.wisc.edu>
...
* section.c (SEC_SHARED): Define.
* coffcode.h (sec_to_styp_flags): Handle SEC_SHARED.
(styp_to_sec_flags): Likewise.
* peicode.h (coff_swap_scnhdr_out): Likewise.
* bfd-in2.h: Rebuild.
1999-08-08 Ian Lance Taylor <ian@zembu.com>
* coffcode.h (coff_classify_symbol): Comment out part of
1999-08-05 change which breaks cygwin DLLs.
1999-08-08 16:50:27 +00:00
Ian Lance Taylor
22bc497dda
* section.c (global_syms): Only initialize union field if
...
__STDC__.
1999-08-06 23:31:14 +00:00
Ian Lance Taylor
7442e600c8
* Many files: Changes to avoid gcc warnings: Add ATTRIBUTE_UNUSED
...
as appropriate. Fill in structure initializations. Add variable
initializations. Add casts.
* dwarf1.c (parse_line_table): Change eachLine to unsigned long.
(dwarf1_unit_find_nearest_line): Change i to unsigned long.
1999-07-11 19:49:48 +00:00
Richard Henderson
0bde07d41a
* section.c (_bfd_strip_section_from_output): Ignore sections
...
DISCARDed by the link script.
1999-06-20 14:15:42 +00:00
Richard Henderson
0c3ff40b22
* section.c (SEC_SHORT): Define.
...
* bfd-in2.h: Rebuild.
1999-06-15 15:12:23 +00:00
Richard Henderson
9d7428a9e3
* section.c (_bfd_strip_section_from_output): Remove output
...
sections with no initial link_order.
1999-06-07 23:22:00 +00:00
Richard Henderson
252b5132c7
19990502 sourceware import
1999-05-03 07:29:11 +00:00