Hui Zhu [Mon, 10 Aug 2009 03:06:34 +0000 (03:06 +0000)]
2009-08-10 Hui Zhu <teawater@gmail.com>
Add Linux AMD64 process record support.
* amd64-linux-tdep.c (amd64_linux_record_tdep): New variable.
This struct has the argument for the function
"record_linux_system_call".
(amd64_linux_syscall_record): New function. Parse the
system call instruction and call function
"record_linux_system_call" to record execute log.
(i386_linux_init_abi): Initialize "amd64_linux_record_tdep".
Set "amd64_linux_syscall_record" to "i386_syscall_record".
Hui Zhu [Mon, 10 Aug 2009 03:04:45 +0000 (03:04 +0000)]
2009-08-10 Hui Zhu <teawater@gmail.com>
Add process record Linux system call 64 bits support.
* linux-record.h (linux_record_tdep): Add size_pointer,
size_size_t, size_iovec and arg6. Change the values of
size_int, size_long and size_ulong to
gdbarch_int_bit (gdbarch) / TARGET_CHAR_BIT,
gdbarch_long_bit (gdbarch) / TARGET_CHAR_BIT,
gdbarch_long_bit (gdbarch) / TARGET_CHAR_BIT.
* i386-linux-tdep.c (i386_linux_init_abi): Ditto.
(i386_linux_intx80_sysenter_record): Add a check for system
call number.
* linux-record.c (record_linux_system_call): Make this
function support 64 bits.
Hui Zhu [Mon, 10 Aug 2009 03:02:39 +0000 (03:02 +0000)]
2009-08-10 Hui Zhu <teawater@gmail.com>
Add AMD64 process record instruction set support.
* i386-tdep.h (gdbarch_tdep): Add record_regmap for registers
because the AMD64's registers order in GDB is not same with
I386 instructions.
Add i386_syscall_record to be the syscall function handle
interface.
(record_i386_regnum): Number for record_regmap.
* i386-tdep.c (OT_QUAD): For 64 bits.
(i386_record_s): Add rex_x, rex_b, rip_offset and
popl_esp_hack for AMD64 instruction set. And regmap for
record_regmap.
(i386_record_lea_modrm_addr): Support AMD64 instruction set
64 bits lea.
(i386_record_lea_modrm): Ditto.
(i386_record_push): New function. Record the execution log
of push.
(I386_RECORD_ARCH_LIST_ADD_REG): New macro to record the
register.
(i386_process_record): Support AMD64 instruction set.
* amd64-tdep.c (amd64_record_regmap): For record_regmap.
(amd64_init_abi): Set amd64_record_regmap to record_regmap.
Doug Kwan [Mon, 10 Aug 2009 02:29:30 +0000 (02:29 +0000)]
Revert the previous change.
http://sourceware.org/ml/binutils-cvs/2009-08/msg00043.html
gdbadmin [Mon, 10 Aug 2009 00:00:33 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Mon, 10 Aug 2009 00:00:06 +0000 (00:00 +0000)]
daily update
Bernd Schmidt [Sun, 9 Aug 2009 16:45:05 +0000 (16:45 +0000)]
bfd/
From Mike Frysinger <michael.frysinger@analog.com>
* elf32-bfin.c (bfin_howto_table, bfin_reloc_map, bfin_check_relocs,
bfin_final_link_relocate, bfin_relocate_section, bfin_gc_sweep_hook,
_bfinfdpic_emit_got_relocs_plt_entries, bfinfdpic_relocate_section,
bfinfdpic_gc_sweep_hook, bfinfdpic_check_relocs,
bfin_finish_dynamic_symbol, bfd_bfin_elf32_create_embedded_relocs):
Adjust to match the renamed reloc definitions.
gas/testsuite/
From Mike Frysinger <michael.frysinger@analog.com>
* gas/bfin/reloc.d: Adjust for the renamed relocations.
include/elf/
From Mike Frysinger <michael.frysinger@analog.com>
* bfin.h (R_BFIN_UNUSED, R_BFIN_PCREL5M2, R_BFIN_UNUSED1,
R_BFIN_PCREL10, R_BFIN_PCREL12_JUMP, R_BFIN_RIMM16,
R_BFIN_LUIMM16, R_BFIN_HUIMM16, R_BFIN_PCREL12_JUMP_S,
R_BFIN_PCREL24_JUMP_X, R_BFIN_PCREL24, R_BFIN_UNUSEDB,
R_BFIN_UNUSEDC, R_BFIN_PCREL24_JUMP_L, R_BFIN_PCREL24_CALL_X,
R_BFIN_VAR_EQ_SYMB, R_BFIN_BYTE_DATA, R_BFIN_BYTE2_DATA,
R_BFIN_BYTE4_DATA, R_BFIN_PCREL11, R_BFIN_PUSH, R_BFIN_CONST,
R_BFIN_ADD, R_BFIN_SUB, R_BFIN_MULT, R_BFIN_DIV, R_BFIN_MOD,
R_BFIN_LSHIFT, R_BFIN_RSHIFT, R_BFIN_AND, R_BFIN_OR, R_BFIN_XOR,
R_BFIN_LAND, R_BFIN_LOR, R_BFIN_LEN, R_BFIN_NEG, R_BFIN_COMP,
R_BFIN_PAGE, R_BFIN_HWPAGE, R_BFIN_ADDR, R_BFIN_PLTPLC,
R_BFIN_GOT, R_BFIN_MAX): Renamed from R_unused0, R_pcrel5ms,
R_unused1, R_pcrel10, R_pcrel12_jump, R_rimm16, R_luimm16,
R_huimm16, R_pcrel12_jump_s, R_pcrel24_jump_x, R_pcrel24,
R_unusedb, R_unusedc, R_pcrel24_jump_l, R_pcrel24_call_x,
R_var_eq_symb, R_byte_data, R_byte2_data, R_byte4_data, R_pcrel11,
R_push, R_const, R_add, R_sub, R_mult, R_div, R_mod, R_lshift,
R_rshift, R_and, R_or, R_xor, R_land, R_lor, R_len, R_neg, R_comp,
R_page, R_hwpage, R_addr, R_pltpc, R_got.
Michael Eager [Sun, 9 Aug 2009 13:42:26 +0000 (13:42 +0000)]
Add EM_resnnn, new EM_ entries, change EM_MICROBLAZE.
gdbadmin [Sun, 9 Aug 2009 00:00:33 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Sun, 9 Aug 2009 00:00:05 +0000 (00:00 +0000)]
daily update
Pedro Alves [Sat, 8 Aug 2009 16:32:37 +0000 (16:32 +0000)]
* bfd-target.c (struct target_bfd_data): New.
(target_bfd_xfer_partial): Adjust to get at the section table from
the new structure.
(target_bfd_get_section_table): Ditto.
(target_bfd_xclose): Ditto. Get the bfd pointer from the
target_bfd_data structure, from the section table.
(target_bfd_reopen): Store a struct target_bfd_data in the
target_ops to_data field, instead of a target_section_table.
Hui Zhu [Sat, 8 Aug 2009 01:57:44 +0000 (01:57 +0000)]
2009-08-08 Aleksandar Ristovski <aristovski@qnx.com>
Hui Zhu <teawater@gmail.com>
* record.c (record_store_registers): Remove unused variable.
Alan Modra [Sat, 8 Aug 2009 01:43:28 +0000 (01:43 +0000)]
PR 10494
* elf.c (_bfd_elf_make_section_from_shdr): When setting up section
LMAs, use ELF_IS_SECTION_IN_SEGMENT to match sections with headers.
gdbadmin [Sat, 8 Aug 2009 00:00:34 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Sat, 8 Aug 2009 00:00:06 +0000 (00:00 +0000)]
daily update
Tom Tromey [Fri, 7 Aug 2009 23:28:13 +0000 (23:28 +0000)]
gdb
* language.c (set_language_command): Strip whitespace.
(set_type_command): Likewise.
(set_range_command): Likewise.
gdb/testsuite
* gdb.base/setshow.exp: Add tests for changes to set language, set
check range, and set check type.
Tom Tromey [Fri, 7 Aug 2009 20:44:15 +0000 (20:44 +0000)]
PR gdb/8869:
* language.c (language_completer): New function.
(range_or_type_completer): New function.
(case_completer): New function.
(_initialize_language): Set completers.
* cli/cli-decode.c (add_setshow_string_cmd): Return the "set"
command.
(add_setshow_string_noescape_cmd): Likewise.
(add_setshow_integer_cmd): Likewise.
(add_setshow_uinteger_cmd): Likewise.
(add_setshow_zinteger_cmd): Likewise.
(add_setshow_zuinteger_cmd): Likewise.
* command.h (add_setshow_string_cmd,
add_setshow_string_noescape_cmd, add_setshow_uinteger_cmd,
add_setshow_zinteger_cmd, add_setshow_zuinteger_cmd): Update.
Daniel Jacobowitz [Fri, 7 Aug 2009 19:32:06 +0000 (19:32 +0000)]
binutils/testsuite/
* binutils-all/testranges.s: Use %progbits. Use ";#" for comments.
Daniel Jacobowitz [Fri, 7 Aug 2009 19:30:31 +0000 (19:30 +0000)]
gas/
* config/tc-arm.c (marked_pr_dependency, mapstate): Delete global
variables.
(mapping_state): Use the section's mapstate.
(mapping_state_2): Likewise. Skip special sections.
(s_arm_unwind_fnend): Use the section's marked_pr_dependency.
(arm_elf_change_section): Do not set deleted globals.
* config/tc-arm.h (struct arm_segment_info_type): Document
marked_pr_dependency.
gas/testsuite/
* gas/arm/mapping2.s: Test code after .ident.
Sriraman Tallam [Fri, 7 Aug 2009 18:48:44 +0000 (18:48 +0000)]
*** empty log message ***
Sriraman Tallam [Fri, 7 Aug 2009 18:29:54 +0000 (18:29 +0000)]
*** empty log message ***
Tom Tromey [Fri, 7 Aug 2009 17:10:43 +0000 (17:10 +0000)]
* elf32-microblaze.c (microblaze_elf_check_relocs): Avoid strict
aliasing error.
Michael Eager [Fri, 7 Aug 2009 12:12:52 +0000 (12:12 +0000)]
Mention MicroBlaze.
Alan Modra [Fri, 7 Aug 2009 06:26:33 +0000 (06:26 +0000)]
missed from last commit
gdbadmin [Fri, 7 Aug 2009 00:00:33 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Fri, 7 Aug 2009 00:00:05 +0000 (00:00 +0000)]
daily update
Paul Pluzhnikov [Thu, 6 Aug 2009 23:25:49 +0000 (23:25 +0000)]
2009-08-06 Paul Pluzhnikov <ppluzhnikov@google.com>
gold/10400
* dwarf2-frame.c (qsort_fde_cmp): Use stable sort.
Paul Pluzhnikov [Thu, 6 Aug 2009 23:19:47 +0000 (23:19 +0000)]
2009-08-06 Paul Pluzhnikov <ppluzhnikov@google.com>
* dwarf2-frame.c (struct dwarf2_cie): Remove 'next'.
(struct dwarf2_cie_table): New.
(struct dwarf2_fde): Remove 'next'.
(struct dwarf2_fde_table): New.
(struct comp_unit): Remove 'cie'.
(bsearch_cie_cmp, bsearch_fde_cmp): New function.
(find_cie, dwarf2_frame_find_fde): Use bsearch.
(add_cie, add_fde): Use array instead of linked list.
(decode_frame_entry, decode_frame_entry_1): New parameters.
(qsort_fde_cmp): New function.
(dwarf2_build_frame_info): Adjust.
Nick Roberts [Thu, 6 Aug 2009 23:08:16 +0000 (23:08 +0000)]
(Server Prefix): Explain that server prefix suppresses
confirmation request.
Nick Roberts [Thu, 6 Aug 2009 23:06:54 +0000 (23:06 +0000)]
*** empty log message ***
Nick Clifton [Thu, 6 Aug 2009 17:46:43 +0000 (17:46 +0000)]
* configure.ac: Add Microblaze target.
* configure: Regenerate.
Nick Clifton [Thu, 6 Aug 2009 17:38:04 +0000 (17:38 +0000)]
Add support for Xilinx MicroBlaze processor.
* bfd/Makefile.am: Add cpu-microblaze.{lo,c}, elf32-microblaze.{lo,c}.
* bfd/Makefile.in: Same.
* bfd/archures.c: Add bfd_arch_microblaze.
* bfd/bfd-in2.h: Regenerate.
* bfd/config.bfd: Add microblaze target.
* bfd/configure: Add bfd_elf32_microblaze_vec target.
* bfd/configure.in: Same.
* bfd/cpu-microblaze.c: New.
* bfd/elf32-microblaze.c: New.
* bfd/libbfd-in.h: Add prototype _bfd_dwarf2_fixup_section_debug_loc().
* bfd/libbfd.h: Regenerate.
* bfd/reloc.c: Add MICROBLAZE relocations.
* bfd/section.c: Add struct relax_table and relax_count to section.
* bfd/targets.c: Add bfd_elf32_microblaze_vec.
* binutils/MAINTAINERS: Add self as maintainer.
* binutils/readelf.c: Include elf/microblaze.h, add EM_MICROBLAZE &
EM_MICROBLAZE_OLD to guess_is_rela(), dump_relocations(),
get_machine_name().
* config.sub: Add microblaze target.
* configure: Same.
* configure.ac: Same.
* gas/Makefile.am: add microblaze to CPU_TYPES, config/tc-microblaze.c to
TARGET_CPU_CFILES, config/tc-microblaze.h to TARGET_CPU_HFILES, add
DEP_microblaze_elf target.
* gas/Makefile.in: Same.
* gas/config/tc-microblaze.c: Add MicroBlaze assembler.
* gas/config/tc-microblaze.h: Add header for tc-microblaze.c.
* gas/configure: Add microblaze target.
* gas/configure.in: Same.
* gas/configure.tgt: Same.
* gas/doc/Makefile.am: Add c-microblaze.texi to CPU_DOCS.
* gas/doc/Makefile.in: Same.
* gas/doc/all.texi: Set MICROBLAZE.
* gas/doc/as.texinfo: Add MicroBlaze doc links.
* gas/doc/c-microblaze.texi: New MicroBlaze docs.
* include/dis-asm.h: Decl print_insn_microblaze().
* include/elf/common.h: Define EM_MICROBLAZE & EM_MICROBLAZE_OLD.
* include/elf/microblaze.h: New reloc definitions.
* ld/Makefile.am: Add eelf32mb_linux.o, eelf32microblaze.o to
ALL_EMULATIONS, targets.
* ld/Makefile.in: Same.
* ld/configure.tgt: Add microblaze*-linux*, microblaze* targets.
* ld/emulparams/elf32mb_linux.sh: New.
* ld/emulparams/elf32microblaze.sh. New.
* ld/scripttempl/elfmicroblaze.sc: New.
* opcodes/Makefile.am: Add microblaze-opc.h to HFILES, microblaze-dis.c to
CFILES, microblaze-dis.lo to ALL_MACHINES, targets.
* opcodes/Makefile.in: Same.
* opcodes/configure: Add bfd_microblaze_arch target.
* opcodes/configure.in: Same.
* opcodes/disassemble.c: Define ARCH_microblaze, return
print_insn_microblaze().
* opcodes/microblaze-dis.c: New MicroBlaze disassembler.
* opcodes/microblaze-opc.h: New MicroBlaze opcode definitions.
* opcodes/microblaze-opcm.h: New MicroBlaze opcode types.
H.J. Lu [Thu, 6 Aug 2009 16:23:30 +0000 (16:23 +0000)]
Correct date.
H.J. Lu [Thu, 6 Aug 2009 16:22:36 +0000 (16:22 +0000)]
2009-08-03 H.J. Lu <hongjiu.lu@intel.com>
PR binutils/10492
* binutils-all/objcopy.exp: Run strip-10.
* binutils-all/strip-10.d: New.
* binutils-all/unique.s: Likewise.
Jakub Jelinek [Thu, 6 Aug 2009 13:08:24 +0000 (13:08 +0000)]
PR binutils/10492
* elf.c (sym_is_global): Return true even for BSF_GNU_UNIQUE
symbols.
* elf32-mips.c (mips_elf_sym_is_global): Likewise.
* elfn32-mips.c (mips_elf_sym_is_global): Likewise.
Nathan Sidwell [Thu, 6 Aug 2009 13:05:24 +0000 (13:05 +0000)]
bfd/
* elf32-arm.c (elf32_arm_size_stubs): Call layout_sections_again
at least once when fixing cortex-a8.
ld/testsuite/
* ld-arm/arm-elf.exp: Add new test.
* ld-arm/cortex-a8-fix-hdr.d: New.
* ld-arm/cortex-a8-fix-hdr.s: New.
* ld-arm/cortex-a8-fix-hdr.t: New.
Don Lee [Thu, 6 Aug 2009 10:28:38 +0000 (10:28 +0000)]
* score-tdep.c: Support a new Sunplus CT S+core variant, S+core 3.
* score-tdep.h: Ditto.
* NEWS: Ditto.
* configure.tgt: Test do we have a simulator.
* MAINTAINERS: Add myself under target score
Nick Clifton [Thu, 6 Aug 2009 10:10:50 +0000 (10:10 +0000)]
* config/tc-arm.c (md_assemble): Call mapping_state from inside a
block in case it is a null macro.
Nick Roberts [Thu, 6 Aug 2009 08:19:58 +0000 (08:19 +0000)]
(defaulted_query): Don't ask for confirmation if server
prefix is used.
Nick Roberts [Thu, 6 Aug 2009 08:11:22 +0000 (08:11 +0000)]
*** empty log message ***
Alan Modra [Thu, 6 Aug 2009 00:00:05 +0000 (00:00 +0000)]
daily update
gdbadmin [Thu, 6 Aug 2009 00:00:03 +0000 (00:00 +0000)]
*** empty log message ***
Chao-ying Fu [Wed, 5 Aug 2009 21:24:21 +0000 (21:24 +0000)]
2009-08-05 Chao-ying Fu <fu@mips.com>
* gas/mips/jal-svr4pic.d, gas/mips/jal-xgot.d,
gas/mips/mips-abi32-pic2.d: Add R_MIPS_JALR relocations after jalr.
Chao-ying Fu [Wed, 5 Aug 2009 21:22:15 +0000 (21:22 +0000)]
2009-08-05 Chao-ying Fu <fu@mips.com>
* config/tc-mips.c (MIPS_JALR_HINT_P): New define. For IRIX, it is
true for new abi. For non-IRIX targets, it is always true.
(macro_build_jalr): If MIPS_JALR_HINT_P, emit BFD_RELOC_MIPS_JALR.
Chao-ying Fu [Wed, 5 Aug 2009 21:17:51 +0000 (21:17 +0000)]
2009-08-05 Chao-ying Fu <fu@mips.com>
* elf32-mips.c (mips_reloc_map): Add BFD_RELOC_MIPS_JALR.
* elfxx-mips.c (JAL_TO_BAL_P): New define to transform JAL to BAL
for CPUs. It is true for RM9000.
(JALR_TO_BAL_P): New define to transform JALR to BAL. It is true
for all CPUs.
(mips_elf_perform_relocation): Use JAL_TO_BAL_P and JALR_TO_BAL_P
to guard the transformation.
Sriraman Tallam [Wed, 5 Aug 2009 20:51:56 +0000 (20:51 +0000)]
*** empty log message ***
Trevor Smigiel [Wed, 5 Aug 2009 20:40:34 +0000 (20:40 +0000)]
bfd/
* elf32-spu.h (spu_elf_params): Add member emit_fixups.
(spu_elf_size_sections): Declare prototype.
* elf32-spu.c (spu_link_hash_table): Add member sfixup.
(FIXUP_RECORD_SIZE, FIXUP_GET, FIXUP_PUT): New macros.
(spu_elf_emit_fixup): New function.
(spu_elf_relocate_section): Emit fixup for each SPU_ADDR32.
(spu_elf_size_sections): New function.
ld/
* emulparams/elf32_spu.sh (OTHER_READONLY_SECTIONS): Add .fixup
section and __fixup_start symbol.
* emultempl/spuelf.em (params): Initialize emit_fixups member.
(spu_before_allocation): Call spu_elf_size_sections.
(OPTION_SPU_EMIT_FIXUPS): Define.
(PARSE_AND_LIST_LONGOPTS): Add --emit-fixups.
(PARSE_AND_LIST_ARGS_CASES): Handle --emit-fixups.
* ld.texinfo (--emit-fixups): Document.
ld/testsuite/
* ld-spu/fixup.d: New.
* ld-spu/fixup.s: New.
Eli Zaretskii [Wed, 5 Aug 2009 17:47:09 +0000 (17:47 +0000)]
* gdb.texinfo (Separate Debug Files, Remote Protocol): Clarified
CRC definitions.
Tom Tromey [Wed, 5 Aug 2009 15:11:45 +0000 (15:11 +0000)]
* spu-tdep.h (SPUADDR_SPU): Cast result to int.
Eric B. Weddington [Wed, 5 Aug 2009 12:47:33 +0000 (12:47 +0000)]
/gas:
2009-08-05 Eric B. Weddington <eric.weddington@atmel.com>
* config/tc-avr.c (mcu_types): Add attiny2313a, attiny4313, attiny261a,
attiny861a, atmega644pa, attiny24a, attiny44a.
* doc/c-avr.texi: Likewise.
Nathan Sidwell [Wed, 5 Aug 2009 12:36:14 +0000 (12:36 +0000)]
bfd/
* elf32-arm.c (elf32_arm_stub_type): Add arm_stub_a8_veneer_lwm.
(arm_build_one_stub): Build a8 veneers as a separate pass.
(cortex_a8_erratum_scan): Add prev_num_a8_fixes and stub_changed_p
parameters. Use them to check if we create a different a8 fixup
than the previous pass.
(elf32_arm_size_stubs): Move scope of stub_changed and
prev_num_a8_fixes into main loop.
(elf32_arm_build_stubs): Build a8 veneers in a second pass.
ld/testsuite/
* ld-arm/cortex-a8-far-1.s: New.
* ld-arm/cortex-a8-far-2.s: New.
* ld-arm/cortex-a8-far.d: New.
* ld-arm/arm-elf.exp: Add new test.
Sandra Loosemore [Wed, 5 Aug 2009 00:44:01 +0000 (00:44 +0000)]
2009-08-04 Sandra Loosemore <sandra@codesourcery.com>
gas/
* doc/c-mips.texi (MIPS Opts): List 1004K options for -march.
* config/tc-mips.c (mips_cpu_info_table): Add 1004K cores.
gdbadmin [Wed, 5 Aug 2009 00:00:35 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Wed, 5 Aug 2009 00:00:11 +0000 (00:00 +0000)]
daily update
Thiago Jung Bauermann [Tue, 4 Aug 2009 20:41:13 +0000 (20:41 +0000)]
2009-08-04 Thiago Jung Bauermann <thiago.bauermann@gmail.com>
gdb/
* linux-tdep.c (check_is_pie_binary,
_initialize_linux_tdep): New functions.
gdb/testsuite/
* gdb.base/pie-support.exp: New file.
* gdb.base/pie-support.c: New file.
Paul Pluzhnikov [Tue, 4 Aug 2009 18:46:05 +0000 (18:46 +0000)]
2009-08-04 Paul Pluzhnikov <ppluzhnikov@google.com>
* objfiles.h (OBJF_KEEPBFD): Delete.
(gdb_bfd_unref): New prototype.
* objfiles.c (gdb_bfd_unref): New function.
(free_objfile): Call gdb_bfd_unref.
* solib.c (free_so): Likewise.
(symbol_add_stub): Set refcount.
Michael Snyder [Tue, 4 Aug 2009 18:19:52 +0000 (18:19 +0000)]
2009-08-04 Hui Zhu <teawater@gmail.com>
Michael Snyder <msnyder@vmware.com>
* record.c (record_mem_entry): New field 'mem_entry_not_accessible'.
(record_arch_list_add_mem): Initialize 'mem_entry_not_accessible'.
(record_wait): Set 'mem_entry_not_accessible' flag if target
memory not readable. Don't try to change target memory if
'mem_entry_not_accessible' is set.
Nathan Sidwell [Tue, 4 Aug 2009 14:56:10 +0000 (14:56 +0000)]
* config/tc-arm.c (my_get_expression): Detect missing expressions.
testsuite/
* gas/arm/missing.s: New.
* gas/arm/missing.d: New.
* gas/arm/missing.l: New.
Alan Modra [Tue, 4 Aug 2009 08:15:24 +0000 (08:15 +0000)]
PR 10474
* emultempl/ppc32elf.em (ppc_before_allocation): Test rawsize,
not size, after lang_reset_memory_regions.
Alan Modra [Tue, 4 Aug 2009 08:03:35 +0000 (08:03 +0000)]
* elf32-ppc.c (ppc_elf_relax_section): Correct conditions under
which find_plt_ent is called. Delete redundant code.
Alan Modra [Tue, 4 Aug 2009 00:00:05 +0000 (00:00 +0000)]
daily update
gdbadmin [Tue, 4 Aug 2009 00:00:03 +0000 (00:00 +0000)]
*** empty log message ***
H.J. Lu [Mon, 3 Aug 2009 23:56:08 +0000 (23:56 +0000)]
2009-08-03 H.J. Lu <hongjiu.lu@intel.com>
PR binutils/10363
* elf.c (bfd_elf_string_from_elf_section): Return NULL on
invalid string offset.
Jan Kratochvil [Mon, 3 Aug 2009 17:00:34 +0000 (17:00 +0000)]
gdb/
Fix memory corruption on reread of file through a symbolic link.
* symfile.c (find_separate_debug_file): Initialize CANON_NAME earlier.
Allocate DEBUGFILE with length based on CANON_NAME. Free CANON_NAME on
all the return paths.
H.J. Lu [Mon, 3 Aug 2009 15:50:51 +0000 (15:50 +0000)]
2009-08-03 H.J. Lu <hongjiu.lu@intel.com>
PR ld/10433
* elf-ifunc.c (_bfd_elf_allocate_ifunc_dyn_relocs): Set got
to htab->init_got_offset and plt to htab->init_plt_offset
when discarding space for dynamic relocations.
H.J. Lu [Mon, 3 Aug 2009 13:47:35 +0000 (13:47 +0000)]
2009-08-03 H.J. Lu <hongjiu.lu@intel.com>
PR binutils/10364
* objcopy.c (strip_main): Check return from smart_rename.
(copy_main): Likewise.
Vladimir Prus [Mon, 3 Aug 2009 12:39:01 +0000 (12:39 +0000)]
Implement -break-commands
* breakpoint.c (get_breakpoint, breakpoint_set_commands): New.
(commands_command): Use breakpoint_set_commands.
* breakpoint.h (get_breakpoint, breakpoint_set_commands): Declare.
* mi/mi-cmds.h (mi_cmd_break_commands): New.
* mi/mi-cmds.c: Register -break-commands.
* mi/mi-cmd-break.c (mi_cmd_break_commands, mi_read_next_line)
(mi_command_line_array, mi_command_line_array_cnt)
(mi_command_line_array_ptr): New.
Vladimir Prus [Mon, 3 Aug 2009 12:26:37 +0000 (12:26 +0000)]
Refactor reading of commands
* defs.h (read_command_lines_1): Declare.
* cli/cli-script.c (read_next_line): Only return string,
do not process.
(process_next_line): New, extracted from read_next_line.
(recurse_read_control_structure): Take a function pointer to the
read function.
(get_command_line) Pass the read_next_line as reader function
into recurse_read_control_structure.
(read_command_lines_1): New, extracted from...
(read_command_lines): ...here.
Alan Modra [Mon, 3 Aug 2009 12:10:46 +0000 (12:10 +0000)]
* elf32-ppc.c (struct plt_entry): Revise comments.
(ppc_elf_check_relocs): Don't create needless plt_entry info
for non-pie executables. Don't test info->pie when info->shared
already covers that case.
(ppc_elf_gc_sweep_hook): Adjust for above change.
(add_stub_sym): Don't test info->pie when info->shared tested.
(allocate_dynrelocs, ppc_elf_size_dynamic_sections): Likewise.
(write_glink_stub, ppc_elf_finish_dynamic_symbol): Likewise.
(ppc_elf_relax_section): Adjust find_plt_ent arguments.
(ppc_elf_relocate_section): Likewise.
Alan Modra [Mon, 3 Aug 2009 10:23:18 +0000 (10:23 +0000)]
* elf32-ppc.c (ppc_elf_check_relocs): Always add a plt ref count
for local ifunc symbols in non-pie executables, regardless of
reloc type. Don't specially create ifunc dyn relocs. Tidy ifunc
code so that it's obvious that we only do anything special for
local ifunc syms.
(ppc_elf_gc_sweep_hook): Adjust to suit check_relocs changes.
(allocate_dynrelocs): Correct comment for syms defined in plt.
Don't specially allocate ifunc dyn relocs.
(ppc_elf_relax_section): Relax branches to ifunc plt entries too.
(ppc_elf_relocate_section): Set "relocation" value for ifunc
syms in non-pie executables. No specially allocated dyn relocs
for ifunc to write. Allow for local sym on R_PPC_RELAX32_PLT.
(ppc_elf_finish_dynamic_symbol): Set value of ifunc symbols in
a non-pie executable.
gdbadmin [Mon, 3 Aug 2009 00:00:34 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Mon, 3 Aug 2009 00:00:05 +0000 (00:00 +0000)]
daily update
H.J. Lu [Sun, 2 Aug 2009 23:55:49 +0000 (23:55 +0000)]
2009-08-02 H.J. Lu <hongjiu.lu@intel.com>
Jakub Jelinek <jakub@redhat.com>
PR ld/6443
* elf32-i386.c (elf_i386_tls_transition): Check executable
instead of shared for TLS when building PIE.
(elf_i386_check_relocs): Likewise.
(elf_i386_allocate_dynrelocs): Likewise.
(elf_i386_relocate_section): Likewise.
* elf64-x86-64.c (elf64_x86_64_tls_transition): Check executable
instead of shared for TLS when building PIE.
(elf64_x86_64_check_relocs): Likewise.
(elf64_x86_64_allocate_dynrelocs): Likewise.
(elf64_x86_64_relocate_section): Likewise.
ld/testsuite/
2009-08-02 H.J. Lu <hongjiu.lu@intel.com>
PR ld/6443
* ld-i386/i386.exp: Run tlspie1.
* ld-x86-64/x86-64.exp: tlspie1.
* ld-i386/tlspie1.d: New.
* ld-i386/tlspie1.s: Likewise.
* ld-x86-64/tlspie1.d: Likewise.
* ld-x86-64/tlspie1.s: Likewise.
Eric B. Weddington [Sun, 2 Aug 2009 14:34:55 +0000 (14:34 +0000)]
/gas:
2009-08-02 Eric B. Weddington <eric.weddington@atmel.com>
* config/tc-avr.c (mcu_types): Add atmega8m1, atmega8c1, atmega16c1.
* doc/c-avr.texi: Likewise.
gdbadmin [Sun, 2 Aug 2009 00:00:05 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Sun, 2 Aug 2009 00:00:04 +0000 (00:00 +0000)]
daily update
Eric B. Weddington [Sat, 1 Aug 2009 16:17:23 +0000 (16:17 +0000)]
/gas:
2009-08-01 Eric B. Weddington <eric.weddington@atmel.com>
* config/tc-avr.c (mcu_types): Add atmega8u2, atmega16u2, atmega32u2.
* doc/c-avr.texi: Likewise.
Kazu Hirata [Sat, 1 Aug 2009 00:02:04 +0000 (00:02 +0000)]
* procfs.c (proc_set_current_signal): Populate mysinfo before
copying it to arg.
(proc_clear_current_signal): Likewise.
(proc_set_watchpoint): Populate pwatch before copying it to arg.
gdbadmin [Sat, 1 Aug 2009 00:00:33 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Sat, 1 Aug 2009 00:00:05 +0000 (00:00 +0000)]
daily update
Michael Snyder [Fri, 31 Jul 2009 22:15:15 +0000 (22:15 +0000)]
2009-07-31 Michael Snyder <msnyder@vmware.com>
* remote.c (store_register_using_P): Make error msg more verbose.
(store_registers_using_G): Ditto.
(fetch_register_using_p): Ditto.
Michael Snyder [Fri, 31 Jul 2009 21:33:39 +0000 (21:33 +0000)]
2009-07-29 Michael Snyder <msnyder@vmware.com>
* remote.c (store_register_using_P): Call putpkt and getpkt
directly instead of calling remote_send.
(store_register_using_G): Ditto.
(fetch_register_using_p): Ditto.
Daniel Jacobowitz [Fri, 31 Jul 2009 18:14:07 +0000 (18:14 +0000)]
binutils/testsuite/
* binutils-all/arm/thumb2-cond.s: Use instructions instead of
.short.
gas/
* config/obj-elf.c (obj_elf_ident): Notify section change to the hook.
* config/tc-arm.c (make_mapping_symbol): New function, from
mapping_state. Save mapping symbols in the frag.
(insert_data_mapping_symbol): New.
(mapping_state): Use make_mapping_symbol, improve state transitions.
(mapping_state_2): New. Provide dummy definition.
(opcode_select): Do not call mapping_state.
(s_bss): Call md_elf_section_change_hook instead of mapping_state.
(output_inst): Update use of tc_frag_data.
(new_automatic_it_block): Call mapping_state before emitting the
IT instruction.
(md_assemble): Move mapping_state to just before outputting the
new instruction.
(arm_handle_align): Update use of tc_frag_data.
Call insert_data_mapping_symbol.
(arm_init_frag): Update use of tc_frag_data. Call
mapping_state_2.
(arm_elf_change_section): Always update the mapping symbol FSM state.
(check_mapping_symbols): New function.
(arm_adjust_symtab): Use check_mapping_symbols.
* config/tc-arm.h (struct arm_frag_type): New.
(TC_FRAG_TYPE): Change to struct arm_frag_type.
(TC_FRAG_INIT): Pass max_chars.
(arm_init_frag): Update prototype.
gas/testsuite/
* gas/arm/mapdir.d, gas/arm/mapdir.s: New files.
* gas/arm/mapping.d: Adapted to new symbols generation.
* gas/arm/mapping2.d: New test case.
* gas/arm/mapping2.s: New file.
* gas/arm/mapping3.d: New test case.
* gas/arm/mapping3.s: New file.
* gas/arm/mapping4.d: New test case.
* gas/arm/mapping4.s: New file.
* gas/arm/mapshort-eabi.d: Adapted to new symbols generation.
* gas/elf/section2.e-armeabi: Adapted to new symbols generation.
Ulrich Weigand [Fri, 31 Jul 2009 15:39:24 +0000 (15:39 +0000)]
Fix previous check-in.
Ulrich Weigand [Fri, 31 Jul 2009 15:38:16 +0000 (15:38 +0000)]
* configure.ac: Run gdb.cell tests when appropriate.
* configure: Regenerate.
* lib/cell.exp: New file.
* gdb.cell: New directory.
* gdb.cell/configure.ac: New file.
* gdb.cell/configure: New file.
* gdb.cell/Makefile.in: New file.
* gdb.cell/arch.exp: New file.
* gdb.cell/break.c: New file.
* gdb.cell/break.exp: New file.
* gdb.cell/break-spu.c: New file.
* gdb.cell/bt.c: New file.
* gdb.cell/bt2-spu.c: New file.
* gdb.cell/bt-spu.c: New file.
* gdb.cell/bt.exp: New file.
* gdb.cell/coremaker.c: New file.
* gdb.cell/coremaker-spu.c: New file.
* gdb.cell/core.exp: New file.
* gdb.cell/gcore.exp: New file.
* gdb.cell/data.c: New file.
* gdb.cell/data.exp: New file.
* gdb.cell/data-spu.c: New file.
* gdb.cell/ea-cache.exp: New file.
* gdb.cell/ea-cache.c: New file.
* gdb.cell/ea-cache-spu.c: New file.
* gdb.cell/ea-standalone.c: New file.
* gdb.cell/ea-standalone.exp: New file.
* gdb.cell/ea-test.c: New file.
* gdb.cell/ea-test.exp: New file.
* gdb.cell/f-regs.exp: New file.
* gdb.cell/mem-access.c: New file.
* gdb.cell/mem-access.exp: New file.
* gdb.cell/mem-access-spu.c: New file.
* gdb.cell/ptype.exp: New file.
* gdb.cell/registers.exp: New file.
* gdb.cell/size.c: New file.
* gdb.cell/sizeof.exp: New file.
* gdb.cell/size-spu.c: New file.
* gdb.cell/solib.exp: New file.
* gdb.cell/solib-symbol.exp: New file.
Ulrich Weigand [Fri, 31 Jul 2009 15:35:38 +0000 (15:35 +0000)]
ChangeLog:
* spu-tdep.c: Include "infcall.h".
(spu_address_class_type_flags): New function.
(spu_address_class_type_flags_to_name): Likewise.
(spu_address_class_name_to_type_flags): Likewise.
(spu_pointer_to_address): Handle __ea pointers.
(spu_auto_flush_cache_p): New static variable.
(spu_objfile_from_frame): New function.
(flush_ea_cache, spu_attach_normal_stop): Likewise.
(show_spu_auto_flush_cache): Likewise.
(spu_gdbarch_init): Install address class handlers.
(_initialize_spu_tdep): Attach to normal_stop observer.
Install "set spu auto-flush-cache" / "show spu auto-flush-cache"
commands.
* NEWS: Mention "set/show spu auto-flush-cache" commands.
doc/ChangeLog:
* gdb.texinfo (Cell Broadband Engine SPU architecture): Document the
"set spu auto-flush-cache" and "show spu auto-flush-cache" commands.
Ulrich Weigand [Fri, 31 Jul 2009 15:33:50 +0000 (15:33 +0000)]
ChangeLog:
* spu-tdep.c: Include "block.h".
(setspucmdlist, showspucmdlist): New static variables.
(spu_stop_on_load_p): Likewise.
(spu_catch_start): New function.
(show_spu_command, set_spu_command): New functions.
(show_spu_stop_on_load): Likewise.
(_initialize_spu_tdep): Attach spu_catch_start to new_objfile observer.
Install "set spu" / "show spu" prefix command handler.
Install "set spu stop-on-load" / "show spu stop-on-load" command.
* NEWS: Mention "set/show spu stop-on-load" commands.
doc/ChangeLog:
* gdb.texinfo (Cell Broadband Engine SPU architecture): Document the
"set spu stop-on-load" and "show spu stop-on-load" commands.
Ulrich Weigand [Fri, 31 Jul 2009 15:31:08 +0000 (15:31 +0000)]
* ppc-linux-tdep.c: Include "solib.h", "solist.h", "exceptions.h",
"arch-utils.h", and "spu-tdep.h".
(spu_context_objfile, spe_context_lm_addr, spe_context_offset):
New static variables.
(spe_context_cache_ptid, spe_context_cache_address): Likewise.
(ppc_linux_spe_context_lookup): New function.
(ppc_linux_spe_context_inferior_created): Likewise.
(ppc_linux_spe_context_solib_loaded): Likewise.
(ppc_linux_spe_context_solib_unloaded): Likewise.
(ppc_linux_spe_context): Likewise.
(struct ppu2spu_cache, struct ppu2spu_data): New data types.
(ppu2spu_prev_arch, ppu2spu_this_id, ppu2spu_prev_register,
ppu2spu_unwind_register, ppu2spu_sniffer,
ppu2spu_dealloc_cache): New functions.
(ppu2spu_unwind): New static variable.
(ppc_linux_init_abi): Install cross-architecture unwinder.
(_initialize_ppc_linux_tdep): Attach to observers.
* spu-tdep.c (struct spu2ppu_cache): New data type.
(spu2ppu_prev_arch, spu2ppu_this_id, spu2ppu_prev_register,
spu2ppu_sniffer, spu2ppu_dealloc_cache): New functions.
(spu2ppu_unwind): New static variable.
(spu_gdbarch_init): Install cross-architecture unwinder.
Ulrich Weigand [Fri, 31 Jul 2009 15:30:03 +0000 (15:30 +0000)]
* linux-ppc-low.c (INSTR_SC, NR_spu_run): Define.
(parse_spufs_run): New function.
(ppc_get_pc, ppc_set_pc): Detect and handle SPU PC.
(ppc_breakpoint_at): Handle SPU breakpoints.
Ulrich Weigand [Fri, 31 Jul 2009 15:28:27 +0000 (15:28 +0000)]
ChangeLog:
* target.h (enum strata): New value arch_stratum.
* target.c (target_require_runnable): Skip arch_stratum targets.
* configure.tgt (powerpc-*-linux* | powerpc64-*-linux*): Add
solib-spu.o and spu-multiarch.o to gdb_target_obs.
* Makefile.in (ALL_TARGET_OBS): Add solib-spu.o and spu-multiarch.o.
(ALLDEPFILES): Add solib-spu.c and spu-multiarch.c.
* solib-spu.c: New file.
* solib-spu.h: New file.
* spu-multiarch.c: New file.
* spu-tdep.h (SPUADDR, SPUADDR_SPU, SPUADDR_ADDR): New macros.
* spu-tdep.c (struct gdbarch_tdep): New member id.
(spu_gdbarch_id): New function.
(spu_lslr): New function.
(spu_address_to_pointer): New function.
(spu_pointer_to_address): Support SPU ID address encoding. Use
spu_gdbarch_id and spu_lslr.
(spu_integer_to_address): Likewise.
(spu_frame_unwind_cache): Update for encoded addresses.
(spu_unwind_pc, spu_unwind_sp): Likewise.
(spu_read_pc, spu_write_pc): Likewise.
(spu_push_dummy_call): Likewise.
(spu_software_single_step): Likewise.
(spu_get_longjmp_target): Likewise.
(spu_overlay_update_osect): Likewise.
(spu_dis_asm_print_address): New function.
(gdb_print_insn_spu): Likewise.
(spu_gdbarch_init): Store SPU ID in tdep structure.
Install spu_address_to_pointer and gdb_print_insn_spu.
* ppc-linux-tdep.c: Include "observer.h", "auxv.h", "elf/common.h"
and "solib-spu.h".
(ppc_linux_entry_point_addr): New static variable.
(ppc_linux_inferior_created): New function.
(ppc_linux_displaced_step_location): Likewise.
(ppc_linux_init_abi): Enable Cell/B.E. support if supported
by the target.
(_initialize_ppc_linux_tdep): Attach to inferior_created observer.
* NEWS: Mention multi-architecture and Cell/B.E. debugging
capabilities.
testsuite/ChangeLog:
* gdb.xml/tdesc-regs.exp: Skip for SPU targets.
Ulrich Weigand [Fri, 31 Jul 2009 15:25:22 +0000 (15:25 +0000)]
ChangeLog:
* linux-nat.c: Include <sys/vfs.h>.
(SPUFS_MAGIC): Define.
(spu_enumerate_spu_ids): New function.
(linux_proc_xfer_spu): New function.
(linux_xfer_partial): Handle TARGET_OBJECT_SPU.
(iterate_over_spus): New function.
(struct linux_spu_corefile_data): New data type.
(linux_spu_corefile_callback): New function.
(linux_spu_make_corefile_notes): New function.
(linux_nat_make_corefile_notes): Call it.
* corelow.c (struct spuid_list): New data type.
(add_to_spuid_list): New function.
(core_xfer_partial): Handle TARGET_OBJECT_SPU.
gdbserver/ChangeLog:
* linux-low.c: Include <sys/stat.h> and <sys/vfs.h>.
(SPUFS_MAGIC): Define.
(spu_enumerate_spu_ids): New function.
(linux_qxfer_spu): New function.
(linux_target_ops): Install linux_qxfer_spu.
Ulrich Weigand [Fri, 31 Jul 2009 15:23:21 +0000 (15:23 +0000)]
ChangeLog:
* features/Makefile: Allow sub-platform specific expedite settings.
(WHICH): Add rs6000/powerpc-cell32l and rs6000/powerpc-cell64l.
(rs6000/powerpc-cell32l-expedite): Define.
(rs6000/powerpc-cell64l-expedite): Likewise.
* features/rs6000/powerpc-cell32l.xml: New file.
* features/rs6000/powerpc-cell64l.xml: New file.
* features/rs6000/powerpc-cell32l.c: New generated file.
* features/rs6000/powerpc-cell64l.c: New generated file.
* regformats/rs6000/powerpc-cell32l.dat: New generated file.
* regformats/rs6000/powerpc-cell64l.dat: New generated file.
* config/djgpp/fnchange.lst: Add mappings for new files.
* ppc-linux-tdep.h (tdesc_powerpc_cell32l): Add prototype.
(tdesc_powerpc_cell64l): Likewise.
* ppc-linux-tdep.c: Include "features/rs6000/powerpc-cell32l.c"
and "features/rs6000/powerpc-cell64l.c".
(_initialize_ppc_linux_tdep): Initialize target descriptions.
(ppc_linux_spu_section): New function.
(ppc_linux_core_read_description): Detect Cell/B.E. core files.
* ppc-linux-nat.c (PPC_FEATURE_CELL): Define.
(ppc_linux_read_description): Detect Cell/B.E. architecture.
* rs6000-tdep.c (rs6000_gdbarch_init): Do not trust BFD wordsize
if exec file is not PowerPC architecture.
gdbserver/ChangeLog:
* configure.srv (powerpc*-*-linux*): Add powerpc-cell32l.o
and powerpc-cell64l.o to srv_regobj. Add rs6000/powerpc-cell32l.xml
and rs6000/powerpc-cell64l.xml to srv_xmlfiles.
* Makefile.in (powerpc-cell32l.o, powerpc-cell32l.c): New rules.
(powerpc-cell64l.o, powerpc-cell64l.c): Likewise.
(clean): Handle powerpc-cell32l.c and powerpc-cell64l.c.
* linux-ppc-low.c (PPC_FEATURE_CELL): Define.
(init_registers_powerpc_cell32l): Add prototype.
(init_registers_powerpc_cell64l): Likewise.
(ppc_arch_setup): Detect Cell/B.E. architecture.
Ulrich Weigand [Fri, 31 Jul 2009 14:39:12 +0000 (14:39 +0000)]
ChangeLog:
* features/gdb-target.dtd (target): Accept optional
<compatible> elements.
(compatible): Define element.
* target-descriptions.h (tdesc_compatible_p): New.
(tdesc_add_compatible): New.
* target-descriptions.c (arch_p): New VEC_P type.
(struct target_desc): New member compatible.
(free_target_description): Handle it.
(maint_print_c_tdesc_cmd): Likewise.
(tdesc_compatible_p): New function.
(tdesc_add_compatible): New function.
* xml-tdesc.c (tdesc_end_compatible): New function.
(target_children): Handle <compatible> element.
* arch-utils.c (choose_architecture_for_target): Accept target
description instead of BFD architecture as input. Query target
description for compatible architectures.
(gdbarch_info_fill): Update call.
* NEWS: Mention <compatible> element of target descriptions.
doc/ChangeLog:
* gdb.texinfo (Target Descriptions): Document <compatible> element.
Ulrich Weigand [Fri, 31 Jul 2009 14:33:45 +0000 (14:33 +0000)]
* breakpoint.c (remove_breakpoints): If removing one breakpoint
location fails, still continue to remove other locations.
(remove_hw_watchpoints): Likewise.
(detach_breakpoints): Likewise.
Ulrich Weigand [Fri, 31 Jul 2009 14:31:16 +0000 (14:31 +0000)]
* breakpoint.h (enum enable_state): Add bp_startup_disabled.
(disable_breakpoints_before_startup): Add prototype.
(enable_breakpoints_after_startup): Likewise.
* breakpoint.c (executing_startup): New static variable.
(describe_other_breakpoints): Handle bp_startup_disabled.
(check_duplicates_for): Likewise.
(disable_breakpoints_before_startup): New function.
(enable_breakpoints_after_startup): New function.
(create_breakpoint): Mark new breakpoints as bp_startup_disabled
if executing_startup flag is true.
(break_command_really): Likewise.
(breakpoint_re_set_one): Skip bp_startup_disabled breakpoints.
Anthony Green [Fri, 31 Jul 2009 11:40:16 +0000 (11:40 +0000)]
Increase simulated memory size. Support new system call ABI. Support exception processing for Linux system calls.
Anthony Green [Fri, 31 Jul 2009 11:25:14 +0000 (11:25 +0000)]
Add moxie-uclinux support.
Hans-Peter Nilsson [Fri, 31 Jul 2009 04:55:48 +0000 (04:55 +0000)]
* ld-mmix/x.s, ld-mmix/y.s, ld-mmix/zeroeh.ld,
ld-mmix/zeroehelf.d, ld-mmix/zeroehmmo.d: Use .gcc_except_table,
not .eh_frame.
Hans-Peter Nilsson [Fri, 31 Jul 2009 02:25:56 +0000 (02:25 +0000)]
* linker.c (fix_syms): Consider SEC_LOAD when choosing section.
gdbadmin [Fri, 31 Jul 2009 00:00:33 +0000 (00:00 +0000)]
*** empty log message ***
This page took 0.045909 seconds and 4 git commands to generate.