Commit | Line | Data |
---|---|---|
ce23608f AM |
1 | 2012-10-29 Alan Modra <amodra@gmail.com> |
2 | ||
3 | * configure.tgt (powerpcle-pe,winnt,cygwin): Add deffilep.o | |
4 | and pe-dll.o. | |
5 | ||
4f9d22a0 L |
6 | 2012-10-24 H.J. Lu <hongjiu.lu@intel.com> |
7 | ||
8 | * ld.h (command_line): Remove | |
9 | disable_target_specific_optimizations. | |
10 | (RELAXATION_DISABLED_BY_DEFAULT): Removed. | |
11 | (RELAXATION_DISABLED_BY_USER): Likewise. | |
12 | (RELAXATION_ENABLED): Likewise. | |
13 | (DISABLE_RELAXATION): Likewise. | |
14 | (ENABLE_RELAXATION): Likewise. | |
15 | ||
16 | * ldmain.c (main): Updated. | |
17 | ||
18 | * ldmain.h (RELAXATION_DISABLED_BY_DEFAULT): New macro. | |
19 | (RELAXATION_DISABLED_BY_USER): Likewise. | |
20 | (RELAXATION_ENABLED): Likewise. | |
21 | (DISABLE_RELAXATION): Likewise. | |
22 | (ENABLE_RELAXATION): Likewise. | |
23 | ||
04c3a755 NS |
24 | 2012-10-23 Nathan Sidwell <nathan@codesourcery.com> |
25 | ||
26 | * ld.texinfo (stack-size): New option. | |
27 | * emultempl/elf32.em: Add stack-size option. | |
28 | ||
0e86e20e AM |
29 | 2012-10-22 Jan Beich <jbeich@tormail.org> |
30 | Alan Modra <amodra@gmail.com> | |
31 | ||
32 | PR ld/14426 | |
33 | * ldlex.h (option_values): Add OPTION_IGNORE_UNRESOLVED_SYMBOL. | |
34 | * lexsup.c (parse_args): Likewise. | |
35 | (ld_options): Describe --ignore-unresolved-symbol. | |
36 | * ldmain.h (add_ignoresym): Declare. | |
37 | * ldmain.c (add_ignoresym): New function, extracted from.. | |
38 | (undefined_symbol): ..here. Return if the symbol is in ignore_hash. | |
39 | (constructor_callback): Don't use global link_info here. | |
40 | (reloc_overflow): Likewise. | |
41 | ||
a8f9d13e AM |
42 | 2012-10-22 Alan Modra <amodra@gmail.com> |
43 | ||
44 | * plugin.c (plugin_load_plugins): Warning fix. | |
45 | ||
a29a8af8 KT |
46 | 2012-10-18 Kai Tietz <ktietz@redhat.com> |
47 | ||
48 | PR binutils/14067 | |
49 | * NEWS: Menition new feature. | |
50 | * scripttempl/pep.sc: Add zdebug sections. | |
51 | * scripttempl/pe.sc: L | |
52 | ||
c76b75fd SE |
53 | 2012-09-19 Steve Ellcey <sellcey@mips.com> |
54 | ||
55 | * configure.tgt: Add mips*-mti-elf* target. | |
56 | ||
c05f749e AM |
57 | 2012-09-17 Alan Modra <amodra@gmail.com> |
58 | ||
59 | * ld.texinfo (Expression Section): Correct description of | |
60 | conversions for a binary operation involving an absolute symbol | |
61 | and a number. | |
62 | ||
52204357 DE |
63 | 2012-09-14 David Edelsohn <dje.gcc@gmail.com> |
64 | ||
65 | * configure: Regenerate. | |
66 | ||
e202fa84 AG |
67 | 2012-09-13 Anthony Green <green@moxielogic.com> |
68 | ||
69 | * emulparams/elf32moxie.sh (BIG_OUTPUT_FORMAT, | |
70 | LITTLE_OUTPUT_FORMAT): Define. | |
71 | (OUTPUT_FORMAT): Change to elf32-bigmoxie. | |
72 | (EMBEDDED): Define. | |
73 | ||
7c0e90d2 DD |
74 | 2012-09-12 DJ Delorie <dj@redhat.com> |
75 | ||
76 | * emulparams/elf32rx.sh (OTHER_READONLY_SECTIONS): Add W_* sections. | |
77 | ||
00716ab1 AM |
78 | 2012-09-10 Matthias Klose <doko@ubuntu.com> |
79 | ||
80 | * config.in: Disable sanity check for kfreebsd. | |
81 | ||
6d2920c8 L |
82 | 2012-09-10 H.J. Lu <hongjiu.lu@intel.com> |
83 | ||
84 | * configure: Regenerated. | |
85 | ||
ffda88b4 AM |
86 | 2012-09-10 Iain Sandoe <iain@codesourcery.com> |
87 | Alan Modra <amodra@gmail.com> | |
88 | ||
89 | * configure.tgt (powerpc-*-elf, et al): Define targ_extra_libpath. | |
90 | Correct whitespace. | |
91 | (powerpcle-*-elf, et al): Likewise. Correct targ_extra_emuls. | |
92 | ||
c008817b IS |
93 | 2012-09-10 Iain Sandoe <iain@codesourcery.com> |
94 | ||
95 | * configure.tgt (powerpc-*-elf, et al): Define targ64_extra_emuls | |
96 | and targ64_extra_libpath. | |
97 | (powerpcle-*-elf, et al): Likewise. | |
98 | ||
a9ae0bda HPN |
99 | 2012-09-09 Hans-Peter Nilsson <hp@bitrange.com> |
100 | ||
101 | * emultempl/mmo.em (mmo_place_orphan): Rewrite to also attach | |
102 | orphan sections to .data and .bss output sections, not just .text. | |
103 | When giving up on finding a suitable output section, attach to any | |
104 | output section other than .MMIX.reg_contents, if it exists. | |
105 | * scripttempl/mmo.sc: Move output debug sections to just before | |
106 | .MMIX.reg_contents. Add .gnu.attributes. Add new . = . NOP | |
107 | assignments and move end-of-section provide-symbols after them | |
108 | to force the end-of-section symbols to the address after orphan | |
109 | placement. Add SORT_NONE to .init and .fini sections. | |
110 | ||
11cba4ac L |
111 | 2012-08-30 H.J. Lu <hongjiu.lu@intel.com> |
112 | ||
113 | PR ld/14525 | |
114 | * scripttempl/elf.sc: Also provide __executable_start for PIE. | |
115 | ||
ee8206a9 KT |
116 | 2012-08-17 Kai Tietz <ktietz@redhat.com> |
117 | ||
118 | PR ld/14326 | |
119 | * scripttempl/pe.sc: Add _etext symbol. | |
120 | ||
63a79b61 NC |
121 | 2012-08-14 Nick Clifton <nickc@redhat.com> |
122 | ||
123 | * configure.in (ALL_LINGUGAS): Add uk. | |
124 | * configure: Regenerate. | |
125 | * po/uk.po: New Ukranian translation. | |
126 | ||
a06ea964 | 127 | 2012-08-13 Ian Bolton <ian.bolton@arm.com> |
11cba4ac L |
128 | Laurent Desnogues <laurent.desnogues@arm.com> |
129 | Jim MacArthur <jim.macarthur@arm.com> | |
130 | Marcus Shawcroft <marcus.shawcroft@arm.com> | |
131 | Nigel Stephens <nigel.stephens@arm.com> | |
132 | Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> | |
133 | Richard Earnshaw <rearnsha@arm.com> | |
134 | Sofiane Naci <sofiane.naci@arm.com> | |
135 | Tejas Belagod <tejas.belagod@arm.com> | |
136 | Yufeng Zhang <yufeng.zhang@arm.com> | |
a06ea964 NC |
137 | |
138 | * Makefile.am: Add AArch64. | |
139 | * Makefile.in: Regenerate. | |
140 | * configure.tgt: Add AArch64. | |
141 | * emulparams/aarch64elf.sh: New file. | |
142 | * emulparams/aarch64elfb.sh: New file. | |
143 | * emulparams/aarch64linux.sh: New file. | |
144 | * emulparams/aarch64linuxb.sh: New file. | |
145 | * emultempl/aarch64elf.em: New file. | |
146 | * NEWS: Mention the new feature. | |
147 | ||
3c892704 NC |
148 | 2012-08-09 Nick Clifton <nickc@redhat.com> |
149 | ||
150 | * po/vi.po: Updated Vietnamese translation. | |
151 | ||
a988325c NC |
152 | 2012-08-07 Daniel Green <venix1@gmail.com> |
153 | ||
154 | * scripttempl/pe.sc (R_TLS): Add .tls$AAA and .tls$ZZZ. | |
155 | * scripttempl/pep.sc (R_TLS): Add .tls$AAA and .tls$ZZZ. | |
156 | ||
5125d2b0 NC |
157 | 2012-08-07 Nick Clifton <nickc@redhat.com> |
158 | ||
159 | * po/ja.po: Updated Japanese translation. | |
160 | ||
9e808284 MR |
161 | 2012-08-06 Maciej W. Rozycki <macro@codesourcery.com> |
162 | ||
163 | * emulparams/elf32bmip.sh: Make _gp hidden. | |
164 | * emulparams/elf32bmipn32-defs.sh: Likewise. | |
165 | * emulparams/elf32mipswindiss.sh: Likewise. | |
166 | * scripttempl/mips.sc: Likewise. | |
167 | ||
eb8476a6 MR |
168 | 2012-08-06 Maciej W. Rozycki <macro@codesourcery.com> |
169 | ||
170 | * ldexp.h (etree_union): Add defsym member to the assign member | |
171 | structure. | |
172 | (exp_assign): Add hidden argument to prototype. | |
173 | * ldexp.c (exp_fold_tree_1): Use the defsym member to handle | |
174 | --defsym symbols. | |
175 | (exp_assop): Add defsym argument, initialize the defsym member | |
176 | of the assign structure. | |
177 | (exp_assign): Handle hidden symbols. | |
178 | (exp_defsym): Update to use the defsym argument to exp_assop. | |
179 | (exp_provide): Update to handle the defsym argument to exp_assop. | |
180 | * ldlex.l (HIDDEN): New token. | |
181 | * ldgram.y (HIDDEN): Likewise. | |
182 | (assignment, section): Update calls to exp_assign. | |
183 | * ldctor.c (ldctor_build_sets): Likewise. | |
184 | * mri.c (mri_format): Likewise. | |
185 | * ldlang.c (lang_insert_orphan, lang_leave_overlay): Likewise. | |
186 | (open_input_bfds): Remove --defsym symbols special case. | |
187 | * emultempl/beos.em (gld_${EMULATION_NAME}_set_symbols): Update | |
188 | call to exp_assign. | |
189 | * emultempl/pe.em (gld_${EMULATION_NAME}_set_symbols): Likewise. | |
190 | * emultempl/pep.em (gld_${EMULATION_NAME}_set_symbols): Likewise. | |
191 | * emultempl/spuelf.em (spu_place_special_section): Likewise. | |
192 | * emultempl/xtensaelf.em (ld_xtensa_insert_page_offsets): | |
193 | Likewise. | |
194 | * ld.texinfo (Assigning Values to Symbols): Add HIDDEN. | |
195 | (HIDDEN): New subsection. | |
196 | ||
b2e4da5a L |
197 | 2012-07-31 H.J. Lu <hongjiu.lu@intel.com> |
198 | ||
199 | PR ld/14156 | |
c2821c3e | 200 | * ldlang.c (wild_sort): Properly handle by_none. |
b2e4da5a L |
201 | |
202 | * scripttempl/elf.sc: Add SORT_NONE to .init and .fini sections. | |
203 | * scripttempl/elf32msp430.sc: Likewise. | |
5125d2b0 | 204 | * scripttempl/elf32msp430_3.sc: Likewise. |
b2e4da5a L |
205 | * scripttempl/elfd10v.sc: Likewise. |
206 | * scripttempl/elfd30v.sc: Likewise. | |
207 | * scripttempl/elfxtensa.sc: Likewise. | |
208 | ||
a6dc81d2 NC |
209 | 2012-07-30 Nick Clifton <nickc@redhat.com> |
210 | ||
211 | * po/ld.pot: Updated template. | |
212 | * po/bg.po: Updated Bulgarian translation. | |
213 | * po/es.po: Updated Spanish translation. | |
214 | * po/fi.po: Updated Finnish translation. | |
215 | ||
c4dd807e MF |
216 | 2012-07-27 Mike Frysinger <vapier@gentoo.org> |
217 | ||
218 | * configure.in (BFD_VERSION): Run bfd/configure --version and | |
219 | parse the output of that. | |
220 | * configure: Regenerate. | |
221 | ||
af18cb59 TG |
222 | 2012-07-27 Tristan Gingold <gingold@adacore.com> |
223 | ||
224 | * NEWS: Add marker for 2.23. | |
225 | ||
43315eb7 EW |
226 | 2012-07-24 Jan Waclawek <konfera@efton.sk> |
227 | ||
228 | PR ld/14058 | |
229 | * emultempl/avrelf.em (avr_elf_after_allocation): Call | |
230 | elf32_avr_size_stubs with is_prealloc_run as TRUE. | |
231 | ||
470b557a AK |
232 | 2012-07-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> |
233 | ||
234 | * emulparams/elf_s390.sh (IREL_IN_PLT): Define. | |
235 | * emulparams/elf64_s390.sh (IREL_IN_PLT): Define. | |
236 | ||
cd6f1cf3 NC |
237 | 2012-07-13 Nick Clifton <nickc@redhat.com> |
238 | ||
239 | PR ld/14357 | |
240 | * ldmain.c (trace_file_tries): Rename to 'verbose'. | |
241 | * ldfile.c: Likewise. | |
242 | * ldlang.c: Likewise. | |
243 | * ldmain.h: Likewise. | |
244 | * lexsup.c: Likewise. | |
245 | * emultempl/elf32.em: Likewise. | |
246 | * emultemp/spuelf.em: Likewise. | |
247 | * pe-dll.c (pe_dll_generate_implib): Only print creation message | |
248 | in verbose mode. | |
249 | ||
eda680f8 L |
250 | 2012-07-10 H.J. Lu <hongjiu.lu@intel.com> |
251 | ||
252 | PR ld/14156 | |
253 | * NEWS: Mention SORT_NONE. | |
254 | ||
255 | * ld.h (sort_type): Add by_none. | |
256 | ||
257 | * ld.texinfo: Document SORT_NONE. | |
258 | ||
259 | * ldgram.y: Handle SORT_NONE. | |
260 | ||
261 | * ldlang.c (update_wild_statements): Handle by_none. Don't | |
262 | sort .init/.fini sections. | |
263 | ||
264 | * ldlex.l: Add SORT_NONE. | |
265 | ||
9aec8434 L |
266 | 2012-07-02 H.J. Lu <hongjiu.lu@intel.com> |
267 | ||
268 | * ld.texinfo: Replace __end_SECNAME with __stop_SECNAME. | |
269 | ||
2a995fc1 NC |
270 | 2012-06-29 Nick Clifton <nickc@redhat.com> |
271 | ||
272 | * scripttempl/alphavms.sc: Add .debug_macro section. | |
273 | * scripttempl/elf.sc: Likewise. | |
274 | * scripttempl/elf64hppa.sc: Likewise. | |
275 | * scripttempl/elf_chaos.sc: Likewise. | |
276 | * scripttempl/elfxtensa.sc: Likewise. | |
277 | * scripttempl/ia64vms.sc: Likewise. | |
278 | ||
279 | * scripttempl/armbpabi.sc: Add .debug_pubtypes, .debug_ranges and | |
280 | .debug_macro sections. | |
281 | * scripttempl/avr.sc: Likewise. | |
282 | * scripttempl/elf32cr16.sc: Likewise. | |
283 | * scripttempl/elf32crx.sc: Likewise. | |
284 | * scripttempl/elf32msp430.sc: Likewise. | |
285 | * scripttempl/elf32msp430_3.sc: Likewise. | |
286 | * scripttempl/elf32sh-symbian.sc: Likewise. | |
287 | * scripttempl/elfd30v.sc: Likewise. | |
288 | * scripttempl/elfi370.sc: Likewise. | |
289 | * scripttempl/elfm68hc11.sc: Likewise. | |
290 | * scripttempl/elfm68hc12.sc: Likewise. | |
291 | * scripttempl/elfxgate.sc: Likewise. | |
292 | * scripttempl/i386beos.sc: Likewise. | |
293 | * scripttempl/i386go32.sc: Likewise. | |
294 | * scripttempl/ip2k.sc: Likewise. | |
295 | * scripttempl/iq2000.sc: Likewise. | |
296 | * scripttempl/mep.sc: Likewise. | |
297 | * scripttempl/mmo.sc: Likewise. | |
298 | * scripttempl/v850.sc: Likewise. | |
299 | * scripttempl/xstormy16.sc: Likewise. | |
300 | ||
a61fdf08 L |
301 | 2012-06-28 H.J. Lu <hongjiu.lu@intel.com> |
302 | ||
303 | * ldlang.c (update_wild_statements): Remove redundant statement. | |
304 | ||
47e2e729 AM |
305 | 2012-06-25 Alan Modra <amodra@gmail.com> |
306 | ||
307 | * ldlang.c (load_symbols): Close file and set flags.loaded | |
308 | after parsing script file. | |
309 | (open_input_bfds): Don't segv on closed script. | |
310 | ||
0c77920e L |
311 | 2012-06-24 H.J. Lu <hongjiu.lu@intel.com> |
312 | ||
313 | * configure.tgt: Enable elf_k1om for x86_64-*-linux-gnux32. | |
314 | Remove x32 in tdir_i386linux and tdir_elf_i386. | |
315 | ||
62655c7b RM |
316 | 2012-06-22 Roland McGrath <mcgrathr@google.com> |
317 | ||
318 | * NEWS: Mention __ehdr_start. | |
319 | ||
d9476c5a AM |
320 | 2012-06-21 Alan Modra <amodra@gmail.com> |
321 | ||
322 | * ldlang.c (lang_insert_orphan): Don't make __start_<sec> symbol | |
323 | absolute, and remove unnecessary alignment. | |
324 | ||
d2667025 AM |
325 | 2012-06-16 Alan Modra <amodra@gmail.com> |
326 | ||
327 | * ldlang.h (lang_output_section_statement_type): Add after_end field. | |
328 | (lang_abs_symbol_at_beginning_of, lang_abs_symbol_at_end_of): Delete. | |
329 | (section_for_dot): Declare. | |
330 | * ldlang.c (lang_size_sections_1): Correct comment. | |
331 | (current_section): Move earlier. | |
332 | (current_assign, prefer_next_section): New static vars. | |
333 | (lang_do_assignments_1): Add found_end param. Detect _end | |
334 | assignment to set found_end. Set os->after_end. Set above statics. | |
335 | (lang_do_assignments): Adjust lang_do_assignments_1 call. Init | |
336 | vars. | |
337 | (section_for_dot): New function. | |
338 | (lang_set_startof): Don't make an absolute symbol. | |
339 | (lang_abs_symbol_at_beginning_of, lang_abs_symbol_at_end_of): Delete. | |
340 | * ldexp.c (new_rel_from_abs): Use section_for_dot. | |
341 | * emultempl/lnk960.em (symbol_at_beginning_of): New function. | |
342 | (symbol_at_end_of): Likewise. | |
343 | (lnk960_after_allocation): Use them. | |
344 | * scripttempl/elf.sc: Precede OTHER_GOT_SYMBOLS with . = .; and | |
345 | likewise before __bss_start. | |
346 | ||
6611f2e1 L |
347 | 2012-06-14 H.J. Lu <hongjiu.lu@intel.com> |
348 | ||
349 | * plugin.c (set_tv_header): Handle link_info.pie. | |
350 | ||
17d6eea5 L |
351 | 2012-06-11 Alan Modra <amodra@gmail.com> |
352 | ||
353 | PR ld/14215 | |
354 | * ldexp.c (fold_name <SIZEOF, ALIGNOF>): Allow forward section | |
355 | references. | |
356 | * emulparams/elf32_x86_64.sh (SEPARATE_GOTPLT): Depend on size of | |
357 | .got.plt. | |
358 | * emulparams/elf32mb_linux.sh (SEPARATE_GOTPLT): Likewise. | |
359 | * emulparams/elf32tilegx.sh (SEPARATE_GOTPLT): Likewise. | |
360 | * emulparams/elf32tilepro.sh (SEPARATE_GOTPLT): Likewise. | |
361 | * emulparams/elf64tilegx.sh (SEPARATE_GOTPLT): Likewise. | |
362 | * emulparams/elf_i386.sh (SEPARATE_GOTPLT): Likewise. | |
363 | * emulparams/elf_k1om.sh (SEPARATE_GOTPLT): Likewise. | |
364 | * emulparams/elf_l1om.sh (SEPARATE_GOTPLT): Likewise. | |
365 | * emulparams/elf_x86_64.sh (SEPARATE_GOTPLT): Likewise. | |
366 | ||
fef632e1 NC |
367 | 2012-06-07 Georg-Johann Lay <avr@gjlay.de> |
368 | ||
369 | PR 13697 | |
370 | * scripttempl/avr.sc (.data): Keep it. | |
371 | ||
959a202e AS |
372 | 2012-06-02 Andreas Schwab <schwab@linux-m68k.org> |
373 | ||
374 | * Makefile.am (TEXINFO_TEX): Remove $(top_srcdir) prefix. | |
375 | * Makefile.in: Regenerate. | |
376 | ||
6d8bf25d AM |
377 | 2012-05-30 Alan Modra <amodra@gmail.com> |
378 | ||
379 | * ldlang.h (lang_output_section_statement_type): Rename | |
380 | "section_relative_symbol" field to "update_dot". | |
381 | * ldlang.c: Update all uses. | |
382 | (strip_excluded_output_sections): Don't test update_dot_tree here.. | |
383 | (lang_leave_overlay): ..set update_dot here. | |
384 | ||
f05eb3b7 AM |
385 | 2012-05-26 Alan Modra <amodra@gmail.com> |
386 | ||
145fa769 L |
387 | * ldlex.h (enum option_values): Move from.. |
388 | * lexsup.c: ..here. | |
f05eb3b7 AM |
389 | * emultempl/ppc32elf.em: Include ldlex.h. |
390 | (PARSE_AND_LIST_ARGS_CASES): Disable optimisations when | |
391 | --traditional-format. | |
392 | * emultempl/ppc64elf.em: Likewise. | |
393 | ||
9cf8b46e AM |
394 | 2012-05-25 Alan Modra <amodra@gmail.com> |
395 | ||
396 | PR ld/13909 | |
397 | * emultempl/elf32.em (gld${EMULATION_NAME}_after_open): Handle | |
398 | multiple .eh_frame sections attached to bfd. | |
399 | ||
18bbc1c5 CC |
400 | 2012-05-23 Cary Coutant <ccoutant@google.com> |
401 | ||
402 | * scripttempl/armbpabi.sc: Match .data.rel.ro.* sections more | |
403 | carefully. Fix typo where .rela.data.rel.ro matches | |
404 | .rel.data.rel.ro. | |
405 | * scripttempl/mep.sc: Likewise. | |
406 | * scripttempl/elf.sc: Match .data.rel.ro.* sections more carefully. | |
407 | * scripttempl/elf64hppa.sc: Likewise. | |
408 | * scripttempl/elfxtensa.sc: Likewise. | |
409 | ||
df7b86aa NC |
410 | 2012-05-17 Daniel Richard G. <skunk@iskunk.org> |
411 | Nick Clifton <nickc@redhat.com> | |
412 | ||
413 | PR 14072 | |
414 | * configure.in: Add check that sysdep.h has been included before | |
415 | any system header files. | |
416 | * configure: Regenerate. | |
417 | * config.in: Regenerate. | |
418 | * sysdep.h: Generate an error if included before config.h. | |
419 | ||
a0f49396 NC |
420 | 2012-05-16 Sergio Durigan Junior <sergiodj@redhat.com> |
421 | ||
422 | * emultempl/m68hc1xelf.em (hook_in_stub): Pass proper `bfd' | |
423 | as the first argument for `bfd_get_section_name'. | |
424 | ||
a5244b7e NC |
425 | 2012-05-16 Samuel Thibault <samuel.thibault@ens-lyon.org> |
426 | ||
427 | PR ld/14069 | |
428 | * emultempl/elf32.em: Include *-*-gnu* targets in ld.so.conf | |
429 | support. | |
430 | ||
6927f982 NC |
431 | 2012-05-15 James Murray <jsm@jsm-net.demon.co.uk> |
432 | ||
433 | * NEWS: Mention the support for S12X processors. | |
434 | ||
b9c361e0 JL |
435 | 2012-05-14 James Lemke <jwlemke@codesourcery.com> |
436 | ||
437 | * ldlang.c (walk_wild_consider_section): Don't copy section_flag_list. | |
438 | Pass it to callback. | |
439 | (walk_wild_section_general): Pass section_flag_list to callback. | |
440 | (lang_add_section): Add sflag_list parm. | |
441 | Move out logic to keep / omit a section & call bfd_lookup_section_flags. | |
442 | (output_section_callback_fast): Add sflag_list parm. | |
443 | Add new parm to lang_add_section calls. | |
444 | (output_section_callback): Likewise. | |
445 | (check_section_callback): Add sflag_list parm. | |
446 | (lang_place_orphans): Add new parm to lang_add_section calls. | |
447 | (gc_section_callback): Add sflag_list parm. | |
448 | (find_relro_section_callback): Likewise. | |
449 | * ldlang.h (callback_t): Add flag_info parm. | |
450 | (lang_add_section): Add sflag_list parm. | |
451 | * emultempl/armelf.em (elf32_arm_add_stub_section): | |
452 | Add lang_add_section parm. | |
453 | * emultempl/beos.em (gld*_place_orphan): Likewise. | |
454 | * emultempl/elf32.em (gld*_place_orphan): Likewise. | |
455 | * emultempl/hppaelf.em (hppaelf_add_stub_section): Likewise. | |
456 | * emultempl/m68hc1xelf.em (m68hc11elf_add_stub_section): Likewise. | |
457 | * emultempl/mipself.em (mips_add_stub_section): Likewise. | |
458 | * emultempl/mmo.em (mmo_place_orphan): Likewise. | |
459 | * emultempl/pe.em (gld_*_place_orphan): Likewise. | |
460 | * emultempl/pep.em (gld_*_place_orphan): Likewise. | |
461 | * emultempl/ppc64elf.em (ppc_add_stub_section): Likewise. | |
462 | * emultempl/spuelf.em (spu_place_special_section): Likewise. | |
463 | * emultempl/vms.em (vms_place_orphan): Likewise. | |
464 | ||
465 | 2012-05-14 Catherine Moore <clm@codesourcery.com> | |
466 | ||
467 | * NEWS: Mention PowerPC VLE port. | |
468 | ||
208a4923 NC |
469 | 2012-05-11 Daniel Richard G. <skunk@iskunk.org> |
470 | ||
471 | PR binutils/14028 | |
472 | * configure.in: Invoke ACX_HEADER_STRING. | |
473 | * configure: Regenerate. | |
474 | * config.in: Regenerate. | |
475 | * sysdep.h: If STRINGS_WITH_STRING is defined then include both | |
476 | string.h and strings.h. | |
477 | ||
e5b62927 AM |
478 | 2012-05-08 Alan Modra <amodra@gmail.com> |
479 | ||
480 | * Makefile.am (check_DEJAGNU): Export LC_ALL=C in place of other | |
481 | LC and LANG environment vars. | |
482 | * Makefile.in: Regenerate. | |
483 | ||
d66ac08f TG |
484 | 2012-05-07 Tristan Gingold <gingold@adacore.com> |
485 | ||
486 | * pe-dll.c (udef_table): Make it static. | |
487 | ||
45dfa85a AM |
488 | 2012-05-05 Alan Modra <amodra@gmail.com> |
489 | ||
490 | * pe-dll.c (process_def_file_and_drectve): Use bfd_und_section_ptr. | |
491 | (generate_reloc): Use bfd_abs_section_ptr. | |
492 | ||
3c995545 L |
493 | 2012-05-04 H.J. Lu <hongjiu.lu@intel.com> |
494 | ||
495 | * configure.tgt: Support x86_64-*-linux-gnux32. | |
496 | ||
f6c1a2d5 NC |
497 | 2012-05-03 Sean Keys <skeys@ipdatasys.com> |
498 | ||
499 | * Makefile.am (ALL_EMULATIONS): Added new emulation for XGATE | |
500 | and XGATE (elf). | |
501 | * Makefile.in: Rebuild. | |
502 | * configure.tgt: Recognize XGATE. | |
503 | * scripttempl/elfxgate.sc: New file, mostly cloned from m68hc12. | |
504 | * emulparams/xgateelf: New emulation, mostly cloned from m68hc12. | |
505 | * NEWS: Mention new support. | |
506 | ||
3b66a141 HPN |
507 | 2012-04-26 Hans-Peter Nilsson <hp@axis.com> |
508 | ||
509 | Make bfd asserts cause linker errors. | |
510 | * ldmain.c (default_bfd_assert_handler): New variable. | |
511 | (ld_bfd_assert_handler): New function. | |
512 | (main): Call bfd_set_assert_handler. | |
513 | ||
dbaa2011 AM |
514 | 2012-04-24 Alan Modra <amodra@gmail.com> |
515 | ||
3daa201b | 516 | * ldlang.c (size_input_section): Use sec_info_type rather than |
dbaa2011 | 517 | usrdata->flags.just_syms. |
3daa201b AM |
518 | * ldwrite.c (build_link_order): Likewise. |
519 | * emultempl/hppaelf.em (build_section_lists): Likewise. | |
520 | * emultempl/ppc64elf.em (build_toc_list): Likewise. | |
521 | * emultempl/armelf.em (build_section_lists): Likewise. | |
dbaa2011 | 522 | (after_allocation): Update for renamed sec_info_type value. |
3daa201b | 523 | * emultempl/tic6xdsbt.em: Likewise. |
dbaa2011 | 524 | |
b38cadfb NC |
525 | 2012-04-12 Roland McGrath <mcgrathr@google.com> |
526 | ||
527 | * configure.tgt (arm*-*-nacl*, arm*b-*-nacl*): Handle them. | |
528 | * emulparams/armelf_nacl.sh: New file. | |
529 | * emulparams/armelfb_nacl.sh: New file. | |
530 | * Makefile.am (ALL_EMULATION_SOURCES): Add earmelf_nacl.c | |
531 | and earmelfb_nacl.c here. | |
532 | (earmelf_nacl.c, earmelfb_nacl.c): New targets. | |
533 | * Makefile.in: Regenerated. | |
534 | ||
202e2356 NC |
535 | 2012-04-11 Tristan Gingold <gingold@adacore.com> |
536 | ||
537 | * scripttempl/ia64vms.sc: New file. | |
538 | * emultempl/vms.em (_before_parse): Support for ia64. | |
539 | (elf64-ia64-vms): New fragment for ia64. | |
540 | * emulparams/elf64_ia64_vms.sh: New file. | |
541 | * configure.tgt (ia64-*-*vms*): Add. | |
542 | * Makefile.am (ALL_64_EMULATION_SOURCES): Add eelf64_ia64_vms.c | |
543 | (eelf64_ia64_vms.c): New rule. | |
544 | * Makefile.in: Regenerate. | |
545 | ||
58797674 RM |
546 | 2012-04-06 Roland McGrath <mcgrathr@google.com> |
547 | ||
548 | * configure.in (AC_CHECK_HEADERS): Add locale.h. | |
549 | * config.in: Regenerate. | |
550 | * configure: Regenerate. | |
551 | ||
44350750 NC |
552 | 2012-04-05 Nick Clifton <nickc@redhat.com> |
553 | ||
554 | * configure.in (AC_CHECK_FUNCS): Add setlocale. | |
555 | (AM_LC_MESSAGES): Add. | |
556 | * aclocal.m4: Regenerate. | |
557 | * config.in: Regenerate. | |
558 | * configure: Regenerate. | |
559 | ||
5a68afcf RM |
560 | 2012-04-03 Roland McGrath <mcgrathr@google.com> |
561 | ||
562 | * configure.tgt (i[3-7]86-*-nacl*, x86_64-*-nacl*): Handle them. | |
563 | * emulparams/elf_nacl.sh: New file. | |
564 | * emulparams/elf_i386_nacl.sh: New file. | |
565 | * emulparams/elf32_x86_64_nacl.sh: New file. | |
566 | * emulparams/elf_x86_64_nacl.sh: New file. | |
567 | * Makefile.am (ALL_EMULATION_SOURCES): Add eelf_i386_nacl.c here. | |
568 | (ALL_64_EMULATION_SOURCES): Add eelf32_x86_64_nacl.c and | |
569 | eelf_x86_64_nacl.c here. | |
570 | (eelf_i386_nacl.c, eelf32_x86_64_nacl.c, eelf_x86_64_nacl.c): | |
571 | New targets. | |
572 | * Makefile.in: Regenerated. | |
573 | ||
574 | * scripttempl/elf.sc: Handle SEPARATE_CODE cases. | |
575 | ||
23916fff MF |
576 | 2012-04-02 Mike Frysinger <vapier@gentoo.org> |
577 | ||
578 | * ldmisc.c (vfinfo): Assign new local str to fmt. Delete | |
579 | putc call. If str and fmt are different, call fwrite on | |
580 | the difference. | |
581 | ||
26a3ed35 NC |
582 | 2012-03-30 Nick Clifton <nickc@redhat.com> |
583 | ||
584 | * po/vi.po: Updated Vietnamese translation. | |
585 | ||
bf9ef603 RM |
586 | 2012-03-27 Roland McGrath <mcgrathr@google.com> |
587 | ||
588 | * configure.in: Set want64 on a 64-bit host regardless of | |
589 | --enable-targets=all. | |
590 | * configure: Regenerated. | |
591 | ||
1d6d1a2c TG |
592 | 2012-03-26 Tristan Gingold <gingold@adacore.com> |
593 | ||
594 | * lexsup.c (parse_args): Add a missing '\n'. | |
595 | ||
b514e6a5 AM |
596 | 2012-03-25 Alan Modra <amodra@gmail.com> |
597 | ||
598 | * ldemul.c (before_allocation_default): Revert last change. | |
3daa201b | 599 | * ldlang.c (lang_add_section): Likewise. |
b514e6a5 AM |
600 | (strip_excluded_output_sections): Don't strip output sections with |
601 | user input sections when emitrelocations, unless all are SEC_EXCLUDE. | |
602 | ||
f24fcb9d AM |
603 | 2012-03-23 Alan Modra <amodra@gmail.com> |
604 | ||
605 | * ldemul.c (before_allocation_default): When emitrelocations, | |
606 | don't strip sections.. | |
607 | * ldlang.c (lang_add_section): ..and don't set up map_head, map_tail. | |
608 | ||
aeb1f0e8 KT |
609 | 2012-03-14 Kai Tietz <ktietz@redhat.com> |
610 | Pascal Obry <pascal@obry.net> | |
611 | ||
612 | * pe-dll.c (found_sym): New static variable. | |
613 | (undef_count): Likewise. | |
614 | (key_value): New structure. | |
615 | (undef_sort_cmp): Compare routine for qsort/bsearch. | |
616 | (pe_find_cdecl_alias_match): Add new argument. | |
617 | (pe_undef_alias_cdecl_match): Removed. | |
618 | (pe_undef_count): New helper routine. | |
619 | (pe_create_undef_table): Likewise. | |
620 | (pe_process_import_defs): Use pe_create_undef_table and | |
621 | new pe_undef_alias_cdecl_match function. | |
622 | ||
ec8460b5 AM |
623 | 2012-03-14 Alan Modra <amodra@gmail.com> |
624 | ||
625 | PR ld/13839 | |
626 | * ldexp.c (fold_name): Ignore undefined symbols when assigning to | |
627 | dot in mark phase. | |
628 | (exp_fold_tree_1): Evaluate assignment to dot expressions even when | |
629 | discarding result, for side effects. Fix typo in error message. | |
630 | ||
67baf8c4 TG |
631 | 2012-03-08 Tristan Gingold <gingold@adacore.com> |
632 | ||
633 | * ldexp.c (exp_print_tree): Special case for SEGMENT_START. | |
634 | (exp_print_token): Constify. | |
635 | ||
f4a23d42 AM |
636 | 2012-03-08 Alan Modra <amodra@gmail.com> |
637 | ||
638 | PR ld/10340 | |
639 | * ldfile.c (is_sysrooted_pathname): Remove notsame param. | |
640 | (ldfile_add_library_path): Don't set sysrooted flag. | |
641 | (ldfile_open_file_search): Likewise, and don't copy them. | |
642 | (try_open): Delete exten and code handling such. Add sysrooted | |
643 | param and return whether path is in sysroot. | |
644 | (ldfile_find_command_file): Delete extend param. Add sysrooted | |
645 | param. Rename local var. Update try_open calls. | |
646 | (ldfile_open_command_file_1): Pass sysrooted to lex_push_file. | |
647 | * ldfile.h (search_dirs_type): Remove sysrooted field. | |
648 | * ldlang.c (new_afile): Always set sysrooted from input_flags. | |
649 | (load_symbols): Don't set input_flags.sysrooted. | |
650 | * ldlang.h (struct lang_input_statement_flags): Revise sysrooted | |
651 | comment. | |
652 | * ldlex.h (lex_push_file): Update prototype. | |
653 | * ldlex.l (sysrooted_stack): New array. | |
654 | (EOF): Pop input_flags.sysrooted. | |
655 | (lex_push_file): Add sysrooted param. Save and set | |
656 | input_flags.sysrooted. | |
657 | ||
66be1055 AM |
658 | 2012-03-06 Alan Modra <amodra@gmail.com> |
659 | ||
660 | * ldlang.h (struct lang_input_statement_flags): New, extract from.. | |
661 | (lang_input_statement_type): ..here. New field "flags". | |
662 | (input_flags): Declare. | |
663 | (missing_file): Delete. | |
664 | * ldmain.h (whole_archive): Delete. | |
665 | (add_DT_NEEDED_for_regular, add_DT_NEEDED_for_dynamic): Delete. | |
666 | * ld.h (ld_config_type <dynamic_link>): Delete. | |
667 | * ldmain.c (whole_archive): Delete. | |
668 | (add_DT_NEEDED_for_regular, add_DT_NEEDED_for_dynamic): Delete. | |
669 | * ldlang.c (missing_file, ldlang_sysrooted_script): Delete. | |
670 | (input_flags): New variable. Replace all uses of config.dynamic_link, | |
671 | missing_file, ldlang_sysrooted_script, whole_archive, | |
672 | add_DT_NEEDED_for_regular and add_DT_NEEDED_for_dynamic with fields | |
673 | from here. | |
674 | * ldfile.c: Likewise. | |
675 | * ldgram.y: Likewise. | |
676 | * ldmain.c: Likewise. | |
677 | * ldwrite.c: Likewise. | |
678 | * lexsup.c: Likewise. | |
679 | * plugin.c: Likewise. | |
680 | * emultempl/aix.em: Likewise. | |
681 | * emultempl/armelf.em: Likewise. | |
682 | * emultempl/elf32.em: Likewise. | |
683 | * emultempl/hppaelf.em: Likewise. | |
684 | * emultempl/linux.em: Likewise. | |
685 | * emultempl/pe.em: Likewise. | |
686 | * emultempl/pep.em: Likewise. | |
687 | * emultempl/ppc64elf.em: Likewise. | |
688 | * emultempl/scoreelf.em: Likewise. | |
689 | * emultempl/spuelf.em: Likewise. | |
690 | * emultempl/sunos.em: Likewise. | |
691 | * emultempl/vms.em: Likewise. | |
692 | * ldlang.c (new_afile): Use memset to init zero fields. | |
693 | (load_symbols): Simplify save and restore of flags around command | |
694 | file processing. | |
695 | * ldfile.c (is_sysrooted_pathname): Tidy. | |
696 | ||
cae4ddc6 HPN |
697 | 2012-03-05 Hans-Peter Nilsson <hp@axis.com> |
698 | ||
699 | * configure.tgt (mips64*el-*-freebsd*, mips64*-*-freebsd*) | |
700 | (mips*el-*-freebsd*, mips*-*-freebsd*): Correct triplets by | |
701 | replacing trailing "-*" with "*". | |
702 | ||
fb6cedde WL |
703 | 2012-02-25 Walter Lee <walt@tilera.com> |
704 | ||
705 | * Makefile.am (ALL_EMULATION_SOURCES): Add eelf32tilegx_be.c. | |
706 | (ALL_64_EMULATION_SOURCES): Add eelf64tilegx_be.c. | |
707 | (eelf32tilegx_be.c): Add rule to build this file. | |
708 | (eelf64tilegx_be.c): Ditto. | |
709 | * Makefile.in: Regenerate. | |
710 | * configure.tgt (tilegx-*-*): Support big endian. | |
711 | (tilegxbe-*-*): New. | |
712 | * emulparams/elf32tilegx.sh (OUTPUT_FORMAT): Rename. | |
713 | (BIG_OUTPUT_FORMAT): Define. | |
714 | (LITTLE_OUTPUT_FORMAT): Define. | |
715 | * emulparams/elf32tilegx_be.sh: New. | |
716 | * emulparams/elf64tilegx.sh (OUTPUT_FORMAT): Rename. | |
717 | (BIG_OUTPUT_FORMAT): Define. | |
718 | (LITTLE_OUTPUT_FORMAT): Define. | |
719 | * emulparams/elf64tilegx_be.sh: New. | |
720 | ||
5b3d386e KT |
721 | 2012-02-24 Kai Tietz <ktietz@redhat.com> |
722 | ||
723 | PR binutils/13710 | |
724 | * deffilep.y (keyword_as_name): Disable LIBRARY | |
725 | keyword. | |
726 | ||
2aa9aad9 NC |
727 | 2012-02-22 Alan Modra <amodra@gmail.com> |
728 | ||
729 | PR ld/13683 | |
730 | * ldlang.c (lang_process): Rerun lang_do_assignments before | |
731 | starting garbage collection. | |
732 | * ldexp.c (fold_name): Generate a reloc for defined symbols | |
733 | found without an associated output section during the mark phase. | |
289b70fe NC |
734 | (exp_fold_tree_1): Continue processing an expression, even if we |
735 | are unable to fold it, if we are in the first two evaluation | |
736 | phases. | |
2aa9aad9 NC |
737 | * ldexp.h (enum lang_phase_type): Add descriptions of the phases. |
738 | ||
6e230cc2 KT |
739 | 2012-02-19 Kai Tietz <ktietz@redhat.com> |
740 | ||
741 | * deffilep.y (cmp_import_elem): Sort first by module name. | |
742 | * pe-dll.c (process_def_file_and_drectve): Free strings | |
743 | from removed export-element. | |
744 | (add_bfd_to_link): Optimize loop on import-elements and lower | |
745 | allocated memory. | |
746 | (pe_implied_import_dll): Pass NULL instead of 0 for pointer | |
747 | argument. | |
748 | ||
39085894 HPN |
749 | 2012-02-18 Hans-Peter Nilsson <hp@axis.com> |
750 | ||
751 | * ldmisc.c (vfinfo <%S>): Use same type and avoid cast for | |
752 | temporary variable node used for NULL argument. | |
753 | ||
dab69f68 AM |
754 | 2012-02-18 Alan Modra <amodra@gmail.com> |
755 | ||
756 | PR ld/13343 | |
757 | * ld.h (parsing_defsym): Delete. | |
758 | * ldexp.c (exp_intop, exp_bigintop, exp_relop): Set type.filename. | |
759 | (fold_binary, fold_name, exp_fold_tree_1, exp_get_vma, exp_get_fill, | |
760 | exp_get_abs_int): Add tree arg for %S in error messages. Don't | |
761 | fudge lineno. | |
762 | (exp_binop, exp_unop, exp_nameop, exp_assop, exp_assert): Copy | |
763 | type.filename from sub-tree. | |
764 | (exp_trinop): Likewise, and use "cond" rather than "lhs". | |
765 | * ldexp.h (node_type): Add filename field to struct. | |
766 | * ldfile.c (ldfile_input_filename): Delete. Remove all refs. | |
767 | * ldfile.h (ldfile_input_filename): Delete. | |
768 | * ldgram.y (phdr_type, phdr_qualifiers, yyerror): Add NULL arg for | |
769 | %S in error messages. | |
770 | * ldemul.c (syslib_default, hll_default): Likewise. | |
771 | * ldlang.c (lang_memory_region_lookup, lang_memory_region_alias, | |
772 | lang_get_regions, lang_new_phdr): Likewise. | |
773 | (lang_size_sections_1): Pass addr_tree for %S. | |
774 | * ldlex.h (lex_redirect): Update prototype. | |
775 | (ldlex_filename): Declare. | |
776 | * ldlex.l (<EOF>): Don't set ldfile_input_filename. | |
777 | (lex_redirect): Add fake_filename and count params. Push | |
778 | fake_filename to file_name_stack and init lineno from count. | |
779 | (ldlex_filename): New function. | |
780 | (lex_warn_invalid): Use above. | |
781 | * ldmain.c (main): Update lex_redirect call. | |
782 | * ldmisc.c (vfinfo <%S>): Take file name and line number from | |
783 | etree_type arg, or use current if arg is NULL. | |
784 | * lexsup.c (parsing_defsym): Delete. | |
785 | (parse_args <OPTION_DEFSYM>): Update lex_redirect call. | |
786 | ||
d0ac6938 KT |
787 | 2012-02-13 Kai Tietz <ktietz@redhat.com> |
788 | ||
789 | * deffilep.y (find_export_in_list): Set is_indent for | |
790 | first or last element, if identical. | |
791 | (find_import_in_list): Likewise. | |
792 | ||
aa83d1ec KT |
793 | 2012-02-11 Kai Tietz <ktietz@redhat.com> |
794 | ||
795 | * deffilep.y (%union): New type id_const. | |
796 | (opt_name2): New rule. | |
797 | (keyword_as_name): New rule. | |
798 | (dot_name): Replaced by opt_name2 rule. | |
799 | (opt_name): Adjust rule. | |
800 | (opt_equal_name): Likewise. | |
801 | ||
98872a7c NC |
802 | 2012-02-11 Pascal Obry <pascal@obry.net> |
803 | ||
804 | * pe-dll.c (auto_export): Use bsearch to speed up scan of exports | |
805 | table. | |
806 | (process_def_file_and_drectve): Maintain sorting of exports table | |
807 | after stripping leading @ signs. | |
808 | ||
09f6ed34 AM |
809 | 2012-02-09 Alan Modra <amodra@gmail.com> |
810 | ||
811 | * ldgram.y (input_section_spec_no_keep): Don't ignore sect_flags. | |
812 | ||
b7761f11 L |
813 | 2012-01-31 H.J. Lu <hongjiu.lu@intel.com> |
814 | ||
815 | PR ld/13616 | |
816 | * emulparams/elf32_x86_64.sh: Remove NOP. | |
817 | * emulparams/elf_i386.sh: Likewise. | |
818 | * emulparams/elf_i386_be.sh: Likewise. | |
819 | * emulparams/elf_i386_ldso.sh: Likewise. | |
820 | * emulparams/elf_i386_vxworks.sh: Likewise. | |
821 | * emulparams/elf_k1om.sh: Likewise. | |
822 | * emulparams/elf_l1om.sh: Likewise. | |
823 | * emulparams/elf_x86_64.sh: Likewise. | |
824 | ||
825 | * ldlang.c (zero_fill): Initialized to 0. | |
826 | ||
827 | * ldwrite.c (build_link_order): Set data size to linker odrder | |
828 | size when they are the same. | |
829 | ||
830 | * scripttempl/elf.sc: Don't specify fill if NOP is undefined. | |
831 | ||
576477a6 AM |
832 | 2012-01-17 Alan Modra <amodra@gmail.com> |
833 | ||
834 | * ldver.c (ldversion): Update copyright message year. | |
835 | ||
cdaa438c AM |
836 | 2012-01-15 Alan Modra <amodra@gmail.com> |
837 | ||
838 | PR ld/12758 | |
839 | * ldlang.c (lang_process): Don't reopen all files, just those | |
840 | newly added by plugin. | |
841 | ||
794e51c0 AM |
842 | 2012-01-11 Alan Modra <amodra@gmail.com> |
843 | ||
844 | * emultempl/ppc64elf.em (PARSE_AND_LIST_PROLOGUE, | |
845 | PARSE_AND_LIST_LONGOPTS, PARSE_AND_LIST_OPTIONS, | |
846 | PARSE_AND_LIST_ARGS_CASES): Handle --{no-,}plt-thread-safe and | |
847 | --{no-,}plt-align. | |
848 | (plt_thread_safe, plt_stub_align): New vars. | |
849 | (gld${EMULATION_NAME}_after_allocation): Pass them to | |
850 | ppc64_elf_size_stubs. Align stub sections according to plt_stub_align. | |
851 | * ld.texinfo: Document new command line options, and an old | |
852 | undocumented option. | |
853 | ||
52546677 RM |
854 | 2012-01-09 Roland McGrath <mcgrathr@google.com> |
855 | ||
856 | * configure.in: Use AM_ZLIB. | |
857 | * configure: Regenerated. | |
c0a512e2 | 858 | |
23e1d329 | 859 | For older changes see ChangeLog-2011 |
252b5132 RH |
860 | \f |
861 | Local Variables: | |
862 | mode: change-log | |
863 | left-margin: 8 | |
864 | fill-column: 74 | |
865 | version-control: never | |
866 | End: |