* plugin.c (is_ir_dummy_bfd): Don't segfault on NULL abfd.
[deliverable/binutils-gdb.git] / ld / ChangeLog
1 2010-11-04 Alan Modra <amodra@gmail.com>
2
3 * plugin.c (is_ir_dummy_bfd): Don't segfault on NULL abfd.
4
5 2010-11-03 Nick Clifton <nickc@redhat.com>
6
7 PR ld/12001
8 * ldlang.c (ldlang_def_chain_list): New variable. Contains a list
9 of symbols defined via the --defsym command line option and
10 currently waiting assignment.
11 (insert_defined): Add a defined symbol to the symbol table.
12 (ldlang_add_def): Add a entry to the ldlang_def_chain_list.
13 (lang_place_defineds): Walk ldlang_def_chain_list defining the
14 symbols.
15 (lang_process): Call lang_place_defineds.
16 (lang_add_assignment): If the assignment has come from a --defsym
17 command line option then call lang_add_def.
18
19 2010-11-03 Alan Modra <amodra@gmail.com>
20
21 * Makefile.am (eelf64hppa.c): Correct dependencies.
22 * Makefile.in: Regenerate.
23
24 2010-11-02 H.J. Lu <hongjiu.lu@intel.com>
25
26 * scripttempl/armbpabi.sc: Include compressed DWARF debug
27 sections.
28 * scripttempl/avr.sc: Likewise.
29 * scripttempl/elf32cr16.sc: Likewise.
30 * scripttempl/elf32crx.sc: Likewise.
31 * scripttempl/elf32msp430.sc: Likewise.
32 * scripttempl/elf32msp430_3.sc: Likewise.
33 * scripttempl/elf32sh-symbian.sc: Likewise.
34 * scripttempl/elf64hppa.sc: Likewise.
35 * scripttempl/elf_chaos.sc: Likewise.
36 * scripttempl/elfd10v.sc: Likewise.
37 * scripttempl/elfd30v.sc: Likewise.
38 * scripttempl/elfi370.sc: Likewise.
39 * scripttempl/elfm68hc11.sc: Likewise.
40 * scripttempl/elfm68hc12.sc: Likewise.
41 * scripttempl/elfxtensa.sc: Likewise.
42 * scripttempl/ip2k.sc: Likewise.
43 * scripttempl/iq2000.sc: Likewise.
44 * scripttempl/mep.sc: Likewise.
45 * scripttempl/mmo.sc: Likewise.
46 * scripttempl/v850.sc: Likewise.
47 * scripttempl/xstormy16.sc: Likewise.
48
49 2010-10-29 H.J. Lu <hongjiu.lu@intel.com>
50
51 * ldfile.c (ldfile_try_open_bfd): Set BFD_DECOMPRESS after
52 bfd_openr returns.
53 * emultempl/elf32.em (gld${EMULATION_NAME}_try_needed): Likewise.
54
55 * scripttempl/elf.sc: Include compressed DWARF debug sections.
56
57 2010-10-28 Alan Modra <amodra@gmail.com>
58
59 * ldfile.c (find_scripts_dir): Don't look in absolute SCRIPTDIR.
60
61 2010-10-28 Matthias Klose <doko@ubuntu.com>
62
63 * ld.texinfo: Add directory section for info document.
64 * ldint.texinfo: Likewise.
65
66 2010-10-28 Alan Modra <amodra@gmail.com>
67
68 * emultempl/ppc64elf.em (gld${EMULATION_NAME}_new_vers_pattern): For
69 --no-undefined-version, don't report dot sym versions added by ld.
70
71 2010-10-28 Alan Modra <amodra@gmail.com>
72
73 * ldlang.h (ldlang_add_undef): Add cmdline param.
74 * ldlang.c (undef_from_cmdline): New var.
75 (ldlang_add_undef): Add cmdline param. Set undef_from_cmdline.
76 (lang_end): Really require -e or -u from command line on
77 relocatable --gc-sections.
78 * ldemul.c (after_parse_default): Adjust ldlang_add_undef call.
79 * ldgram.y (extern_name_list_body): Likewise.
80 * lexsup.c (parse_args): Likewise.
81 * emultempl/aix.em (gld${EMULATION_NAME}_read_file): Likewise.
82
83 2010-10-25 Alan Modra <amodra@gmail.com>
84
85 * plugin.c (plugin_get_ir_dummy_bfd): Set bfd_use_reserved_id.
86 Formatting.
87
88 2010-10-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
89
90 * emulparams/elf32_sparc_sol2.sh (OUTPUT_FORMAT): Set to
91 elf32-sparc-sol2.
92 * emulparams/elf64_sparc_sol2.sh (OUTPUT_FORMAT): Set to
93 elf64-sparc-sol2.
94
95 2010-10-22 Alan Modra <amodra@gmail.com>
96
97 * ldwrite.c (build_link_order <lang_data_statement_enum>): Don't
98 output when section has no contents.
99 (build_link_order <lang_reloc_statement_enum>): Likewise.
100
101 2010-10-21 Joseph Myers <joseph@codesourcery.com>
102
103 * emulparams/elf32_tic6x_le.sh (ATTRS_SECTIONS): Use
104 .c6xabi.attributes, not __TI_build_attributes.
105
106 2010-10-20 Dave Korn <dave.korn.cygwin@gmail.com>
107
108 * plugin.c (get_symbols): Check symbol type correctly.
109
110 2010-10-15 Dave Korn <dave.korn.cygwin@gmail.com>
111
112 * configure.in: If <dlfcn.h> can't be found, try for <Windows.h>
113 * configure: Regenerate.
114 * config.in: Likewise.
115 * plugin.c [!HAVE_DLFCN_H && HAVE_WINDOWS_H] (dlopen): Provide
116 trival LoadLibrary-based replacement for Windows systems.
117 [!HAVE_DLFCN_H && HAVE_WINDOWS_H] (dlsym): Likewise trivial
118 replacement based on GetProcAddress.
119 [!HAVE_DLFCN_H && HAVE_WINDOWS_H] (dlsym): Likewise FreeLibrary.
120 * sysdep.h: Don't infer presence of <dlfcn.h> from ENABLE_PLUGINS
121 anymore, use its own guard.
122
123 2010-10-15 Dave Korn <dave.korn.cygwin@gmail.com>
124
125 * plugin.c (add_input_file): Take copy of input string.
126 (add_input_library): Likewise.
127 (set_extra_library_path): Likewise.
128
129 2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
130
131 Apply LD plugin patch series (part 6/6).
132 * ldlang.c (load_symbols): Handle bfd subsitution when calling the
133 add_archive_element callback.
134 * ldmain.c (add_archive_element)[ENABLE_PLUGINS]: Offer the archive
135 member to the plugins and if claimed set "subsbfd" output parameter to
136 point to the dummy IR-only BFD.
137
138 2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
139
140 Apply LD plugin patch series (part 5/6).
141 * plugin.c (asymbol_from_plugin_symbol): If the bfd is an ELF bfd,
142 find the elf symbol data and set the visibility in the st_other field.
143
144 2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
145
146 Apply LD plugin patch series (part 4/6).
147 * ldlang.c (lang_process)[ENABLE_PLUGINS]: Move invocation of
148 plugin_call_all_symbols_read to before setting of gc_sym_list, and
149 open any new input files that may have been added during it.
150 * ldmain.c (multiple_definition)[ENABLE_PLUGINS]: Call out to
151 plugin_multiple_definition and let it have first say over what to do
152 with the clashing definitions.
153 * plugin.c (no_more_claiming): New boolean variable.
154 (plugin_cached_allow_multiple_defs): Likewise.
155 (add_input_file): Implement.
156 (add_input_library): Likewise.
157 (set_extra_library_path): Likewise.
158 (plugin_call_claim_file): Don't do anything when no_more_claiming set.
159 (plugin_call_all_symbols_read): Set it. Disable link info
160 "allow_multiple_definition" flag, but cache its value.
161 (plugin_multiple_definition): New function.
162 * plugin.h (plugin_multiple_definition): Add prototype.
163 * testplug.c (addfile_enum_t): New enumerated typedef.
164 (add_file_t): New struct typedef.
165 (addfiles_list): New variable.
166 (addfiles_tail_chain_ptr): Likewise.
167 (record_add_file): New function.
168 (parse_option): Parse "add:", "lib:" and "dir:" options and call it.
169 (onall_symbols_read): Iterate the list of new files, libs and dirs,
170 adding them.
171
172 2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
173
174 Apply LD plugin patch series (part 3/6).
175 * ldmain.c (notice)[ENABLE_PLUGINS]: Call plugin_notice.
176 * plugin.c (non_ironly_hash): Add new bfd hash table.
177 (plugin_load_plugins): Exit early if no plugins to load. If plugins
178 do load successfully, set notice_all flag in link info.
179 (get_symbols): Implement.
180 (plugin_load_plugins): Exit early if no plugins to load, else after
181 loading plugins successfully enable notice_all mode.
182 (init_non_ironly_hash): Lazily init non_ironly_hash table.
183 (plugin_notice): Record symbols referenced from non-IR files in the
184 non_ironly_hash. Suppress tracing, cref generation and nocrossrefs
185 tracking for symbols from dummy IR bfds.
186 * plugin.h: Fix formatting.
187 (plugin_notice): Add prototype.
188 * testplug.c (dumpresolutions): New global var.
189 (parse_options): Accept "dumpresolutions".
190 (onall_symbols_read): Get syms and dump resolutions if it was given.
191
192 2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
193
194 Apply LD plugin patch series (part 2/6).
195 * ldfile.c (ldfile_try_open_bfd)[ENABLE_PLUGINS]: Don't return early
196 during compat checks if they pass, instead offer any successfully
197 opened and accepted file to the plugin claim file hooks chain. Create
198 a dummy bfd to accept symbols added by the plugin, if the plugin
199 claims the file.
200 * ldlang.c (lang_process)[ENABLE_PLUGINS]: Call plugin all symbols
201 read hook chain before ldemul_after_open.
202 * ldlang.h (struct lang_input_statement_struct): Add new single-bit
203 'claimed' flag.
204 * plugin.c (IRONLY_SUFFIX): New macro for dummy bfd file suffix.
205 (IRONLY_SUFFIX_LEN): Length of the above string.
206 (plugin_get_ir_dummy_bfd): New function to create the dummy bfd used
207 to store symbols for ir-only files.
208 (is_ir_dummy_bfd): New function to check if a bfd is ir-only.
209 (asymbol_from_plugin_symbol): New function converts symbol formats.
210 (add_symbols): Call it to convert plugin syms to bfd syms and add
211 them to the dummy bfd.
212 * plugin.h: Add missing include guards.
213 (plugin_get_ir_dummy_bfd): Add prototype.
214 (is_ir_dummy_bfd): Likewise.
215 * testplug.c (TV_MESSAGE): New helper macro.
216 (struct claim_file): New struct.
217 (claim_file_t): New typedef.
218 (tag_names[]): Make static and const.
219 (claimfiles_list): New variable.
220 (claimfiles_tail_chain_ptr): Likewise.
221 (last_claimfile): Likewise.
222 (record_claim_file): Record a file to claim on a singly-linked list.
223 (parse_symdefstr): Parse an ASCII representation of a symbol from a
224 plugin option into the fields of a struct ld_plugin_symbol.
225 (record_claimed_file_symbol): Use it to parse plugin option for
226 adding a symbol.
227 (parse_option): Parse claim file and add symbol options.
228 (dump_tv_tag): Use TV_MESSAGE.
229 (onload): Likewise.
230 (onclaim_file): Make static. Use TV_MESSAGE. Scan list of files to
231 claim and claim this file if required, adding any symbols specified.
232 (onall_symbols_read): Make static and use TV_MESSAGE.
233 (oncleanup): Likewise.
234
235 2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
236
237 Apply LD plugin patch series (part 1/6).
238 * configure.in: Add AC_CHECKs for file io and dlfcn headers and
239 functions and AC_SEARCH for -ldl.
240 (enable_plugins): New shell variable set if above tests find dlopen
241 functionality.
242 (ENABLE_PLUGINS): Add related automake conditional.
243 * configure: Regenerate.
244 * config.in: Likewise.
245 * Makefile.am (PLUGIN_C): Declare plugin C source file, conditional
246 on ENABLE_PLUGINS being defined.
247 (PLUGIN_H): Likewise for header file.
248 (PLUGIN_OBJECT): Likewise for object file.
249 (PLUGIN_CFLAGS): Likewise -D flag required to compile plugin support.
250 (AM_CPPFLAGS): Use PLUGIN_CFLAGS.
251 (CFILES): Use PLUGIN_C.
252 (HFILES): Use PLUGIN_H.
253 (OFILES): Use PLUGIN_OBJECT.
254 (ld_new_SOURCES): Use PLUGIN_C.
255 (noinst_LTLIBRARIES)[ENABLE_PLUGINS]: Declare test plugin.
256 (libldtestplug_la_SOURCES)[ENABLE_PLUGINS]: Add automake definition
257 for test plugin.
258 (libldtestplug_la_CFLAGS)[ENABLE_PLUGINS]: Likewise.
259 (libldtestplug_la_LDFLAGS)[ENABLE_PLUGINS]: Likewise.
260 * Makefile.in: Regenerate.
261 * sysdep.h: Include stdarg.h, unistd.h and one of fcntl.h or
262 sys/file.h where available. Include dlfcn.h when ENABLE_PLUGINS.
263 (O_RDONLY): Supply default definition likewise to bfd's sysdep.h
264 (O_WRONLY): Likewise.
265 (O_RDWR): Likewise.
266 (O_ACCMODE): Likewise.
267 (O_BINARY): Likewise.
268 (SEEK_SET): Likewise.
269 (SEEK_CUR): Likewise.
270 (SEEK_END): Likewise.
271 * ldmisc.c (vfinfo): Make non-static. Add %p format char.
272 * ldmisc.h (vfinfo): Declare extern prototype.
273 * lexsup.c (enum option_values)[ENABLE_PLUGINS]: Add new entries for
274 OPTION_PLUGIN and OPTION_PLUGIN_OPT.
275 (ld_options[])[ENABLE_PLUGINS]: Add option data for the above two.
276 (parse_args)[ENABLE_PLUGINS]: Handle them, and load all plugins once
277 option parsing is complete.
278 * ldmain.c (main)[ENABLE_PLUGINS]: Call plugin cleanup hooks just
279 after lang_finish.
280 * plugin.c: New source file.
281 * plugin.h: Likewise new header.
282 * testplug.c: New source file.
283
284 2010-10-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
285
286 * emultempl/solaris2.em (elf_solaris2_before_allocation): Renamed
287 basever_syms to global_syms.
288 Emit global_syms into .dynamic section for all executables and
289 shared objects.
290 (elf_solaris2_after_allocation): New function.
291 (LDEMUL_AFTER_ALLOCATION): Use it.
292 * emulparams/solaris2.sh: New file.
293 * emulparams/elf32_sparc_sol2.sh: Use it.
294 * emulparams/elf64_sparc_sol2.sh: Likewise.
295 * emulparams/elf_i386_sol2.sh: Likewise.
296 * emulparams/elf_x86_64_sol2.sh: Likewise.
297 * Makefile.am (eelf32_sparc_sol2.c): Depend on
298 $(srcdir)/emulparams/solaris2.sh.
299 (eelf64_sparc_sol2.c): Likewise.
300 (eelf_x86_64_sol2.c): Likewise.
301 (eelf_i386_sol2.c): Likewise.
302 * Makefile.in: Regenerate.
303
304 2010-10-06 Nick Clifton <nickc@redhat.com>
305
306 * ld.texinfo: Update description of computation of VMA and LMA
307 addresses for output sections.
308
309 2010-10-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
310
311 * Makefile.am (ALL_64_EMULATIONS): Fix typo in last commit.
312 * Makefile.in: Regenerate.
313
314 * Makefile.am (ALL_EMULATIONS): Rewrite in terms of ...
315 (ALL_EMULATION_SOURCES): ... this new variable.
316 (ALL_64_EMULATIONS): Rewrite in terms of ...
317 (ALL_64_EMULATION_SOURCES): ... this new variable.
318 (EXTRA_ld_new_SOURCES): Rewrite in terms of the _SOURCES
319 variables.
320 (eelf32microblaze.c): Fix indentation.
321 * Makefile.in: Regenerate.
322
323 2010-10-04 Bernd Schmidt <bernds@codesourcery.com>
324
325 * emultempl/xtensaelf.em (replace_insn_sec_with_prop_sec): Use
326 _bfd_elf_single_rel_hdr.
327
328 2010-10-01 Alan Modra <amodra@gmail.com>
329
330 PR ld/12066
331 * ldexp.c (fold_name): Treat absolute symbols as plain numbers.
332 * ld.texinfo (Expression Section): Don't say absolute symbols
333 are addresses.
334
335 2010-09-29 Alan Modra <amodra@gmail.com>
336
337 * ldlang.c (lang_place_orphans): Zero vma when relocatable or non-load
338 section for orphans handled here.
339
340 2010-09-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
341
342 * configure: Regenerate.
343
344 2010-09-23 Dave Korn <dave.korn.cygwin@gmail.com>
345
346 * scripttempl/armcoff.sc: Revert 2010-09-22 change.
347
348 2010-09-23 Alan Modra <amodra@gmail.com>
349
350 * ldlang.c (lang_add_section): Don't copy SEC_RELOC from input
351 to output section on a final link.
352
353 2010-09-22 Kai Tietz <kai.tietz@onevision.com>
354
355 * ldlang.c (lang_add_section): Allow for debugging
356 section to be marked as noload but to keep content.
357 (IGNORE_SECTION): Likewise.
358 (lang_check_section_addresses): Likewise.
359 * ldwrite.c (build_link_order): Likewise.
360
361 * emultempl/pe.em (gld_${EMULATION_NAME}_place_orphan): Add
362 idata to orphan set.
363 * emultempl/pep.em: Likewise.
364 * scripttempl/armcoff.sc: Separate idata
365 and add __IAT_start__ and __IAT_end__ labels.
366 * scripttempl/pe.sc: Likewise.
367 * scripttempl/pep.sc: Likewise.
368
369 2010-09-20 David S. Miller <davem@davemloft.net>
370
371 * emulparams/elf32_sparc.sh: Set NOP to 0x01000000
372
373 2010-09-16 Alan Modra <amodra@gmail.com>
374
375 * ld.texinfo (NOLOAD): Do not erroneously state that contents will
376 appear in output file.
377 * ldlang.c (lang_add_section): Clear SEC_HAS_CONTENTS on noload
378 unless SEC_COFF_SHARED_LIBRARY.
379 (map_input_to_output_sections): Don't set SEC_HAS_CONTENTS for noload
380 output sections.
381 (lang_size_sections_1): Don't test SEC_NEVER_LOAD when deciding
382 to update dot in region. Ditto when setting SEC_ALLOC if dot
383 advanced due to assignment.
384 * ldwrite.c (build_link_order): Don't test SEC_NEVER_LOAD.
385
386 2010-09-15 Kai Tietz <kai.tietz@onevision.com>
387
388 * scripttempl/pep.sc: Add .xdata segment and
389 put into .pdata all segments beginning with .pdata.
390
391 2010-09-10 Alan Modra <amodra@gmail.com>
392
393 PR ld/11931
394 * ldlang.h (lang_for_each_statement_worker): Declare.
395 * ldlang.c (lang_for_each_statement_worker): Make global. Don't
396 recurse into children of output_section_statement with constraint
397 set to -1.
398 (print_assignment): Handle NULL output_section->bfd_section.
399 (lang_size_sections_1): Ignore output section statement address
400 when constraint is -1.
401 * emultempl/xtensaelf.em (lang_for_each_statement_worker): Delete.
402
403 2010-09-09 Tristan Gingold <gingold@adacore.com>
404
405 * NEWS: Add a entry for alpha-vms.
406
407 2010-09-07 Andrew Burgess <aburgess@broadcom.com>
408
409 * ldwrite.c (clone_section): Call bfd_copy_private_section_data on
410 newly cloned section.
411
412 2010-09-02 Richard Henderson <rth@redhat.com>
413
414 * configure.tgt (x86_64-*-mingw*): Add 32-bit pe emulations too.
415
416 2010-08-31 Nick Clifton <nickc@redhat.com>
417
418 * ldlex.l (WILDCHAR): Add the caret and exclamation point
419 characters, so that they can be used inside globs.
420
421 2010-08-31 Nick Clifton <nickc@redhat.com>
422
423 * ld.texinfo (MEMORY): Clarify the behaviour of the ! character in
424 a region's attributes.
425
426 2010-08-31 Alan Modra <amodra@gmail.com>
427
428 * scripttempl/mmo.sc: Move assignment to "Main" inside .text
429 output section statement.
430
431 2010-08-25 H.J. Lu <hongjiu.lu@intel.com>
432
433 PR ld/11946
434 * emultempl/elf32.em (_before_allocation): Check audit entry
435 only on ELF input.
436
437 2010-08-22 H.J. Lu <hongjiu.lu@intel.com>
438
439 PR ld/11937
440 * emultempl/elf32.em (_after_open): Find one .eh_frame section
441 for --eh-frame-hdr.
442
443 2010-08-22 H.J. Lu <hongjiu.lu@intel.com>
444
445 PR ld/11937
446 * emultempl/elf32.em (_after_open): Find an ELF input for
447 --build-id and --eh-frame-hdr.
448
449 2010-08-20 Maciej W. Rozycki <macro@codesourcery.com>
450
451 * Makefile.am (eshlelf_fd.c): Correct the name of the tool
452 directory.
453 * Makefile.in: Regenerate.
454
455 2010-08-20 Nick Clifton <nickc@redhat.com>
456
457 * emultempl/elf32.em (_after_open): Check for get_elf_backend_data
458 returning NULL.
459
460 2010-08-19 Alan Modra <amodra@gmail.com>
461
462 * NEWS: Mention change in linker script expression evaluation.
463
464 2010-08-19 Alan Modra <amodra@gmail.com>
465
466 * ld.texinfo (Expression Section): Detail expression evaluation.
467 (Builtin Functions <ADDR>): Correct.
468 (Builtin Functions <LOADADDR>): Don't mention LOADADDR normally
469 the same as ADDR.
470 (Builtin Functions <SEGMENT_START>): Typo fix.
471 * ldexp.c (new_number): New function.
472 (make_abs, exp_get_abs_int): Cope with NULL expld.result.section.
473 (fold_unary <'~', '!', '-'>): Don't make_abs.
474 (fold_binary): Simplify result section logic. Return NULL section
475 for logical ops.
476 (fold_binary <SEGMENT_START>): Use new_rel_from_abs to set value to
477 a consistent result.
478 (fold_name <SIZEOF_HEADERS>): Return new_number, not new_abs.
479 (fold_name <DEFINED, SIZEOF, ALIGNOF, LENGTH, CONSTANT>): Likewise.
480 (fold_name <NAME>): No need to handle absolute symbols differently
481 from relative ones.
482 (fold_name <ORIGIN>): Don't return valid result when
483 lang_first_phase_enum. Return new_rel_from_abs, not new_abs.
484 (exp_fold_tree_1 <etree_value>): Return new_number, not new_rel.
485 (exp_fold_tree_1): Ajust for NULL expld.result.section. When assigning
486 a plain number to dot, assume the value is relative to expld.section.
487 Make terms not in an output section, absolute.
488 * ldlang.c (print_assignment): Fix style nit.
489 (lang_size_sections_1): Cope with NULL expld.result.section.
490 (lang_do_assignments_1): Likewise.
491
492 2010-08-12 Alan Modra <amodra@gmail.com>
493
494 * ldexp.c (new_rel): Remove "str". Update all call sites.
495 (exp_fold_tree_1): When assigning to dot, calculate nextdot
496 using expld.result.section rather than expld.section.
497
498 2010-08-06 Alan Modra <amodra@gmail.com>
499
500 PR ld/11887
501 * ldlang.c (lang_add_vers_depend): Don't leave version_needed
502 uninitialised.
503
504 2010-07-28 Alan Modra <amodra@gmail.com>
505
506 * ldexp.c (exp_print_tree): Print function-like binary nodes as
507 functions rather than in-fix operators. Use fputs and fputc
508 where appropriate.
509
510 2010-07-23 Naveen.H.S <naveen.S@kpitcummins.com>
511 Ina Pandit <ina.pandit@kpitcummins.com>
512
513 * configure.tgt: Match all v850 targets.
514
515 2010-07-20 Mike Frysinger <vapier@gentoo.org>
516
517 * ld.texinfo (VERSION): Remove "int" from example script and add ";".
518 Declare the default language as C.
519
520 2010-07-17 Alan Modra <amodra@gmail.com>
521
522 * ldlang.c (lang_check_section_addresses): Catch overlap for
523 sections that wrap around the address space.
524
525 2010-06-29 Nick Clifton <nickc@redhat.com>
526
527 * scripttempl/xstormy16.sc (.gcc_except_table): Include sections
528 with the .gcc_except_table. prefix.
529
530 2010-06-29 Alan Modra <amodra@gmail.com>
531
532 * emulparams/maxqcoff.sh: Delete file.
533 * scripttempl/maxqcoff.sc: Delete file.
534 * Makefile.am: Remove references to maxq.
535 * configure.tgt: Likewise.
536 * Makefile.in: Regenerate.
537 * configure: Regenerate.
538 * po/POTFILES.in: Regenerate.
539
540 2010-06-27 Alan Modra <amodra@gmail.com>
541
542 * pe-dll.c (fill_edata): Avoid set but unused warning.
543 (pe_walk_relocs_of_symbol): Delete set but unused variables.
544 (generate_reloc, pe_implied_import_dll): Likewise.
545 * emultempl/aix.em (open_dynamic_archive): Likewise.
546 * emultempl/xtensaelf.em (replace_insn_sec_with_prop_sec): Likewise.
547 (xtensa_layout_wild): Likewise.
548 (xtensa_colocate_output_literals_callback): Likewise.
549
550 2010-06-25 Alan Modra <amodra@gmail.com>
551
552 * emultempl/ppc64elf.em (prelim_size_sections): New function.
553 (ppc_before_allocation): Use it. Size sections before toc edit too.
554
555 2010-06-25 Alan Modra <amodra@gmail.com>
556
557 * emultempl/elf32.em (find_exp_assignment): Handle etree_provided.
558
559 2010-06-20 Danny Smith <dannysmith@users.sourceforge.net>
560
561 * emultempl/pe.em (gld_${EMULATION_NAME}_before_parse): Make
562 auto-import and merge-rdata defaults same for i[3-7]86 and
563 x86_64 mingw.
564
565 2010-06-15 Joseph Myers <joseph@codesourcery.com>
566
567 * emulparams/elf32_tic6x_le.sh (ATTRS_SECTIONS): Define.
568
569 2010-06-09 Dave Korn <dave.korn.cygwin@gmail.com>
570
571 PR ld/11603
572 * pe-dll.c (process_def_file_and_drectve): Reorder check for
573 forwarded export name after check for ordinary export.
574
575 2010-06-08 Bernd Schmidt <bernds@codesourcery.com>
576
577 * emulparams/elf32_tic6x_le.sh (OTHER_BSS_SECTIONS): New.
578
579 2010-06-08 Nick Clifton <nickc@redhat.com>
580
581 * fdl.texi: Replace with v1.3 text.
582 * ld.texinfo: Replace abbreviated 20th century year numbers with
583 full versions.
584 * ldint.texinfo: Likewise.
585 Relicense under GFDL v1.3. Replace text of v1.1 FDL with an
586 include of the fdl.texi file.
587
588 2010-06-01 Tristan Gingold <gingold@adacore.com>
589
590 * scripttempl/alphavms.sc: Add comments. Move $LINK$ to the
591 readonly output-section. Handle LIB$INITIALIZE and sections
592 created by gcc.
593 * emultempl/vms.em (vms_place_orphan): Add comments.
594
595 2010-05-28 Nick Clifton <nickc@redhat.com>
596
597 * Makefile.am (eshlelf_fd.c): Fix typo in rule.
598 * Makefile.in: Regenerate.
599
600 2010-05-26 H.J. Lu <hongjiu.lu@intel.com>
601
602 PR ld/11628
603 * ldexp.c (fold_binary): Warn if value of SEGMENT_START isn't
604 multiple of maximum page size.
605
606 2010-05-25 Nick Clifton <nickc@redhat.com>
607
608 * Makefile.am: Fix typo.
609 * Makefile.in: Regenerate.
610
611 2010-05-25 Daniel Jacobowitz <dan@codesourcery.com>
612 Joseph Myers <joseph@codesourcery.com>
613 Andrew Stubbs <ams@codesourcery.com>
614
615 * Makefile.am (ALL_EMULATIONS): Add eshelf_fd.o and eshlelf_fd.o.
616 (eshelf_fd.c, eshlelf_fd.c): New rules.
617 * Makefile.in: Regenerate.
618 * configure.tgt (sh-*-uclinux*): Add shelf_fd and shlelf_fd
619 emulations.
620 * emulparams/shelf_fd.sh: New file.
621 * emulparams/shlelf_fd.sh: New file.
622 * emulparams/shlelf_linux.sh: Update comment.
623
624 2010-05-25 Jay Krell <jay.krell@cornell.edu>
625
626 PR ld/11621
627 * Makefile.am: Replace all occurences of .o with .@OBJEXT@
628 * Makefile.in: Regenerate.
629
630 2010-05-25 Kai Tietz <kai.tietz@onevision.com>
631
632 * deffilep.y (opt_name): Allow leading dot.
633 (dot_name): Likewise.
634 (anylang_id): Likewise.
635 * emultempl/pep.em (gld_${EMULATION_NAME}_before_parse): Enable by
636 default auto_import.
637 (gld${EMULATION_NAME}_handle_option): Warn about v1.
638 (pep_find_data_imports): Remove superflous warnings about
639 auto-import.
640 (gld_${EMULATION_NAME}_get_script): Don't merge for auto-import
641 and active pseudo-relocation-v2 rdata into data section.
642 * emultempl/pe.em (default_merge_rdata): New shell variable.
643 (MERGE_RDATA_V2): New macro.
644 (gld_${EMULATION_NAME}_get_script): Adjust rule for auto-import
645 selected script.
646
647 2010-05-15 Kai Tietz <kai.tietz@onevision.com>
648
649 * emultempl/pe.em (is_underscoring): New helper function.
650 (gld_${EMULATION_NAME}_before_parse): Replace code
651 for pe(p)_leading_underscore detection by is_underscoring.
652 (U): Likewise.
653 (GET_INIT_SYMBOL_NAME): Likewise.
654 (U_SIZE): Likewise.
655 (set_pe_name):
656 (set_entry_point):
657 (gld_${EMULATION_NAME}_set_symbols):
658 * emultempl/pep.em: Likewise.
659 * pe-dll.c (pe_detail_list): Set default
660 underscoring for x64 target.
661 (pe_dll_id_target): Add initialization of
662 pe(p)_leading_underscore.
663
664 2010-05-15 Dave Korn <dave.korn.cygwin@gmail.com>
665
666 * pe-dll.c: Removed trailing whitespaces.
667
668 2010-05-14 Alan Modra <amodra@gmail.com>
669
670 PR ld/11583
671 * ldexp.c (exp_fold_tree_1): If assignment source expression is
672 invalid, make the destination symbol undefined.
673
674 2010-05-11 Kai Tietz <kai.tietz@onevision.com>
675
676 * emultempl/pe.em (gld_${EMULATION_NAME}_before_parse):
677 Initialize pe(p)_leading_underscore variable.
678 (set_pe_name): Likewise.
679 * emultempl/pep.em: Likewise.
680 Additional change default to non-underscore for
681 pep_leading_underscore equal to -1.
682
683 2010-05-07 Tristan Gingold <gingold@adacore.com>
684
685 * Makefile.in: Regenerate with automake 1.11.1.
686 * aclocal.m4: Ditto.
687
688 2010-05-05 Nick Clifton <nickc@redhat.com>
689
690 * po/es.po: Updated Spanish translation.
691
692 2010-04-27 Kai Tietz <kai.tietz@onevision.com>
693
694 * pe-dll.c (_nm_-symbols): Use always underscored variant
695 for symbols.
696 (__imp_-symbols): Likewise.
697 (___imp_-symbols): Likewise.
698 * NEWS: Mention ABI change for x64 PE-COFF.
699
700 2010-04-27 H.J. Lu <hongjiu.lu@intel.com>
701
702 * Makefile.am (install-exec-local): Properly install ld as
703 default cross linker.
704 * Makefile.in: Regenerated.
705
706 2010-04-27 H.J. Lu <hongjiu.lu@intel.com>
707 Nick Clifton <nickc@redhat.com>
708
709 * configure.in (install_as_default): Define and set to true
710 unless --enable-gold=both/gold has been specified.
711 * configure: Regenerate.
712
713 * Makefile.am (transform): Use ld.bfd as the default name of
714 the linker.
715 (install-exec-local): Also install the executable as a binary
716 named 'ld' if install_as_default is true.
717 * Makefile.in: Regenerate.
718
719 2010-04-22 Nick Clifton <nickc@redhat.com>
720
721 * po/ld.pot: Updated by the Translation project.
722 * po/vi.po: Updated Vietnamese translation.
723 * po/bg.po: Updated Bulgarian translation.
724
725 2010-04-15 Andrew Haley <aph@redhat.com>
726
727 * emultempl/armelf.em (merge_exidx_entries): New variable.
728 (OPTION_NO_MERGE_EXIDX_ENTRIES): New definition.
729 ("no-merge-exidx-entries"): New option.
730 * ld.texinfo (merge-exidx-entries): Document this option.
731
732 2010-04-14 Tristan Gingold <gingold@adacore.com>
733
734 * emulparams/alphavms.sh: New file.
735 * emultempl/vms.em: New file.
736 * scripttempl/alphavms.sc: New file.
737 * configure.tgt (alpha*-*-*vms*): Added.
738 * Makefile.am (ALL_EMULATIONS): Add ealphavms.o
739 (ealphavms.c): New target.
740 * Makefile.in: Regenerate.
741
742 2010-04-09 Nick Clifton <nickc@redhat.com>
743
744 * ldlang.c (wild_sort): Remove unused variable section_name.
745
746 2010-04-07 Alan Modra <amodra@gmail.com>
747
748 * configure: Regenerate.
749
750 2010-04-06 H.J. Lu <hongjiu.lu@intel.com>
751
752 PR ld/11434
753 * ld/testsuite/ld-x86-64/unique1.d: New.
754 * ld/testsuite/ld-x86-64/unique1.s: Likewise.
755
756 * ld-x86-64/x86-64.exp: Run unique1.
757
758 2010-04-05 Kai Tietz <kai.tietz@onevision.com>
759
760 * emultempl/pep.em (U): Macro modified.
761 (U_SIZE): New helper macro.
762 (GET_INIT_SYMBOL_NAME): Likewise.
763 (enum options): Add OPTION_NO_LEADING_UNDERSCORE
764 and OPTION_LEADING_UNDERSCORE enumerator-values.
765 (gld${EMULATION_NAME}_add_options): Add --(no-)leading-underscore
766 option.
767 (definfo): Add new member is_c_symbol.
768 (D): Add to macro underscore mode parameter.
769 (init): Add definition for is_c_symbol.
770 (gld_${EMULATION_NAME}_list_options): Display new options.
771 (set_pep_name): Adjust underscoring dependent fixed
772 symbol handling.
773 (gld_${EMULATION_NAME}_set_symbols): Likewise.
774 (saw_option): Likewise.
775 (gld_${EMULATION_NAME}_unrecognized_file): Likewise.
776 (set_entry_point): Initial initial_symbol_char dependent to
777 target's default and new option flag pep_leading_underscore.
778 * emultempl/pe.em (U): Macro modified.
779 (U_SIZE): New helper macro.
780 (GET_INIT_SYMBOL_NAME): Likewise.
781 (OPTION_LEADING_UNDERSCORE): Add new option define.
782 (OPTION_NO_LEADING_UNDERSCORE): Likewise.
783 (gld${EMULATION_NAME}_add_options): Add --(no-)leading-underscore
784 option.
785 (definfo): Add new member is_c_symbol.
786 (D): Add to macro underscore mode parameter.
787 (init): Add definition for is_c_symbol.
788 (gld_${EMULATION_NAME}_list_options): Display new options.
789 (set_pep_name): Adjust underscoring dependent fixed
790 symbol handling.
791 (gld_${EMULATION_NAME}_set_symbols): Likewise.
792 (saw_option): Likewise.
793 (gld_${EMULATION_NAME}_unrecognized_file): Likewise.
794 (set_entry_point): Initial initial_symbol_char dependent to
795 target's default and new option flag pep_leading_underscore.
796 * pe-dll.c (pe_leading_underscore): New flag variable.
797 (pe_detail_list): Remove const to allow modify of
798 member underscore.
799 (pe_dll_id_target): Initialize pe_details' underscore variable
800 dependent to target's default and flag pe_leading_underscore.
801 * pe-dll.h (pe_leading_underscore): Add extern declaration of
802 option flag.
803 * pep-dll.c (pe_leading_underscore): Add alias define for
804 pep_leading_underscore.
805 * pep-dll.h (pep_leading_underscore) Add extern declaration of
806 option flag.
807 * ld.texinfo: Add documentation for --(no-)leading-underscore
808 option.
809
810 2010-03-26 Alan Modra <amodra@gmail.com>
811
812 PR ld/11426
813 * configure.host (many linux targets <HOSTING_CRT0>): Remove edits.
814 (m68*-motorola-sysv <HOSTING_LIBS>): Use here doc, not echo.
815
816 2010-03-25 Joseph Myers <joseph@codesourcery.com>
817
818 * Makefile.am (ALL_EMULATIONS): Add eelf32_tic6x_be.o and
819 eelf32_tic6x_le.o.
820 (eelf32_tic6x_be.c, eelf32_tic6x_le.c): New.
821 * NEWS: Add news entry for TI C6X support.
822 * configure.tgt (tic6x-*-*): New.
823 * emulparams/elf32_tic6x_be.sh, emulparams/elf32_tic6x_le.sh: New.
824
825 2010-03-23 Joseph Myers <joseph@codesourcery.com>
826
827 * scripttempl/elf.sc (RODATA_NAME, SDATA_NAME, SBSS_NAME,
828 BSS_NAME): Define if not already defined. Use in place of some
829 hardcoded section names.
830
831 2010-03-18 H.J. Lu <hongjiu.lu@intel.com>
832
833 * scripttempl/elf.sc (INIT_ARRAY): Re-indent.
834
835 2010-03-18 Aymeric Vincent <vincent@labri.fr>
836
837 PR ld/11384
838 * emultempl/sh64elf.em: Add missing EOF.
839
840 2010-03-18 Doug Semler <dougsemler@gmail.com>
841
842 * pe-dll.c (make_one): Make text section readonly.
843 (make_one): Add *ABS* symbol @feat.00 with value 1 to tag
844 the jump stub on X86 as /SAFESEH compatible for
845 native toolchains.
846
847 2010-03-17 Alan Modra <amodra@gmail.com>
848
849 * ldlang.c (lang_size_sections_1): Remove "s" param. Set "s" from
850 *prev instead. Update all callers.
851
852 2010-03-15 Daniel Jacobowitz <dan@codesourcery.com>
853
854 * ldlang.c (lang_insert_orphan): Place loadable orphans in the same
855 region and phdrs as their placement section.
856
857 2010-03-15 Alan Modra <amodra@gmail.com>
858
859 * emultempl/ppc64elf.em (move_input_section, sort_toc_sections): New.
860 (ppc_before_allocation): Call sort_toc_sections.
861 (no_toc_sort, OPTION_NO_TOC_SORT): New.
862 (PARSE_AND_LIST_PROLOGUE, PARSE_AND_LIST_LONGOPTS,
863 PARSE_AND_LIST_OPTIONS): Handle --no-toc-sort.
864
865 2010-03-14 Alan Modra <amodra@gmail.com>
866
867 PR ld/11378
868 * emultempl/ppc64elf.em (gld${EMULATION_NAME}_after_allocation): Call
869 ppc64_elf_check_init_fini and warn if .init/.fini use different TOCs.
870
871 2010-03-11 George Gensure <werkt0@gmail.com>
872
873 PR ld/11367
874 * ldcref.c (handle_asneeded_cref): Correct copying of refs.
875
876 2010-03-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
877
878 * Makefile.am (ALL_EMULATIONS): Add eelf32_sparc_sol2.o,
879 eelf_i386_sol2.o.
880 (ALL_64_EMULATIONS): Add eelf_x86_64_sol2.o, eelf64_sparc_sol2.o.
881 (eelf32_sparc_sol2.c): New rule.
882 (eelf64_sparc_sol2.c): Likewise.
883 (eelf_x86_64_sol2.c): Likewise.
884 (eelf_i386_sol2.c): Likewise.
885 * Makefile.in: Regenerate.
886 * configure.tgt (i[3-7]86-*-solaris2*): Change targ_emul to
887 elf_i386_sol2.
888 Add elf_i386_ldso, elf_x86_64_sol2 to targ_extra_emuls.
889 (x86_64-*-solaris2*): Change targ_emul to elf_x86_64_sol2.
890 Add elf_x86_64, elf_i386_sol2, elf_i386 to targ_extra_emuls.
891 (sparc-*-solaris2.[0-6]*): Change targ_emul to elf32_sparc_sol2.
892 Add target_extra_emuls.
893 (sparc-*-solaris2*): Change targ_emul to elf32_sparc_sol2.
894 Add elf32_sparc, elf64_sparc_sol2 to targ_extra_emuls.
895 (sparcv9-*-solaris2*): Change targ_emul to elf64_sparc_sol2.
896 Add elf64_sparc, elf32_sparc_sol2 to target_extra_emuls.
897 * emulparams/elf32_sparc_sol2.sh: New file.
898 * emulparams/elf64_sparc_sol2.sh: New file.
899 * emulparams/elf_i386_sol2.sh: New file.
900 * emulparams/elf_x86_64_sol2.sh: New file.
901 * emultempl/solaris2.em: New file.
902
903 2010-02-27 H.J. Lu <hongjiu.lu@intel.com>
904
905 PR ld/11330
906 * ld.texinfo: Replace explicitely with explicitly.
907
908 2010-02-27 Jie Zhang <jie@codesourcery.com>
909
910 * scripttempl/armbpabi.sc: Don't combine .init_array.* or
911 .fini_array.* when do relocatable linking.
912 * scripttempl/elf.sc: Likewise.
913 * scripttempl/elf32sh-symbian.sc: Likewise.
914 * scripttempl/elf64hppa.sc: Likewise.
915 * scripttempl/elfxtensa.sc: Likewise.
916
917 2010-02-26 Alan Modra <amodra@gmail.com>
918
919 * scripttempl/elf.sc (.fini_array): Place input .fini_array after
920 .fini_array.*.
921 * scripttempl/armbpabi.sc: Likewise.
922 * scripttempl/elf32sh-symbian.sc: Likewise.
923 * scripttempl/elf64hppa.sc: Likewise.
924 * scripttempl/elfxtensa.sc: Likewise.
925
926 2010-02-25 Alan Modra <amodra@gmail.com>
927
928 PR ld/11304
929 * ldlang.c (init_os): Remove isec param. Don't check for
930 bfd_section already set or call bfd_init_private_section_data
931 here.
932 (exp_init_os): Update init_os call.
933 (lang_add_section): Tidy. Really don't set SEC_LINK_ONCE
934 flags. Call bfd_init_private_section_data here.
935 (map_input_to_output_sections): Tidy. Update init_os calls.
936 Use os->sectype to select sec flags for lang_data_statement.
937
938 2010-02-23 Alan Modra <amodra@gmail.com>
939
940 PR ld/11304
941 * ldlang.c: Revert last patch.
942
943 2010-02-23 Nick Clifton <nickc@redhat.com>
944
945 * po/bg.po: Updated Bulgarian translation.
946
947 2010-02-22 Alan Modra <amodra@gmail.com>
948
949 PR ld/11304
950 * ldlang.c (exp_init_os): Delete forward declaration.
951 (init_os): Don't check for bfd_section already created and don't
952 init addr_tree and load_base expressions here.
953 (map_input_to_output_sections): Only map input to output sections
954 and set constraints here, and as an exception, create output
955 sections which have their address set. Move all the other code to..
956 (create_other_output_sections): ..here. New function. Handle init
957 of addr_tree and load_base here too.
958 (lang_process): Call create_other_output_sections.
959
960 2010-02-19 Alan Modra <amodra@gmail.com>
961
962 * Makefile.am (eelf32_i960.c): Depend on ELF_GEN_DEPS, not ELF_DEPS.
963 * Makefile.in: Regenerate.
964
965 2010-02-19 Alan Modra <amodra@gmail.com>
966
967 * ldlang.c (unique_section_p): Add os param. Allow group
968 sections to match /DISCARD/. Update all callers.
969 * emultempl/genelf.em (gld${EMULATION_NAME}_before_allocation): New.
970 (LDEMUL_BEFORE_ALLOCATION): Define.
971
972 2010-02-15 Nick Clifton <nickc@redhat.com>
973
974 * po/vi.po: Updated Vietnamese translation.
975
976 2010-02-10 Richard Sandiford <r.sandiford@uk.ibm.com>
977
978 * Makefile.am (CFILES): Add ldlex-wrapper.c.
979 (OFILES): Replace ldlex.c with ldlex-wrapper.c.
980 (ldlex.o): Replace with...
981 (ldlex-wrapper.o): ...this new rule.
982 (EXTRA_ld_new_SOURCES): Add ldlex.l.
983 (ld_new_SOURCES): Replace ldlex.l with ldlex-wrapper.c.
984 * Makefile.in: Regenerate.
985 * ldlex.l (sysdep.h): Don't include here.
986 * ldlex-wrapper.c: New file.
987
988 2010-02-09 Alan Modra <amodra@gmail.com>
989
990 * emultempl/ppc64elf.em (ppc_before_allocation): Update for changed
991 function parameters.
992
993 2010-02-05 Nick Clifton <nickc@redhat.com>
994
995 * configure.in (ALL_LIBGUAS): Add bg.
996 * configure: Regenerate.
997 * po/bg.po: New Bulgarian translation.
998
999 2010-02-05 Ryan Mansfield <rmansfield@qnx.com>
1000
1001 * emultempl/armelf.em (PARSE_AND_LIST_OPTIONS): Fix help for
1002 --target1-abs and --target1-rel options.
1003
1004 2010-02-03 Nick Clifton <nickc@redhat.com>
1005
1006 * emultempl/alphaelf.em: Update value expected from elf_object_id.
1007 * emultempl/hppaelf.em: Likewise.
1008 * emultempl/mipself.em: Likewise.
1009 * emultempl/ppc32elf.em: Likewise.
1010 * emultempl/ppc64elf.em: Likewise.
1011
1012 2010-02-03 Alan Modra <amodra@gmail.com>
1013
1014 * emultempl/ppc64elf.em (build_toc_list): Report errors from
1015 ppc64_elf_next_toc_section.
1016 (after_allocation): Update for changed function names and params.
1017 Run second pass of multitoc partitioning.
1018
1019 2010-01-21 Jon Grant <jg@jguk.org>
1020 Nick Clifton <nickc@redhat.com>
1021
1022 PR 4437
1023 * ldfile.c: (ldfile_open_file): Do not stop link upon encountering
1024 a missing file or library. Instead mark the entry as missing and
1025 set the global flag to indicate that missing files were
1026 encountered.
1027 * ldlang.c (missing_files): New exported variable.
1028 (load_symbols): Skip loading if the file is missing.
1029 (open_input_bfds): Terminate link if any input files were
1030 missing.
1031 * ldlang.h (struct lang_input_statement_struct): Add missing_file
1032 field.
1033 Add export of missing_file variable.
1034
1035 2010-01-13 DJ Delorie <dj@redhat.com>
1036
1037 * emultempl/elf32.em (_place_orphan): If an input section doesn't
1038 match an existing output section, but an unused output section
1039 statement does match, use it.
1040 * emultempl/pe.em (_place_orphan): Likewise.
1041 * emultempl/pep.em (_place_orphan): Likewise.
1042
1043 2010-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1044
1045 * configure: Regenerate.
1046 * Makefile.in: Regenerate.
1047
1048 2010-01-08 H.J. Lu <hongjiu.lu@intel.com>
1049
1050 * ldver.c (ldversion): Change to "Copyright 2010".
1051
1052 2010-01-08 Alan Modra <amodra@gmail.com>
1053
1054 PR 11107
1055 * emultempl/vxworks.em: Expand tr arguments to suit non-GNU tr.
1056
1057 For older changes see ChangeLog-2009
1058 \f
1059 Local Variables:
1060 mode: change-log
1061 left-margin: 8
1062 fill-column: 74
1063 version-control: never
1064 End:
This page took 0.062566 seconds and 5 git commands to generate.