aboutsummaryrefslogtreecommitdiff
path: root/bfd/ChangeLog
blob: e95e50fca708789d241ff63a14657c7f4f9474b7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
2008-01-28  Alan Modra  <amodra@bigpond.net.au>

	Rewrite SPU overlay handling code.  Put overlay calls stubs in the
	overlays where possible.  Use a faster call stub, or optionally at
	compile time, a more compact stub.  Double size of _ovly_buf_table
	so that low bit of _ovly_table.buf can be used as a "present" bit.
	Reserve an extra _ovly_table entry for index zero.
	* elf32-spu.c: (struct spu_link_hash_table): Delete a number of fields,
	add new ones.
	(struct got_entry): New.
	(struct spu_stub_hash_entry): Delete.
	(stub_hash_newfunc, spu_elf_link_hash_table_free): Delete.
	(spu_elf_link_hash_table_create): Adjust for struct changes.
	(spu_stub_name): Delete.
	(spu_elf_find_overlays): Don't track sections from overlay regions.
	Instead set ovl_buf number in spu elf section data.  Error if
	overlays in one region don't start at the same address.  Adjust
	for struct _spu_elf_section_data changes.
	(SIZEOF_STUB1, SIZEOF_STUB2, ILA_79, ILA_78): Delete.
	(OVL_STUB_SIZE, BRSL, LNOP, ILA): Define.
	(needs_ovl_stub): Adjust for struct _spu_elf_section_data changes.
	(enum _insn_type): New.
	(count_stub, build_stub): New functions.
	(allocate_spuear_stubs): Use count_stub.
	(build_spuear_stubs): Use build_stub.
	(populate_stubs, sort_stubs): Delete.
	(process_stubs): New function.
	(write_one_stub): Delete.
	(spu_elf_size_stubs, spu_elf_build_stubs): Rewrite.
	(alloc_stack_info): Adjust for struct _spu_elf_section_data changes.
	(maybe_insert_function, check_function_ranges): Likewise.
	(find_function, pasted_function, build_call_tree): Likewise.
	(spu_elf_stack_analysis, spu_elf_modify_segment_map): Likewise.
	(spu_elf_modify_program_headers): Likewise.
	(interesting_section): Detect stub sections differently.  Delete
	htab param, adjust all callers.
	(spu_elf_relocate_section): Rewrite stub handling.
	(spu_elf_output_symbol_hook): Likewise.
	(bfd_elf32_bfd_link_hash_table_free): Delete.
	* elf32-spu.h (struct _spu_elf_section_data): Move input-only and
	output-only fields into a union.  Add ovl_buf.
	(spu_elf_size_stubs, spu_elf_build_stubs): Update prototypes.

2008-01-25  DJ Delorie  <dj@redhat.com>

	* elf32-m32c.c (_bfd_m32c_elf_eh_frame_address_size): New.

2008-01-25  Kai Tietz  <kai.tietz@onevision.com>

	* bfd-in.h: Add mingw I64 support.
	* bfd-in2.h: Regenerated.
	* bfd.c: (bfd_get_sign_extend_vma): Add pe-x86-64 and pei-x86-64.

2008-01-21  Alan Modra  <amodra@bigpond.net.au>

	PR 4453
	* format.c (bfd_check_format_matches): Don't accept archives as
	fully matching unless they have a map.

2008-01-21  Alan Modra  <amodra@bigpond.net.au>

	* elflink.c (_bfd_elf_link_output_relocs): Correct error return.

2008-01-21  Alan Modra  <amodra@bigpond.net.au>

	* ecoff.c (_bfd_ecoff_archive_p): Delete.
	* libecoff.h (_bfd_ecoff_archive_p): Delete.
	* coff-alpha.c (ecoffalpha_little_vec): Use bfd_generic_archive_p.
	* coff-mips.c (ecoff_little_vec, ecoff_big_vec): Likewise.
	(ecoff_biglittle_vec): Likewise.

2008-01-19  Alan Modra  <amodra@bigpond.net.au>

	PR 5646
	* elf64-ppc.c (ppc64_elf_tls_optimize): Ensure htab->tls_get_addr
	non-NULL before dereferencing.

2008-01-15  Alan Modra  <amodra@bigpond.net.au>

	PR 5604
	* elf-bfd.h (struct elf_backend_data): Add gc_keep.  Remove param
	names from others.
	(_bfd_elf_gc_keep): Declare.
	* elfxx-target.h (elf_backend_gc_keep): Define.
	(elfNN_bed): Init new field.
	* elflink.c (_bfd_elf_gc_keep): New function.
	(bfd_elf_gc_sections): Call gc_keep.
	* elf64-ppc.c (elf_backend_gc_keep): Define.
	(struct _ppc64_elf_section_data): Move .opd related fields to
	a struct so they don't occupy the same storage.  Adjust accesses
	throughout file.
	(ppc64_elf_gc_keep): New function, split out from..
	(ppc64_elf_gc_mark_hook): ..here.  Don't call _bfd_elf_gc_mark
	to mark .opd section, just set gc_mark.
	(ppc64_elf_edit_opd): Remove no_opd_opt parm.  Don't set opd->adjust
	unless we are changing .opd.  Test non-NULL opd->adjust at all
	accesses throughout file.
	* elf64-ppc.h (ppc64_elf_edit_opd): Update prototype.

2008-01-15  Alan Modra  <amodra@bigpond.net.au>

	* bfd-in.h (BFD_HOST_LONG_LONG): Delete.
	* bfd-in2.h: Regenerate.

2008-01-11  Tristan Gingold  <gingold@adacore.com>
	    Eric Botcazou  <ebotcazou@adacore.com>

	* elf32-ppc.c (ppc_elf_gc_sweep_hook): Exit early if generating a
	relocatable.
	* elf32-arm.c (elf32_arm_gc_sweep_hook): Likewise.
	* elf32-cris.c (cris_elf_gc_sweep_hook): Likewise.
	* elf32-hppa.c (elf32_hppa_gc_sweep_hook): Likewise.
	* elf32-i386.c (elf_i386_gc_sweep_hook): Likewise.
	* elf32-m32r.c (m32r_elf_gc_sweep_hook): Likewise.
	* elf32-m68k.c (elf_m68k_gc_sweep_hook): Likewise.
	* elf32-s390.c (elf_s390_gc_sweep_hook): Likewise.
	* elf32-sh.c (sh_elf_gc_sweep_hook): Likewise.
	* elf32-vax.c (elf_vax_gc_sweep_hook): Likewise.
	* elf32-xtensa.c (elf_xtensa_gc_sweep_hook): Likewise.
	* elf64-x86-64.c (elf64_x86_64_gc_sweep_hook): Likewise.
	* elf64-s390.c (elf_s390_gc_sweep_hook): Likewise.
	* elf64-ppc.c (ppc64_elf_gc_sweep_hook): Likewise.
	* elfxx-mips.c (_bfd_mips_elf_gc_sweep_hook): Likewise.
	* elfxx-sparc.c (_bfd_sparc_elf_gc_sweep_hook): Likewise.
	* elflink.c (bfd_elf_gc_sections): Do not punt on relocatable output
	or executable output with relocations.

2008-01-09  Nick Clifton  <nickc@redhat.com>

	PR gas/5552
	* elf32-fr30.c (fr30_elf_howto_table): Set partial_inplace field
	to FALSE for all relocs.

2008-01-09  Richard Sandiford  <rsandifo@nildram.co.uk>

	PR ld/5526
	* elf-bfd.h (eh_cie_fde): Add u.cie.u.full_cie and u.cie.merged
	fields.  Rename u.cie.u.merged to u.cie.u.merged_with.
	(eh_frame_sec_info): Add a cies field.
	(eh_frame_hdr_info): Add a merge_cies field.
	* elf-eh-frame.c (cie): Add a reloc_index member to the personality
	union.
	(_bfd_elf_begin_eh_frame_parsing): Set hdr_info->merge_cies instead
	of hdr_info->cies.
	(_bfd_elf_parse_eh_frame): Remove tmp_cie.  Ccreate an array of
	cie structures in all cases and use it instead of extended_cies.
	If merging, store the cie array in sec_info->cies and point each
	CIE's eh_fde_cie at the associated element.  Do not try to
	calculate the value of the personality routine here; record the
	offset of the relocation instead.  Do not merge CIEs here.
	(_bfd_elf_end_eh_frame_parsing): Do not free hdr_info->cies here...
	(_bfd_elf_discard_section_eh_frame_hdr): ...do it here instead.
	(_bfd_elf_gc_mark_fdes): Mark the original (unmerged) CIE.
	(find_merged_cie): New function.
	(_bfd_elf_gc_mark_fdes): Use it.  Free sec_info->cies.

2008-01-07  Nick Clifton  <nickc@redhat.com>

	PR binutils/5535
	* vms.c (vms_close_and_cleanup): Check for the presence of a
	vms_private_data_struct before examining any of its fields.

2008-01-07  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/5522
	* elflink.c (elf_link_input_bfd): Don't write out a section if
	its output section is marked with SEC_NEVER_LOAD.

For older changes see ChangeLog-2007

Local Variables:
mode: change-log
left-margin: 8
fill-column: 74
version-control: never
End: