Remove IEEE 695 object support
[deliverable/binutils-gdb.git] / ld / ChangeLog
index d117b7e4741f783bd01d3e2f7020807d622fba30..7b7564350225cc4811ea2963a80ca39306e5c707 100644 (file)
@@ -1,3 +1,454 @@
+2018-04-16  Alan Modra  <amodra@gmail.com>
+
+       * ld.texinfo: Remove IEEE 695 support.
+       * mri.c: Likewise.
+
+2018-04-16  Alan Modra  <amodra@gmail.com>
+
+       * Makefile.am: Remove tandem support.
+       * configure.tgt: Likewise.
+       * emulparams/st2000.sh: Delete.
+       * scripttempl/st2000.sc: Delete.
+       * Makefile.in: Regenerate.
+       * po/BLD-POTFILES.in: Regenerate.
+
+2018-04-16  Alan Modra  <amodra@gmail.com>
+
+       * Makefile.am: Remove newsos3 support.
+       * configure.tgt: Likewise.
+       * emulparams/news.sh: Delete.
+       * Makefile.in: Regenerate.
+       * po/BLD-POTFILES.in: Regenerate.
+
+2018-04-16  Alan Modra  <amodra@gmail.com>
+
+       * Makefile.am: Remove netware support.
+       * configure.tgt: Likewise.
+       * testsuite/ld-powerpc/powerpc.exp: Likewise.
+       * emulparams/i386nw.sh: Delete.
+       * emulparams/ppcnw.sh: Delete.
+       * scripttempl/nw.sc: Delete.
+       * Makefile.in: Regenerate.
+       * po/BLD-POTFILES.in: Regenerate.
+
+2018-04-14  Alan Modra  <amodra@gmail.com>
+
+       * ldmain.c (main): Move config.maxpagesize and
+       config.commonpagesize initialization to..
+       * ldemul.c (after_parse_default): ..here.
+       * testsuite/ld-powerpc/ppc476-shared.d: Pass -z common-page-size.
+       * testsuite/ld-powerpc/ppc476-shared2.d: Likewise.
+
+2018-04-14  Alan Modra  <amodra@gmail.com>
+
+       * emulparams/elf32ppcwindiss.sh: Rewrite to use elf32ppc.sh.
+       * emulparams/ppclynx.sh: Likewise.
+
+2018-04-11  Alan Modra  <amodra@gmail.com>
+
+       * emulparams/coff_i860.sh: Delete.
+       * emulparams/elf32_i860.sh: Delete.
+       * emulparams/elf32_i960.sh: Delete.
+       * emulparams/gld960.sh: Delete.
+       * emulparams/gld960coff.sh: Delete.
+       * emulparams/lnk960.sh: Delete.
+       * emultempl/gld960.em: Delete.
+       * emultempl/gld960c.em: Delete.
+       * emultempl/lnk960.em: Delete.
+       * scripttempl/i860coff.sc: Delete.
+       * scripttempl/i960.sc: Delete.
+       * ld.texinfo: Remove i960 support.
+       * Makefile.am: Remove i860 and i960 support.
+       * configure.tgt: Likewise.
+       * testsuite/ld-discard/extern.d: Likewise.
+       * testsuite/ld-discard/start.d: Likewise.
+       * testsuite/ld-discard/static.d: Likewise.
+       * testsuite/ld-elf/compressed1d.d: Likewise.
+       * testsuite/ld-elf/group1.d: Likewise.
+       * testsuite/ld-elf/group3b.d: Likewise.
+       * testsuite/ld-elf/group8a.d: Likewise.
+       * testsuite/ld-elf/group8b.d: Likewise.
+       * testsuite/ld-elf/group9a.d: Likewise.
+       * testsuite/ld-elf/group9b.d: Likewise.
+       * testsuite/ld-elf/linkonce2.d: Likewise.
+       * testsuite/ld-elf/merge.d: Likewise.
+       * testsuite/ld-elf/merge2.d: Likewise.
+       * testsuite/ld-elf/merge3.d: Likewise.
+       * testsuite/ld-elf/orphan-10.d: Likewise.
+       * testsuite/ld-elf/orphan-11.d: Likewise.
+       * testsuite/ld-elf/orphan-12.d: Likewise.
+       * testsuite/ld-elf/orphan-9.d: Likewise.
+       * testsuite/ld-elf/orphan-region.d: Likewise.
+       * testsuite/ld-elf/orphan.d: Likewise.
+       * testsuite/ld-elf/orphan3.d: Likewise.
+       * testsuite/ld-elf/pr12851.d: Likewise.
+       * testsuite/ld-elf/pr12975.d: Likewise.
+       * testsuite/ld-elf/pr13177.d: Likewise.
+       * testsuite/ld-elf/pr13195.d: Likewise.
+       * testsuite/ld-elf/pr17550a.d: Likewise.
+       * testsuite/ld-elf/pr17550b.d: Likewise.
+       * testsuite/ld-elf/pr17550c.d: Likewise.
+       * testsuite/ld-elf/pr17550d.d: Likewise.
+       * testsuite/ld-elf/pr17615.d: Likewise.
+       * testsuite/ld-elf/pr20528a.d: Likewise.
+       * testsuite/ld-elf/pr20528b.d: Likewise.
+       * testsuite/ld-elf/pr21562a.d: Likewise.
+       * testsuite/ld-elf/pr21562b.d: Likewise.
+       * testsuite/ld-elf/pr21562c.d: Likewise.
+       * testsuite/ld-elf/pr21562d.d: Likewise.
+       * testsuite/ld-elf/pr21562i.d: Likewise.
+       * testsuite/ld-elf/pr21562j.d: Likewise.
+       * testsuite/ld-elf/pr21562k.d: Likewise.
+       * testsuite/ld-elf/pr21562l.d: Likewise.
+       * testsuite/ld-elf/pr21562m.d: Likewise.
+       * testsuite/ld-elf/pr21562n.d: Likewise.
+       * testsuite/ld-elf/pr22677.d: Likewise.
+       * testsuite/ld-elf/pr22836-1a.d: Likewise.
+       * testsuite/ld-elf/pr22836-1b.d: Likewise.
+       * testsuite/ld-elf/pr349.d: Likewise.
+       * testsuite/ld-elf/sec-to-seg.exp: Likewise.
+       * testsuite/ld-elf/sec64k.exp: Likewise.
+       * testsuite/ld-elf/warn1.d: Likewise.
+       * testsuite/ld-elf/warn2.d: Likewise.
+       * testsuite/ld-elf/warn3.d: Likewise.
+       * testsuite/lib/ld-lib.exp: Likewise.
+       * Makefile.in: Regenerate.
+       * po/BLD-POTFILES.in: Regenerate.
+
+2018-04-11  Alan Modra  <amodra@gmail.com>
+
+       * testsuite/ld-elf/shared.exp (AFLAGS_PIC): Add -mpic for nds32.
+
+2018-04-09  Alan Modra  <amodra@gmail.com>
+
+       * po/BLD-POTFILES.in: Regenerate.
+
+2018-04-09  Alan Modra  <amodra@gmail.com>
+
+       * emultempl/ppc64elf.em (no_inline_plt): New var.
+       (ppc_before_allocation): Call ppc64_elf_inline_plt.
+       (enum ppc64_opt): Add OPTION_NO_INLINE_OPT.
+       (PARSE_AND_LIST_LONGOPTS, PARSE_AND_LIST_OPTIONS,
+       PARSE_AND_LIST_ARGS_CASES): Handle --no-inline-optimize.
+       * emultemps/ppc32elf.em (no_inline_opt): New var.
+       (prelim_size_sections): New function, extracted from..
+       (ppc_before_allocation): ..here.  Call ppc_elf_inline_plt.
+       (enum ppc32_opt): Add OPTION_NO_INLINE_OPT.
+       (PARSE_AND_LIST_LONGOPTS, PARSE_AND_LIST_OPTIONS,
+       PARSE_AND_LIST_ARGS_CASES): Handle --no-inline-optimize.
+
+2018-04-09  Alan Modra  <amodra@gmail.com>
+
+       * emulparams/elf32ppc.sh (OTHER_RELRO_SECTIONS_2): Add .branch_lt.
+       (OTHER_GOT_RELOC_SECTIONS): Add .rela.branch_lt.
+       * testsuite/ld-powerpc/elfv2so.d: Update for symbol/stub reordering.
+       * testsuite/ld-powerpc/relbrlt.d: Likewise.
+       * testsuite/ld-powerpc/relbrlt.s: Likewise.
+       * testsuite/ld-powerpc/tlsso.r: Likewise.
+       * testsuite/ld-powerpc/tlstocso.r: Likewise.
+
+2018-04-09  Alan Modra  <amodra@gmail.com>
+
+       * ppc32elf.em (ppc_finish): Call ppc_finish_symbols.
+
+2018-04-05  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR gas/22318
+       * configure: Regenerated.
+
+2018-04-05  Nick Clifton  <nickc@redhat.com>
+
+       PR 23030
+       * emulparams/elf64_ia64.sh (OTHER_READONLY_SECTIONS): Make sure
+       that the .IA_64.unwind_info and .IA_64.unwind sections are not
+       subject to garbage collection.
+
+2018-04-04  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * deffile.h (def_file_add_import_from): Declare.
+       (def_file_add_import_at): Likewise.
+       * deffilep.y (fill_in_import): New function extracted from...
+       (def_file_add_import): ...here.  Call it.
+       (def_file_add_import_from): New function.
+       (def_file_add_import_at): Likewise.
+       * pe-dll.c (pe_implied_import_dll): Use an optimized version of the
+       insertion loop for imported symbols if possible.
+
+2018-04-04  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * emultempl/pe.em (U_SIZE): Delete.
+       (pe_data_import_dll): Likewise.
+       (make_import_fixup): Return void, take 4th parameter and pass it down
+       in call to pe_create_import_fixup.
+       (pe_find_data_imports): Move to...
+       (gld_${EMULATION_NAME}_after_open): Run the stdcall fixup pass after
+       the auto-import pass and add a guard before running the latter.
+       * emultempl/pep.em (U_SIZE): Delete.
+       (pep_data_import_dll): Likewise.
+       (make_import_fixup): Return void, take 4th parameter and pass it down
+       in call to pe_create_import_fixup.
+       (pep_find_data_imports): Move to...
+       (gld_${EMULATION_NAME}_after_open): Run the stdcall fixup pass after
+       the auto-import pass and add a guard before running the latter.
+       * pe-dll.c (runtime_pseudp_reloc_v2_init): Change type to bfd_boolean.
+       (pe_walk_relocs_of_symbol): Rename into...
+       (pe_walk_relocs): ...this.  Add 2 more parameters,4th parameter to the
+       callback prototype and pass 4th parameter in calls to the callback.
+       If the import hash table is present, invoke the callback on the reloc
+       if the symbol name is in the table.
+       (pe_find_data_imports): ...here.  Take 2 parameters.  Build an import
+       hash table for the pseudo-relocation support version 2.  When it is
+       built, walk the relocations only once at the end; when it is not, do
+       not build a fixup when the symbol isn't part of an import table.
+       Issue the associated warning only after a first fixup is built.
+       (tmp_seq2): Delete.
+       (make_singleton_name_imp): Likewise.
+       (make_import_fixup_mark): Return const char * and a stable string.
+       (make_import_fixup_entry): Do not deal with the pseudo-relocation
+       support version 2.
+       (make_runtime_pseudo_reloc): Factor out code and fix formatting.
+       (pe_create_import_fixup): Add 5th parameter.  Clearly separate the
+       pseudo-relocation support version 2 from the rest.  Fix formatting.
+       * pe-dll.h (pe_walk_relocs_of_symbol): Delete.
+       (pe_find_data_imports): Declare.
+       (pe_create_import_fixup): Add 5th parameter.
+       * pep-dll.c (pe_data_import_dll): Delete.
+       (pe_find_data_imports): Define.
+       (pe_walk_relocs_of_symbol): Delete.
+       * pep-dll.h (pep_walk_relocs_of_symbol): Delete.
+       (pep_find_data_imports): Declare.
+       (pep_create_import_fixup): Add 5th parameter.
+       * ld.texinfo (--enable-auto-import): Adjust to new implementation.
+
+2018-04-04  Nick Clifton  <nickc@redhat.com>
+
+       * po/es.po: Updated Spanish translation.
+
+2018-04-03  Maciej W. Rozycki  <macro@mips.com>
+
+       * testsuite/ld-mips-elf/comm-data.exp: Correct support for
+       `mips*-*-kfreebsd*-gnu' targets.
+
+2018-03-23  Renlin Li  <renlin.li@arm.com>
+
+       PR ld/22970
+       * testsuite/ld-aarch64/aarch64-elf.exp: Update to run new tests.
+       * testsuite/ld-aarch64/emit-relocs-552-overflow.d: New.
+       * testsuite/ld-aarch64/emit-relocs-552-overflow.s: New.
+       * testsuite/ld-aarch64/emit-relocs-552.d: New.
+       * testsuite/ld-aarch64/emit-relocs-552.s: New.
+       * testsuite/ld-aarch64/emit-relocs-553.d: New.
+       * testsuite/ld-aarch64/emit-relocs-553.s: New.
+       * testsuite/ld-aarch64/emit-relocs-554-overflow.d: New.
+       * testsuite/ld-aarch64/emit-relocs-554-overflow.s: New.
+       * testsuite/ld-aarch64/emit-relocs-554.d: New.
+       * testsuite/ld-aarch64/emit-relocs-554.s: New.
+       * testsuite/ld-aarch64/emit-relocs-555.d: New.
+       * testsuite/ld-aarch64/emit-relocs-555.s: New.
+       * testsuite/ld-aarch64/emit-relocs-556-overflow.d: New.
+       * testsuite/ld-aarch64/emit-relocs-556-overflow.s: New.
+       * testsuite/ld-aarch64/emit-relocs-556.d: New.
+       * testsuite/ld-aarch64/emit-relocs-556.s: New.
+       * testsuite/ld-aarch64/emit-relocs-557.d: New.
+       * testsuite/ld-aarch64/emit-relocs-557.s: New.
+       * testsuite/ld-aarch64/emit-relocs-558-overflow.d: New.
+       * testsuite/ld-aarch64/emit-relocs-558-overflow.s: New.
+       * testsuite/ld-aarch64/emit-relocs-558.d: New.
+       * testsuite/ld-aarch64/emit-relocs-558.s: New.
+       * testsuite/ld-aarch64/emit-relocs-559.d: New.
+       * testsuite/ld-aarch64/emit-relocs-559.s: New.
+       * testsuite/ld-aarch64/emit-relocs-112-overflow.d: New.
+       * testsuite/ld-aarch64/emit-relocs-112-overflow.s: New.
+       * testsuite/ld-aarch64/emit-relocs-112.d: New.
+       * testsuite/ld-aarch64/emit-relocs-112.s: New.
+       * testsuite/ld-aarch64/emit-relocs-113.d: New.
+       * testsuite/ld-aarch64/emit-relocs-113.s: New.
+       * testsuite/ld-aarch64/emit-relocs-114-overflow.d: New.
+       * testsuite/ld-aarch64/emit-relocs-114-overflow.s: New.
+       * testsuite/ld-aarch64/emit-relocs-114.d: New.
+       * testsuite/ld-aarch64/emit-relocs-114.s: New.
+       * testsuite/ld-aarch64/emit-relocs-115.d: New.
+       * testsuite/ld-aarch64/emit-relocs-115.s: New.
+       * testsuite/ld-aarch64/emit-relocs-116-overflow.d: New.
+       * testsuite/ld-aarch64/emit-relocs-116-overflow.s: New.
+       * testsuite/ld-aarch64/emit-relocs-116.d: New.
+       * testsuite/ld-aarch64/emit-relocs-116.s: New.
+       * testsuite/ld-aarch64/emit-relocs-117.d: New.
+       * testsuite/ld-aarch64/emit-relocs-117.s: New.
+       * testsuite/ld-aarch64/emit-relocs-118-overflow.d: New.
+       * testsuite/ld-aarch64/emit-relocs-118-overflow.s: New.
+       * testsuite/ld-aarch64/emit-relocs-118.d: New.
+       * testsuite/ld-aarch64/emit-relocs-118.s: New.
+       * testsuite/ld-aarch64/emit-relocs-119.d: New.
+       * testsuite/ld-aarch64/emit-relocs-119.s: New.
+
+2018-03-28  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR ld/22972
+       * testsuite/ld-sparc/sparc.exp: Add test for mixed GOTDATA/GOT relocs.
+       * testsuite/ld-sparc/gotop-hidden.c: New file.
+       * testsuite/ld-sparc/got-hidden32.s: Likewise.
+       * testsuite/ld-sparc/got-hidden64.s: Likewise.
+       * testsuite/ld-sparc/pass.out: Likewise.
+
+2018-03-25  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/23000
+       * testsuite/ld-x86-64/tlsdesc.pd: Updated.
+
+2018-03-23  Nick Clifton  <nickc@redhat.com>
+
+       PR 22948
+       * emultempl/pe.em (open_dynamic_archive): Add libXXX.lib template
+       to library name list.
+       * emultempl/pep.em (open_dynamic_archive): Likewise.
+       * ld.texinfo (WIN32): Update documentation.
+
+2018-03-20  Roland McGrath  <mcgrathr@google.com>
+
+       * testsuite/ld-elf/shared.exp (pr20995-2): XFAIL on aarch64*-*-elf*,
+       another target without RELRO.
+
+2018-03-20  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * testsuite/ld-plugin/pr22983.d: Allow leading underscore as
+       well as extra lines between symbols.
+
+2018-03-20  Maciej W. Rozycki  <macro@mips.com>
+
+       * testsuite/ld-gc/gc.exp: Remove extraneous LD flags from the
+       personality test.
+
+2018-03-20  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/22983
+       * testsuite/ld-plugin/lto.exp: Run PR ld/22983 test.
+       * testsuite/ld-plugin/pr22983.d: New file.
+       * testsuite/ld-plugin/pr22983.t: Likewise.
+       * testsuite/ld-plugin/pr22983a.c: Likewise.
+       * testsuite/ld-plugin/pr22983b.c: Likewise.
+
+2018-03-15  Andreas Schwab  <schwab@suse.de>
+
+       PR ld/22949
+       * emultempl/riscvelf.em (riscv_elf_before_allocation): Don't
+       enable relaxation in relocatable link.
+
+2018-03-15  Kuan-Lin Chen  <kuanlinchentw@gmail.com>
+
+       * emultempl/nds32elf.em (nds32_elf_after_allocation): Remove
+       unsupported target feature.
+
+2018-03-14  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/20882
+       * testsuite/ld-gc/pr20882.d: Also dump and check .debug_abbrev
+       section.
+       * testsuite/ld-gc/pr20882b.s: Add .debug_abbrev section.
+
+2018-03-14  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * testsuite/ld-gc/gc.exp: Fix a typo: $LFLAGS -> $LDFLAGS.
+
+2018-03-13  Nick Clifton  <nickc@redhat.com>
+
+       * po/pt_BR.po: Updated Brazilian Portuguese translation.
+
+2018-03-09  Nick Clifton  <nickc@redhat.com>
+
+       * testsuite/ld-ifunc/ifuncmod5.s: New test.  Checks that targets
+       that support IFUNC symbols can handle relocations against those
+       symbols in NOTE sections.
+       * testsuite/ld-ifunc/ifuncmod5.d: New file:  Driver for the new
+       test.
+       * testsuite/ld-ifunc/ifunc.exp: Run the new test.
+
+2018-03-08  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/22929
+       * testsuite/ld-i386/i386.exp: Run PR ld/22929 test.
+       * testsuite/ld-x86-64/x86-64.exp: Likewise.
+       * testsuite/ld-i386/pr22929.d: New file.
+       * testsuite/ld-i386/pr22929.s: Likewise.
+       * testsuite/ld-x86-64/pr22929.d: Likewise.
+       * testsuite/ld-x86-64/pr22929.s: Likewise.
+
+2018-03-07  Max Filippov  <jcmvbkbc@gmail.com>
+
+       * emulparams/elf32xtensa.sh (COMMONPAGESIZE): Define.
+
+2018-03-07  Renlin Li  <renlin.li@arm.com>
+
+       PR ld/20402
+       * testsuite/ld-aarch64/aarch64-elf.exp: Run new test.
+       * testsuite/ld-aarch64/pr20402.s: New.
+       * testsuite/ld-aarch64/pr20402.d: New.
+
+2018-03-06  Jim Wilson  <jimw@sifive.com>
+
+       PR 22920
+       * emultempl/riscvelf.em (riscv_create_output_section_statements): New.
+       (LDEMUL_CREATE_OUTPUT_SECTION_STATEMENTS): New.
+       * testsuite/ld-elf/pr21884.d (#notarget): Add riscv*-*-*.
+       * testsuite/ld-unique/pr21529.d (#notarget): Likewise.
+       * testsuite/ld-srec/srec.exp (run_srec_test): For riscv*-*-* target,
+       call setup_xfail.
+
+2018-03-03  James Cowgill  <james.cowgill@mips.com>
+           Maciej W. Rozycki  <macro@mips.com>
+
+       PR ld/21900
+       * testsuite/ld-mips-elf/undefined-warn.d: New test.
+       * testsuite/ld-mips-elf/undefined.s: Add padding at the end.
+       * testsuite/ld-mips-elf/mips-elf.exp: Run the new test.
+
+2018-03-02  Jim Wilson  <jimw@sifive.com>
+
+       PR 22903
+       * emultempl/aarch64elf.em (elf${ELFSIZE}_aarch64_add_stub_section):
+       Give stub_sec 8 byte alignment.
+       * emulparams/aarch64cloudabi.sh (NOP): Set to 0x1f2003d5.
+       * emulparams/aarch64elf.sh (NOP): Likewise.
+       * emulparams/aarch64elf32.sh (NOP): Likewise.
+       * emulparams/aarch64fbsd.sh (NOP): Likewise.
+       * emulparams/aarch64linux.sh (NOP): Likewise.
+       * emulparams/aarch64linux32.sh (NOP): Likewise.
+       * testsuite/ld-aarch64/erratum835769.d: Adjust for added nop.
+       * testsuite/ld-aarch64/erratum843419.d: Likewise.
+       * testsuite/ld-aarch64/farcall-b-defsym.d: Likewise.
+       * testsuite/ld-aarch64/farcall-b-none-function.d: Likewise.
+       * testsuite/ld-aarch64/farcall-b-plt.d: Likewise.
+       * testsuite/ld-aarch64/farcall-b-section.d: Likewise.
+       * testsuite/ld-aarch64/farcall-b.d: Likewise.
+       * testsuite/ld-aarch64/farcall-back.d: Likewise.
+       * testsuite/ld-aarch64/farcall-bl-defsym.d: Likewise.
+       * testsuite/ld-aarch64/farcall-bl-none-function.d: Likewise.
+       * testsuite/ld-aarch64/farcall-bl-plt.d: Likewise.
+       * testsuite/ld-aarch64/farcall-bl-section.d: Likewise.
+       * testsuite/ld-aarch64/farcall-bl.d: Likewise.
+
+2018-03-01  Alan Modra  <amodra@gmail.com>
+
+       * configure.ac (ALL_LINGUAS): Add ja.  Sort.
+       * configure: Regenerate.
+
+2018-02-28  Douglas B Rupp  <rupp@adacore.com>
+
+       * ldmain.c (main): Remove directory separator, if any, from the
+       end of the canonicalized sysroot.
+
+2018-02-27  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * NEWS: Mention --enable-separate-code.
+       * configure.ac: Add --enable-separate-code.
+       (DEFAULT_LD_Z_SEPARATE_CODE): New AC_DEFINE_UNQUOTED.
+       * configure.tgt: Default ac_default_ld_z_separate_code to 1 for
+       Linux/x86 targets.
+       * config.in: Regenerated.
+       * configure: Likewise.
+       * emultempl/elf32.em (gld${EMULATION_NAME}_before_parse): Set
+       link_info.separate_code DEFAULT_LD_Z_SEPARATE_CODE.
+
 2018-02-26  Alan Modra  <amodra@gmail.com>
 
        * emulparams/call_nop.sh, * emulparams/cet.sh,
This page took 0.034542 seconds and 4 git commands to generate.