gdbadmin [Fri, 8 Mar 2013 00:00:34 +0000 (00:00 +0000)]
*** empty log message ***
Pedro Alves [Thu, 7 Mar 2013 23:53:12 +0000 (23:53 +0000)]
target.c: fix -Wpointer-sign
$ make WERROR_CFLAGS="-Wpointer-sign -Werror" target.o -k 2>&1 1>/dev/null
../../src/gdb/target.c: In function ‘target_read_stralloc’:
../../src/gdb/target.c:2376:3: error: pointer targets in passing argument 1 of ‘strlen’ differ in signedness [-Werror=pointer-sign]
In file included from build-gnulib/import/string.h:27:0,
from ../../src/gdb/common/gdb_string.h:24,
from ../../src/gdb/target.c:24:
/usr/include/string.h:399:15: note: expected ‘const char *’ but argument is of type ‘gdb_byte *’
...
This is about the same as the previous patch.
Functions that take or return ascii-ish string arguments usually use
char* for parameters/return. That means that at points we call into
target methods that work with binary blobs, we need casts to/from
gdb_byte*/char*. To choose which type for the variables, I usually go
based on which requires the fewer casts, and what the contents of the
variable are supposed to hold, which often gives the same answer.
gdb/
2013-03-07 Pedro Alves <palves@redhat.com>
* target.c (target_read_stralloc, target_fileio_read_alloc):
*Cast pointer to 'gdb_byte *' in target call.
Pedro Alves [Thu, 7 Mar 2013 23:36:01 +0000 (23:36 +0000)]
corefile.c: fix -Wpointer-sign
$ make WERROR_CFLAGS="-Wpointer-sign -Werror" corefile.o -k 2>&1 1>/dev/null
../../src/gdb/corefile.c: In function ‘read_memory_string’:
../../src/gdb/corefile.c:334:7: error: pointer targets in passing argument 2 of ‘read_memory’ differ in signedness [-Werror=pointer-sign]
../../src/gdb/corefile.c:217:1: note: expected ‘gdb_byte *’ but argument is of type ‘char *’
Functions that take or return ascii-ish string arguments usually use
char* for parameters/return. That means that at points we call into
target methods that work with binary blobs, we need casts to
gdb_byte*.
gdb/
2013-03-07 Pedro Alves <palves@redhat.com>
* corefile.c (read_memory_string): Cast pointer to gdb_byte* in
call.
Alan Modra [Thu, 7 Mar 2013 23:27:53 +0000 (23:27 +0000)]
* ehframe.h (Post_fdes) Make it a vector of Post_fde rather than
pointer to Post_fde.
(struct Post_fde): Move definition to here..
* ehframe.cc (struct Post_fde): ..from here.
(Cie::write): Don't alloc Post_fde.
(Eh_frame::do_sized_write): Update. Don't free Post_fde.
Alan Modra [Thu, 7 Mar 2013 23:00:05 +0000 (23:00 +0000)]
daily update
Keith Seitz [Thu, 7 Mar 2013 21:57:30 +0000 (21:57 +0000)]
* breakpoint.c (catch_syscall_split_args): Use skip_spaces.
(trace_pass_command): Likewise.
* cli/cli-cmds.c: Include cli/cli-utils.h.
(source_command): Use skip-spaces.
(disassemble_command): Likewise.
* findcmd.c: Include cli/cli-utils.h.
(parse_find_args): Use skip_spaces.
* go32-nat.c: Include cli/cli-utils.h.
(go32_sldt): Use skip_spaces.
(go32_sgdt): Likewise.
(go32_sidt): Likewise.
(go32_pde): Likewise.
(go32_pte): Likewise.
(go32_pte_for_address): Likewise.
* infcmd.c: Include cli/cli-utils.h.
(registers_info): Use skip_spaces.
* linux-tdep.c (read_mapping): Use skip_spaces_const.
(linux_info_proc): Likewise.
* linux-thread-db.c: Include cli/cli-utils.h.
(info_auto_load_libthread_db): Use skip_spaces_const.
* m32r-rom.c: Include cli/cli-utils.h.
(m32r_upload_command): Use skip_spaces.
* maint.c: Include cli/cli-utils.h.
(maintenance_translate_address): Use skip_spaces.
* mi/mi-parse.c: Include cli/cli-utils.h.
(mi_parse_argv): Use skip_spaces.
(mi_parse): Likewise.
* minsyms.c: Include cli/cli-utils.h.
(msymbol_hash_iw): Use skip_spaces_const.
* objc-lang.c: Include cli/cli-utils.h.
(parse_selector): Use skip_spaces.
(parse_method): Likewise.
* python/python.c: Include cli/cli-utils.h.
(python_interactive_command)[HAVE_PYTHON]: Use skip_spaces.
(python_command)[HAVE_PYTHON]: Likewise.
(python_interactive_command)[!HAVE_PYTHON]: Likewise.
* remote-m32r-sdi.c: Include cli/cli-utils.h.
(m32r_load): Use skip_spaces.
* serial.c: Include cli/cli-utils.h.
(serial_open): Use skip_spaces_const.
* stack.c: Include cli/cli-utils.h.
(parse_frame_specification_1): Use skip_spaces_const.
* symfile.c: Include cli/cli-utils.h.
(set_ext_lang_command): Use skip_spaces.
* symtab.c: Include cli/cli-utils.h.
(rbreak_command): Use skip_spaces.
* thread.c (thread_name_command): Use skip_spaces.
* tracepoint.c (validate_actionline): Use skip_spaces.
(encode_actions_1): Likewise.
(trace_find_range_command): Likewise.
(trace_find_outside_command): Likewise.
(trace_dump_actions): Likewise.
H.J. Lu [Thu, 7 Mar 2013 21:40:06 +0000 (21:40 +0000)]
Rewrote i386_index_check
* config/tc-i386.c (flag_code_names): Removed.
(i386_index_check): Rewrote.
Pedro Alves [Thu, 7 Mar 2013 19:24:32 +0000 (19:24 +0000)]
Fix -Wpointer-sign around strings/encoding conversions.
Trimmed for brevity:
$ make WERROR_CFLAGS="-Wpointer-sign -Werror" c-lang.o expprint.o utils.o valprint.o varobj.o -k 2>&1 1>/dev/null
../../src/gdb/c-lang.c: In function ‘parse_one_string’:
../../src/gdb/c-lang.c:540:8: error: pointer targets in passing argument 3 of ‘convert_between_encodings’ differ in signedness [-Werror=pointer-sign]
In file included from ../../src/gdb/c-lang.c:30:0:
../../src/gdb/charset.h:64:6: note: expected ‘const gdb_byte *’ but argument is of type ‘char *’
../../src/gdb/expprint.c: In function ‘print_subexp_standard’:
../../src/gdb/expprint.c:205:2: error: pointer targets in passing argument 3 of ‘current_language->la_printstr’ differ in signedness [-Werror=pointer-sign]
../../src/gdb/expprint.c:205:2: note: expected ‘const gdb_byte *’ but argument is of type ‘char *’
cc1: all warnings being treated as errors
make: *** [expprint.o] Error 1
../../src/gdb/utils.c: In function ‘host_char_to_target’:
../../src/gdb/utils.c:1474:9: error: pointer targets in passing argument 3 of ‘convert_between_encodings’ differ in signedness [-Werror=pointer-sign]
../../src/gdb/varobj.c: In function ‘value_get_print_value’:
../../src/gdb/varobj.c:2934:8: error: pointer targets in return differ in signedness [-Werror=pointer-sign]
../../src/gdb/varobj.c:2968:12: error: pointer targets in assignment differ in signedness [-Werror=pointer-sign]
../../src/gdb/varobj.c:2971:3: error: pointer targets in return differ in signedness [-Werror=pointer-sign]
cc1: all warnings being treated as errors
make: *** [varobj.o] Error 1
As with the previous patch, the encoding conversion code works with
gdb_byte arrays as the generic buffers that hold strings of any
encoding/width. This patch adds casts where appropriate.
gdb/
2013-03-07 Pedro Alves <palves@redhat.com>
* c-lang.c (parse_one_string): Cast argument to gdb_byte *.
* expprint.c (print_subexp_standard): Likewise.
* utils.c (host_char_to_target): Likewise.
* valprint.c (generic_emit_char, generic_printstr): Likewise.
* varobj.c (value_get_print_value): Change type of local to char*.
Cast it gdb_byte * in call to language printer.
Pedro Alves [Thu, 7 Mar 2013 19:10:46 +0000 (19:10 +0000)]
charset.c: fix -Wpointer-sign
$ make WERROR_CFLAGS="-Wpointer-sign -Werror" charset.o 2>&1 1>/dev/null
../../src/gdb/charset.c: In function ‘wchar_iterate’:
../../src/gdb/charset.c:665:13: error: pointer targets in assignment differ in signedness [-Werror=pointer-sign]
../../src/gdb/charset.c:691:13: error: pointer targets in assignment differ in signedness [-Werror=pointer-sign]
../../src/gdb/charset.c:706:12: error: pointer targets in assignment differ in signedness [-Werror=pointer-sign]
The encoding conversion code works with gdb_byte arrays as the generic
buffers that hold strings of any encoding/width. Changing the type of
this field to gdb_byte* removes the need for one cast, and makes
everything work with the same types. That's good -- WRT to strings,
"char *" is (almost) consistently throughout GDB only used for
ascii-ish strings.
gdb/
2013-03-07 Pedro Alves <palves@redhat.com>
* charset.c (struct wchar_iterator) <input>: Change type to 'const
gdb_byte *'.
(make_wchar_iterator): Remove cast to char*.
(wchar_iterate): Change type of local.
Pedro Alves [Thu, 7 Mar 2013 18:59:54 +0000 (18:59 +0000)]
regcache.c: fix -Wpointer-sign
$ make WERROR_CFLAGS="-Wpointer-sign -Werror" regcache.o 2>&1 1>/dev/null
../../src/gdb/regcache.c: In function ‘regcache_xmalloc_1’:
../../src/gdb/regcache.c:228:2: error: pointer targets in assignment differ in signedness [-Werror=pointer-sign]
../../src/gdb/regcache.c:235:2: error: pointer targets in assignment differ in signedness [-Werror=pointer-sign]
cc1: all warnings being treated as errors
regcache->register_status is "signed char".
gdb/
2013-03-07 Pedro Alves <palves@redhat.com>
* regcache.c (regcache_xmalloc_1): Call XCALLOC with signed char
for 'regcache->register_status'.
Pedro Alves [Thu, 7 Mar 2013 18:53:40 +0000 (18:53 +0000)]
Fix typo.
Pedro Alves [Thu, 7 Mar 2013 18:50:53 +0000 (18:50 +0000)]
breakpoint.c: fix -Wpointer-sign
$ make WERROR_CFLAGS="-Wpointer-sign -Werror" breakpoint.o 2>&1 1>/dev/null
../../src/gdb/breakpoint.c: In function ‘breakpoint_xfer_memory’:
../../src/gdb/breakpoint.c:1578:2: error: pointer targets in passing argument 3 of ‘gdbarch_breakpoint_from_pc’ differ in signedness [-Werror=pointer-sign]
In file included from ../../src/gdb/defs.h:644:0,
from ../../src/gdb/breakpoint.c:20:
../../src/gdb/gdbarch.h:495:25: note: expected ‘int *’ but argument is of type ‘unsigned int *’
target_info.placed_size is an 'int', and gdbarch_breakpoint_from_pc
takes an int too.
gdb/
2013-03-07 Pedro Alves <palves@redhat.com>
* breakpoint.c.c (breakpoint_xfer_memory): Change type of local to
int.
Pedro Alves [Thu, 7 Mar 2013 18:45:51 +0000 (18:45 +0000)]
stap-probe.c: fix -Wpointer-sign
$ make WERROR_CFLAGS="-Wpointer-sign -Werror" stap-probe.o 2>&1 1>/dev/null
../../src/gdb/stap-probe.c: In function ‘handle_stap_probe’:
../../src/gdb/stap-probe.c:1306:19: error: pointer targets in assignment differ in signedness [-Werror=pointer-sign]
cc1: all warnings being treated as errors
make: *** [stap-probe.o] Error 1
provider is a string, so it's rightfully a char*. 'data' holds raw
bytes (bfd_byte), so a cast is the right thing to do.
gdb/
2013-03-07 Pedro Alves <palves@redhat.com>
* stap-probe.c (handle_stap_probe): Add cast to char*.
Pedro Alves [Thu, 7 Mar 2013 18:29:05 +0000 (18:29 +0000)]
linux-record.c:record_linux_system_call: fix -Wpointer-sign
$ make WERROR_CFLAGS="-Wpointer-sign -Werror" linux-record.o 2>&1 1>/dev/null
...
../../src/gdb/linux-record.c: In function ‘record_linux_system_call’:
../../src/gdb/linux-record.c:1152:9: error: pointer targets in passing argument 3 of ‘regcache_raw_read_signed’ differ in signedness [-Werror=pointer-sign]
In file included from ../../src/gdb/linux-record.c:23:0:
../../src/gdb/regcache.h:76:3: note: expected ‘long int *’ but argument is of type ‘long unsigned int *’
../../src/gdb/linux-record.c:1186:13: error: pointer targets in passing argument 3 of ‘regcache_raw_read_signed’ differ in signedness [-Werror=pointer-sign]
In file included from ../../src/gdb/linux-record.c:23:0:
../../src/gdb/regcache.h:76:3: note: expected ‘long int *’ but argument is of type ‘long unsigned int *’
I believe the read_signed calls are correct, and the variables are in
the wrong.
Tested on x86_64 Fedora 17.
gdb/
2013-03-07 Pedro Alves <palves@redhat.com>
* linux-record.c (record_linux_system_call) <gdb_sys_msgrcv,
RECORD_MSGRCV>: Pass a signed variable to
regcache_raw_read_signed, instead of an unsigned one.
Pedro Alves [Thu, 7 Mar 2013 17:52:58 +0000 (17:52 +0000)]
remote-notif.[h|c]:notif_debug: Change type to int.
notif_debug is installed as variable of a "signed" command:
add_setshow_boolean_cmd ("notification", no_class, ¬if_debug,
_("\
and:
command.h:extern void add_setshow_boolean_cmd (char *name,
command.h- enum command_class class,
command.h- int *var,
2013-03-07 Pedro Alves <palves@redhat.com>
* remote-notif.c (notif_debug): Change type to int.
* remote-notif.h (notif_debug): Likewise.
Pedro Alves [Thu, 7 Mar 2013 17:36:25 +0000 (17:36 +0000)]
ser-tcp.c:tcp_retry_limit: Change type to unsigned int.
tcp_retry_limit is installed as variable of an unsigned command:
add_setshow_uinteger_cmd ("connect-timeout", class_obscure,
&tcp_retry_limit, _("\
and I found no uses of the variable treating it as signed (like < 0
checks or some such).
2013-03-07 Pedro Alves <palves@redhat.com>
* ser-tcp.c (tcp_retry_limit): Change type to unsigned int.
Pedro Alves [Thu, 7 Mar 2013 17:29:32 +0000 (17:29 +0000)]
hex2bin, bin2hex: move declarations to header.
Move the declarations to a header, rather than declaring them in
(multiple) .c files.
gdb/
2013-03-07 Pedro Alves <palves@redhat.com>
* remote.c (hex2bin, bin2hex): Move extern declarations to ...
* remote.h (hex2bin, bin2hex): ... here.
* tracepoint.c (hex2bin, bin2hex): Remove extern declarations.
Yao Qi [Thu, 7 Mar 2013 13:17:28 +0000 (13:17 +0000)]
gdb/gdbserver/
* tracepoint.c (cur_action, cur_step_action): Make them unsigned.
(cmd_qtfp): Initialize cur_action and cur_step_action 0 instead
of -1.
(cmd_qtsp): Adjust condition. Do post increment.
Set cur_action and cur_step_action back to 0.
Eli Zaretskii [Thu, 7 Mar 2013 12:26:05 +0000 (12:26 +0000)]
* utils.c (initialize_utils): Improve doc strings of "set/show
width", "set/show height", and "set/show pagination".
Pedro Alves [Thu, 7 Mar 2013 09:47:57 +0000 (09:47 +0000)]
PR gdb/15236: gdbserver write to linux memory with zero length corrupts stack
PROBLEM:
The function linux_write_memory () in linux-low.c allocates a buffer
on the stack to hold a copy of the data to be written.
register PTRACE_XFER_TYPE *buffer = (PTRACE_XFER_TYPE *)
alloca (count * sizeof (PTRACE_XFER_TYPE));
"count" is the number of bytes to be written, rounded up to the
nearest multiple of sizeof (PTRACE_XFER_TYPE) and allowing for not
being an aligned address. The function later uses
buffer[0] = ptrace (PTRACE_PEEKTEXT, pid,
(PTRACE_ARG3_TYPE) (uintptr_t) addr, 0);
The problem is that this function can be called to write zero bytes on
an aligned address, for example when receiving an X packet of length 0
(used to test if 8-bit write is supported). Under these circumstances,
count can be zero.
Since in this case, buffer[0] may never have been allocated, the stack
is corrupted and gdbserver may crash.
SOLUTION:
Writing zero bytes should always succeed. The patch below returns
successfully early if the length is zero, so avoiding the stack
corruption.
Verified on the ARC GDB 7.5.1 port.
2013-03-07 Jeremy Bennett <jeremy.bennett@embecosm.com>
PR server/15236
* linux-low.c (linux_write_memory): Return early success if LEN is
zero.
Alan Modra [Thu, 7 Mar 2013 05:33:50 +0000 (05:33 +0000)]
* testsuite/discard_locals_relocatable_test.c: Add a powerpc
relocation referencing .LC0.
* testsuite/discard_locals_test.sh: Remove FIXMEs.
Alan Modra [Thu, 7 Mar 2013 05:31:44 +0000 (05:31 +0000)]
* testsuite/ifunc-sel.h (ifunc_sel, ifunc_one): Mark
always_inline. Add assembly for powerpc to avoid GOT.
Alan Modra [Thu, 7 Mar 2013 05:30:06 +0000 (05:30 +0000)]
* testsuite/script_test_10.sh: Don't test .bss section
header number.
Keith Seitz [Thu, 7 Mar 2013 00:48:25 +0000 (00:48 +0000)]
* ax-gdb.c (gen_printf): Make FORMAT const.
* ax-gdb.h (gen_printf): Likewise.
* ax-general.c (ax_string): Make STR const.
* ax.h (ax_string): Likewise.
gdbadmin [Thu, 7 Mar 2013 00:00:34 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Wed, 6 Mar 2013 23:00:05 +0000 (23:00 +0000)]
daily update
Doug Evans [Wed, 6 Mar 2013 21:20:02 +0000 (21:20 +0000)]
* elfread.c (elf_symfile_read): Move debugging printf to more
logical location.
Pedro Alves [Wed, 6 Mar 2013 19:51:18 +0000 (19:51 +0000)]
Garbage collect py-utils.c:target_string_to_unicode.
The strlen in this function looked suspicious, for the function
documents that STR is in the target's charset (what if it is utf-32,
etc.).
On closer inspection, nothing is calling the function, and it's been
that way ever since the function was added.
gdb/
2013-03-06 Pedro Alves <palves@redhat.com>
* python/py-utils.c (target_string_to_unicode): Delete function.
* python/python-internal.h (target_string_to_unicode): Delete
declaration.
Alan Modra [Wed, 6 Mar 2013 13:48:46 +0000 (13:48 +0000)]
* ldfile.c (ldfile_open_command_file_1): Return after einfo
to avoid warning.
Alan Modra [Wed, 6 Mar 2013 13:40:51 +0000 (13:40 +0000)]
* strings.c (get_char): Dispense with buf[]. Instead shift
chars into big-endian value and byte-swap later if
little-endian. Don't EOF check value read from object.
Alan Modra [Wed, 6 Mar 2013 12:28:47 +0000 (12:28 +0000)]
* powerpc.cc (class Powerpc_relobj): Move some member functions.
(Target_powerpc::symval_for_branch): Add symtab param. Update
all callers. Handle folded sections.
(Target_powerpc::do_gc_add_reference): Don't cast dynamic object
to Powerpc_relobj.
(Global_symbol_visitor_opd::operator()): Likewise.
Pedro Alves [Wed, 6 Mar 2013 12:13:41 +0000 (12:13 +0000)]
tstatus.exp: use UNSUPPORTED for optional features that are not supported
The current tstatus.exp tests shows PASSes if either the target
support or not the optional tstatus bits:
PASS: gdb.trace/tstatus.exp: tstatus does not report trace stop reason
PASS: gdb.trace/tstatus.exp: tstatus reports trace stop reason
The former (and any other similar case) should be UNSUPPORTED rather
than PASS. That'd make it much easier to spot actually problems with
the test (e.g., the one Yao's previous patch addressed), along with
regressions and progressions.
The "not supported" paths in tstatus.exp explicitly check for output
you'd get if the feature wasn't supported, so real unexpected failures
will still be caught as FAILs.
So now e.g., where we wanted to check if tstatus reports the trace
stop reason, and if the target does support it, we get
PASS: tstatus reports trace stop reason
if the target actually reports what we'd expect if the trace stop
reason isn't supported, we get:
UNSUPPORTED: tstatus reports trace stop reason
and if the target reports something else unexpected, we get:
FAIL: tstatus reports trace stop reason
That has the added bonus that the test string is always the same and
only the test results change (PASS/FAIL/UNSUPPORTED), which makes it
easier for testers see regressions, compared to the previous:
-PASS: gdb.trace/tstatus.exp: tstatus reports trace stop reason
+PASS: gdb.trace/tstatus.exp: tstatus does not report trace stop reason
which clearly easily goes by unnoticed, as evidenced by the existing
problem Yao's previous patch addressed.
Tested on x86_64 Fedora 17.
gdb/testsuite/
2013-03-06 Pedro Alves <palves@redhat.com>
* gdb.trace/tstatus.exp (run_trace_experiment): When the target
doesn't support the tested optional feature, call "unsupported"
with the same test message as the "pass" case, instead of calling
"pass" with a different message. Use the same text for the "fail"
cases too.
Pierre Muller [Wed, 6 Mar 2013 11:05:55 +0000 (11:05 +0000)]
* linespec.c (get_current_search_block): ARI fix, use (void)
for empty parameter list.
Yao Qi [Wed, 6 Mar 2013 01:03:40 +0000 (01:03 +0000)]
gdb/testsuite/
* gdb.trace/tstatus.exp: Remove the invocation of
gdb_load_shlibs, gdb_compile, clean_restart and runto_main.
(test_tracepoints): Don't set fast tracepoint.
(top level): Don't check agent library is loaded or not.
Yao Qi [Wed, 6 Mar 2013 00:59:55 +0000 (00:59 +0000)]
gdb/testsuite/
* gdb.trace/tstatus.exp (run_trace_experiment): Escape
parentheses by "\\".
gdbadmin [Wed, 6 Mar 2013 00:00:03 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Tue, 5 Mar 2013 23:00:06 +0000 (23:00 +0000)]
daily update
Doug Evans [Tue, 5 Mar 2013 21:15:34 +0000 (21:15 +0000)]
* ada-lang.c (ada_lookup_symbol_list_worker): New function, contents
of old ada_lookup_symbol_list. In !full_search case, don't
search superblocks.
(ada_lookup_symbol_list): Delete arg full_search, all callers
updated. Call ada_lookup_symbol_list_worker.
(ada_iterate_over_symbols): Call ada_lookup_symbol_list_worker.
* ada-lang.h (ada_lookup_symbol_list): Update.
* language.h (language_defn): Update comment for
la_iterate_over_symbols.
* linespec.c (iterate_over_file_blocks): New function.
(iterate_over_all_matching_symtabs): Call it.
(lookup_prefix_sym): Ditto.
(get_current_search_block): New function.
(get_search_block): Delete.
(find_label_symbols): Call get_current_search_block.
(add_matching_symbols_to_info): Call iterate_over_file_blocks.
* symtab.c (iterate_over_symbols): Don't search superblocks.
Yufeng Zhang [Tue, 5 Mar 2013 16:31:44 +0000 (16:31 +0000)]
Add to the AArch64 GAS the missing support for hexadecimal-format
floating-point literal in the FMOV instruction.
gas/
* config/tc-aarch64.c (aarch64_imm_float_p): Rename 'e' to 'pattern';
add comment.
(aarch64_double_precision_fmovable): New function.
(parse_aarch64_imm_float): Add parameter 'dp_p'; call the new
function; handle hexadecimal representation of IEEE754 encoding.
(parse_operands): Update the call to parse_aarch64_imm_float.
gas/testsuite/
* gas/aarch64/diagnostic.s: Add test.
* gas/aarch64/diagnostic.l: Update.
* gas/aarch64/illegal.s: Add test.
* gas/aarch64/illegal.l: Update.
* gas/aarch64/fpmov.s: New file.
* gas/aarch64/fpmov.d: New file.
Corinna Vinschen [Tue, 5 Mar 2013 15:18:10 +0000 (15:18 +0000)]
Fix ChangeLog entry.
Yao Qi [Tue, 5 Mar 2013 14:23:23 +0000 (14:23 +0000)]
gdb/
* cli/cli-decode.c (add_setshow_zuinteger_unlimited_cmd): Change
parameter VAR's type from "unsigned int" to "int".
* command.h (var_zuinteger_unlimited): Update its comments.
(add_setshow_zuinteger_unlimited_cmd): Update the declaration.
Corinna Vinschen [Tue, 5 Mar 2013 13:39:00 +0000 (13:39 +0000)]
* NEWS: Mention new target x86_64-*-cygwin*.
Corinna Vinschen [Tue, 5 Mar 2013 13:37:11 +0000 (13:37 +0000)]
* configure.host: Add x86_64-*-cygwin* as host.
* configure.tgt: Add x86_64-*-cygwin* as target.
* config/i386/cygwin64.mh: New file.
* gdbserver/configure.srv: Add x86_64-*-cygwin* as target.
Corinna Vinschen [Tue, 5 Mar 2013 11:54:29 +0000 (11:54 +0000)]
* configure.host: Add x86_64-*-cygwin* as valid host.
* configure.tgt: Add x86_64-*-cygwin* as valid target.
* emultempl/pep.em: Handle different requirements for Cygwin in terms
of start addresses for executables and DLLs, based on memory model in
http://cygwin.com/ml/cygwin-developers/2013-02/msg00027.html
Corinna Vinschen [Tue, 5 Mar 2013 11:52:12 +0000 (11:52 +0000)]
* configure.in: Build DLL tools on x86_64-*-cygwin* as well.
* configure: Regenerate.
Corinna Vinschen [Tue, 5 Mar 2013 11:47:01 +0000 (11:47 +0000)]
* config.bfd: Add x86_64-*-cygwin to list of supported targets.
Alan Modra [Tue, 5 Mar 2013 02:55:27 +0000 (02:55 +0000)]
PR ld/15222
ld/
* ldlang.c (lang_size_sections_1): When given an lma_region align
LMA as per VMA only if lma_region is the same as region.
ld/testsuite/
* ld-scripts/rgn-at6.s, * ld-scripts/rgn-at6.t, * ld-scripts/rgn-at6.d,
* ld-scripts/rgn-at7.t, * ld-scripts/rgn-at7.d: New tests.
gdbadmin [Tue, 5 Mar 2013 00:00:03 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Mon, 4 Mar 2013 23:00:06 +0000 (23:00 +0000)]
daily update
Jan Kratochvil [Mon, 4 Mar 2013 19:38:02 +0000 (19:38 +0000)]
gdb/
* linespec.c (decode_line_2): Fix duplicate request off by two message.
Jan Kratochvil [Mon, 4 Mar 2013 19:30:28 +0000 (19:30 +0000)]
gdb/
* linespec.c (struct linespec_canonical_name): New.
(struct linespec_state): Change canonical_names type to it.
(add_sal_to_sals): Change variable canonical_name to canonical. Change
xrealloc element size. Initialize the different CANONICAL fields.
(canonical_to_fullform): New.
(filter_results): Use it. Add variables canonical, fullform and
cleanup.
(struct decode_line_2_item, decode_line_2_compare_items): New.
(decode_line_2): Remove variables iter and item_names, add variables
items and items_count. Modify the code for these new variables.
gdb/testsuite/
* gdb.linespec/base/one/thefile.cc (twodup): New.
(m): Call it.
* gdb.linespec/base/two/thefile.cc (dupname): New.
(n): Call it.
* gdb.linespec/break-ask.exp: New file.
* gdb.linespec/lspec.cc (body_elsewhere): New comment marker.
Corinna Vinschen [Mon, 4 Mar 2013 15:09:46 +0000 (15:09 +0000)]
* coff-pe-read.c (read_pe_exported_syms): Don't return without
calling do_cleanup.
Nick Clifton [Mon, 4 Mar 2013 14:22:25 +0000 (14:22 +0000)]
* elfcomm.c (error): Flush stdout before emitting the error
message.
(warn): Likewise.
Hui Zhu [Mon, 4 Mar 2013 13:52:46 +0000 (13:52 +0000)]
2013-03-04 Luis Machado <lgustavo@codesourcery.com>
* tracepoint.c (build_traceframe_info): Add code for byte order.
Alan Modra [Mon, 4 Mar 2013 12:12:11 +0000 (12:12 +0000)]
* elf32-ppc.c (ppc_elf_relocate_section <R_PPC_PLTREL24>): Adjust
non-zero addends when relocatable, rather than addends >= 32768.
Always zero "addend" before applying relocation.
Nick Clifton [Mon, 4 Mar 2013 09:21:43 +0000 (09:21 +0000)]
* archive64.c (bfd_elf64_archive_write_armap): Fix calculation of
file pointer offsets for thin archives.
Alan Modra [Mon, 4 Mar 2013 00:48:01 +0000 (00:48 +0000)]
* testsuite/Makefile.am (final_layout_script.lds): Add .sbss.
* testsuite/Makefile.in: Regenerate.
gdbadmin [Mon, 4 Mar 2013 00:00:03 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Sun, 3 Mar 2013 23:00:07 +0000 (23:00 +0000)]
daily update
gdbadmin [Sun, 3 Mar 2013 00:00:33 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Sat, 2 Mar 2013 23:00:06 +0000 (23:00 +0000)]
daily update
Kevin Buettner [Sat, 2 Mar 2013 18:34:13 +0000 (18:34 +0000)]
Revise ChangeLog comment for recently committed change.
Kevin Buettner [Sat, 2 Mar 2013 18:26:30 +0000 (18:26 +0000)]
* v850-tdep.c: (v850e2_register_name): (v850e2_reg_names):
Revise system register names to match current V850E2M
architecture specifications.
H.J. Lu [Sat, 2 Mar 2013 01:57:48 +0000 (01:57 +0000)]
Add RegRex64 to riz
* i386-reg.tbl (riz): Add RegRex64.
* i386-tbl.h: Regenerated.
H.J. Lu [Sat, 2 Mar 2013 01:55:20 +0000 (01:55 +0000)]
Add tests for invalid addresses and riz/eiz
* gas/i386/inval.s: Add tests for invalid addresses and eiz.
* gas/i386/x86-64-inval.s: Add tests for invalid addresses and
riz/eiz.
* gas/i386/inval.l: Updated.
* gas/i386/x86-64-inval.l: Likewise.
Jiong Wang [Sat, 2 Mar 2013 01:34:40 +0000 (01:34 +0000)]
gdb/
* tilegx-tdep.c (tilegx_analyze_prologue): Limit bundle reading
to END_ADDR.
(tilegx_skip_prologue): Limit prologue analysis to section end
gdbadmin [Sat, 2 Mar 2013 00:00:03 +0000 (00:00 +0000)]
*** empty log message ***
Cary Coutant [Fri, 1 Mar 2013 23:40:38 +0000 (23:40 +0000)]
Restore patch lost in last merge from GCC.
include/
* dwarf2.h (enum dwarf_sect): New enum type.
Cary Coutant [Fri, 1 Mar 2013 23:05:27 +0000 (23:05 +0000)]
Add dwp support for v2 DWARF package file format.
gold/
* dwarf_reader.cc (Dwarf_info_reader::visit_type_unit): Add
tu_length parameter. Adjust all callers.
* dwarf_reader.h (Dwarf_info_reader::visit_type_unit): Likewise.
* dwp.cc: Include dwarf.h.
(Section_bounds): New struct type.
(Unit_set): New struct type.
(Dwo_file::Dwo_file): Initialize new data member.
(Dwo_file::read_compunit_index, Dwo_file::read_typeunit_index):
Combine and rename to...
(Dwo_file::read_unit_index): ...this.
(Dwo_file::sized_read_compunit_index)
(Dwo_file::sized_read_typeunit_index): Combine and rename to...
(Dwo_file::sized_read_unit_index): ...this.
(Dwo_file::copy_section): Remove section_name, is_str_offsets
parameters; add section_id parameter.
(Dwo_file::add_cu_set, Dwo_file::add_tu_set): Combine and rename to...
(Dwo_file::add_unit_set): ...this.
(Dwo_file::shndx_map_): Remove.
(Dwo_file::sect_offsets_): New data member.
(Dwp_output_file::Dwp_output_file): Initialize new data members.
(Dwp_output_file::add_section): Rename to...
(Dwp_output_file::add_contribution): ...this.
(Dwp_output_file::add_cu_set): Combine parameters into a struct.
(Dwp_output_file::add_tu_set): Likewise.
(Dwp_output_file::Contribution): New type.
(Dwp_output_file::Section::contributions): New data member.
(Dwp_output_file::Cu_or_tu_set): Remove.
(Dwp_output_file::Section::Section): New ctor.
(Dwp_output_file::Dwp_index::Shndx_pool): Remove.
(Dwp_output_file::Dwp_index::Section_table): New type.
(Dwp_output_file::Dwp_index::Dwp_index): Initialize new data members.
(Dwp_output_file::Dwp_index::enter_set): Change type of "set"
parameter.
(Dwp_output_file::Dwp_index::shndx_pool): Remove.
(Dwp_output_file::Dwp_index::shndx_pool_end): Remove.
(Dwp_output_file::Dwp_index::section_table): New member function.
(Dwp_output_file::Dwp_index::section_table_end): New member function.
(Dwp_output_file::Dwp_index::shndx_pool_size): Remove.
(Dwp_output_file::Dwp_index::section_table_rows): New member function.
(Dwp_output_file::Dwp_index::section_table_cols): New member function.
(Dwp_output_file::Dwp_index::shndx_pool_): Remove.
(Dwp_output_file::Dwp_index::section_table_): New data member.
(Dwp_output_file::Dwp_index::section_mask_): New data member.
(Dwp_output_file::add_output_section): New member function.
(Dwp_output_file::write_new_section): New member function.
(Dwp_output_file::write_contributions): New member function.
(Dwp_output_file::section_id_map_): New data member.
(class Dwo_id_info_reader): Remove.
(class Unit_reader): New class.
(get_dwarf_section_name): New function.
(Dwo_file::read_executable): Adjust initializations of class data.
(Dwo_file::read): Add support for v2 package file format.
(Dwo_file::read_unit_index): Likewise.
(Dwo_file::sized_read_unit_index): Likewise.
(Dwo_file::copy_section): Likewise.
(Dwo_file::add_unit_set): Likewise.
(Dwp_output_file::add_output_section): Likewise.
(Dwp_output_file::add_contribution): Likewise.
(Dwp_output_file::Dwp_index::find_or_add): Use row index to check
for empty slot.
(Dwp_output_file::Dwp_index::enter_set): Add support for v2 package
file format.
(Dwp_output_file::Dwp_index::grow): Use row index to check for empty
slot.
(Dwp_output_file::initialize): Remove unused function.
(Dwp_output_file::finalize): Add support for v2 package file format.
(Dwp_output_file::write_index): Likewise.
* gdb-index.cc (Gdb_index_info_reader::visit_type_unit): Adjust
function prototype.
DJ Delorie [Fri, 1 Mar 2013 23:00:28 +0000 (23:00 +0000)]
merge from gcc
Alan Modra [Fri, 1 Mar 2013 23:00:06 +0000 (23:00 +0000)]
daily update
Cary Coutant [Fri, 1 Mar 2013 22:53:02 +0000 (22:53 +0000)]
gold/
* dwarf_reader.cc (Dwarf_info_reader::check_buffer): Move
function into class definition in header file.
(Dwarf_info_reader::warn_corrupt_debug_section): New function.
* dwarf_reader.h (Dwarf_info_reader::warn_corrupt_debug_section):
New function.
(Dwarf_info_reader::check_buffer): Move here from .cc file.
Cary Coutant [Fri, 1 Mar 2013 22:45:56 +0000 (22:45 +0000)]
elfcpp/
* dwarf.h (enum DW_LANG): Adjust spacing for consistency.
(enum DW_SECT): New enum type.
Jan Kratochvil [Fri, 1 Mar 2013 21:18:21 +0000 (21:18 +0000)]
gdb/
* dwarf2loc.c (call_site_find_chain_1): New variable save_callee_pc,
use it.
Cary Coutant [Fri, 1 Mar 2013 19:24:07 +0000 (19:24 +0000)]
binutils/
* dwarf.c (cu_tu_indexes_read, shndx_pool, shndx_pool_size)
(shndx_pool_used): Move to top of file.
(struct cu_tu_set): New type.
(cu_count, tu_count, cu_sets, tu_sets): New file scope variables.
(fetch_indexed_string): Add "this_set" parameter. Update all callers.
(find_cu_tu_set_v2): New function.
(read_and_display_attr_value): Add "this_set" parameter.
(read_and_display_attr): Likewise.
(process_debug_info): Track base offsets for DWARF package files.
(load_debug_info): Call load_cu_tu_indexes.
(get_DW_SECT_short_name): New function.
(process_cu_tu_index): Add support for version 2 DWARF package files.
Cary Coutant [Fri, 1 Mar 2013 19:23:33 +0000 (19:23 +0000)]
include/
* dwarf2.h (enum dwarf_sect): New enum type.
Pedro Alves [Fri, 1 Mar 2013 15:38:27 +0000 (15:38 +0000)]
Use gdb_byte for bytes from the program being debugged.
gdb_byte should be used for bytes from the program being debugged. We
have many places using char or unsigned char instead all over the
existing ports, and more ends up added over time due to copy/paste as
new code is based on old code.
I've greped the tree for "char buf[", and fixed all I found.
Tested by building with --enable-targets=all.
2013-03-01 Pedro Alves <palves@redhat.com>
Use gdb_byte for bytes from the program being debugged.
* arm-tdep.c (arm_store_return_value, arm_get_longjmp_target):
Change type of local 'buf' to gdb_byte.
* avr-tdep.c (avr_frame_prev_register, avr_push_dummy_call): Likewise.
* bfin-tdep.c (bfin_push_dummy_call): Likewise.
* cris-tdep.c (cris_sigcontext_addr)
(cris_sigtramp_frame_unwind_cache): Likewise.
* frv-linux-tdep.c (frv_linux_pc_in_sigtramp)
(frv_linux_sigcontext_reg_addr, frv_linux_sigtramp_frame_cache):
Likewise.
* frv-tdep.c (frv_pseudo_register_write, frv_analyze_prologue): Likewise.
* hppa-hpux-tdep.c (hppa32_hpux_find_global_pointer)
(hppa32_hpux_search_dummy_call_sequence)
(hppa_hpux_supply_save_state): Likewise.
* hppa-linux-tdep.c (insns_match_pattern)
(hppa_linux_find_global_pointer): Likewise.
* hppa-tdep.c (hppa_in_function_epilogue_p)
(skip_prologue_hard_way, hppa_frame_cache): Likewise.
* i386-nto-tdep.c (i386nto_sigcontext_addr): Likewise.
* i386fbsd-tdep.c (i386fbsd_supply_uthread)
(i386fbsd_collect_uthread): Likewise.
* ia64-hpux-tdep.c (ia64_hpux_push_dummy_code): Likewise.
* ia64-linux-tdep.c (ia64_linux_sigcontext_register_address): Likewise.
* ia64-tdep.c (examine_prologue, ia64_frame_cache)
(ia64_frame_prev_register, ia64_sigtramp_frame_cache)
(ia64_sigtramp_frame_prev_register, ia64_access_reg)
(ia64_access_rse_reg, ia64_libunwind_frame_this_id)
(ia64_libunwind_frame_prev_register)
(ia64_libunwind_sigtramp_frame_this_id)
(ia64_find_global_pointer_from_dynamic_section)
(find_extant_func_descr, find_func_descr, ia64_dummy_id)
(ia64_unwind_pc): Likewise.
* iq2000-tdep.c (iq2000_store_return_value): Likewise.
* m68hc11-tdep.c (m68hc11_push_dummy_call)
(m68hc11_extract_return_value): Likewise.
* m68klinux-nat.c (fetch_register, store_register): Likewise.
* mep-tdep.c (mep_pseudo_cr32_read, mep_pseudo_cr32_write)
(mep_get_insn, mep_push_dummy_call): Likewise.
* mips-linux-tdep.c (mips_linux_get_longjmp_target)
(mips_linux_in_dynsym_stub): Likewise.
* mn10300-tdep.c (mep_pseudo_cr32_write): Likewise.
* ppc-linux-nat.c (fetch_register, store_register): Likewise.
* regcache.c (dump_endian_bytes): Change type of parameter 'buf'
to gdb_byte.
* remote-mips.c (mips_set_register): Likewise.
* remote-sim.c (gdbsim_fetch_register): Likewise.
* score-tdep.c (score7_fetch_inst): Change type of parameter
'memblock' and local 'buf' to gdb_byte.
(score7_malloc_and_get_memblock): Change return type to gdb_byte.
Change type of local 'buf' to gdb_byte. Adjust.
(score7_adjust_memblock_ptr): Change type of parameter 'memblock'
to gdb_byte**.
(score7_analyze_prologue): Change type of 'memblock' and
'memblock_ptr' locals to gdb_byte*.
* sh64-tdep.c (sh64_extract_return_value)
(sh64_store_return_value): Change type of local 'buf' to gdb_byte.
* solib-darwin.c (darwin_current_sos, darwin_read_exec_load_addr):
* solib-pa64.c (pa64_solib_create_inferior_hook)
(pa64_open_symbol_file_object): Remove local 'buf'.
* solib-som.c (som_solib_create_inferior_hook, link_map_start)
(som_open_symbol_file_object): Likewise.
* solib-spu.c (spu_current_sos): Likewise.
* spu-linux-nat.c (spu_fetch_inferior_registers): Likewise.
* spu-multiarch.c (parse_spufs_run, spu_fetch_registers)
(spu_store_registers): Likewise.
* target.c (debug_print_register): Likewise.
* tic6x-tdep.c (tic6x_get_longjmp_target): Likewise.
* xstormy16-tdep.c (xstormy16_store_return_value)
(xstormy16_push_dummy_call, xstormy16_resolve_jmp_table_entry)
(xstormy16_find_jmp_table_entry): Likewise.
Jiong Wang [Fri, 1 Mar 2013 11:02:23 +0000 (11:02 +0000)]
Revise the commit date of my ChangeLog entry.
Jiong Wang [Fri, 1 Mar 2013 10:45:28 +0000 (10:45 +0000)]
Implement get_longjmp_target for tilegx.
gdb/
* tilegx-tdep.c (tilegx_get_longjmp_target): New function.
(tilegx_gdbarch_init): Install it.
Jiong Wang [Fri, 1 Mar 2013 06:42:18 +0000 (06:42 +0000)]
Add missing file from the previous commit.
(forget to "cvs add" it)
gdbadmin [Fri, 1 Mar 2013 00:00:33 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Thu, 28 Feb 2013 23:00:07 +0000 (23:00 +0000)]
daily update
H.J. Lu [Thu, 28 Feb 2013 21:08:04 +0000 (21:08 +0000)]
Replace have_hle with hle_prefix
* config/tc-i386.c (_i386_insn): Replace have_hle with hle_prefix.
(check_hle): Updated.
(md_assemble): Likewise.
(parse_insn): Likewise.
H.J. Lu [Thu, 28 Feb 2013 20:50:19 +0000 (20:50 +0000)]
Optimize REP prefix check
gas/
* config/tc-i386.c (_i386_insn): Add rep_prefix.
(md_assemble): Check if REP prefix is OK.
(parse_insn): Remove expecting_string_instruction. Set
i.rep_prefix.
gas/testsuite/
* gas/i386/i386.exp: Run inval-rep and x86-64-inval-rep.
* gas/i386/inval-rep.l: New file.
* gas/i386/inval-rep.s: Likewise.
* gas/i386/x86-64-inval-rep.l: Likewise.
* gas/i386/x86-64-inval-rep.s: Likewise.
Tom Tromey [Thu, 28 Feb 2013 20:14:08 +0000 (20:14 +0000)]
* python/py-arch.c (archpy_disassemble): Use PyInt_Check and
PyLong_Check.
Doug Evans [Thu, 28 Feb 2013 20:01:10 +0000 (20:01 +0000)]
* python/py-finishbreakpoint.c (bpfinishpy_init): gcc -Wall lint.
* python/python.c (gdbpy_find_pc_line): Ditto.
Tom Tromey [Thu, 28 Feb 2013 19:28:25 +0000 (19:28 +0000)]
* contrib/excheck.py: New file.
* contrib/exsummary.py: New file.
* contrib/gcc-with-excheck: New file.
Tom Tromey [Thu, 28 Feb 2013 19:25:42 +0000 (19:25 +0000)]
* python/python.c (gdbpy_print_stack): Call begin_line and
fprintf_filtered inside TRY_CATCH.
Tom Tromey [Thu, 28 Feb 2013 19:23:57 +0000 (19:23 +0000)]
* python/python.c (gdbpy_find_pc_line): Call find_pc_line
inside TRY_CATCH.
Tom Tromey [Thu, 28 Feb 2013 19:21:44 +0000 (19:21 +0000)]
* py-finishbreakpoint.c (bpfinishpy_init): Reorganize to call
frame_object_to_frame_info inside TRY_CATCH.
Yufeng Zhang [Thu, 28 Feb 2013 19:18:40 +0000 (19:18 +0000)]
include/opcode/
* aarch64.h (AARCH64_FEATURE_CRC): New macro.
opcodes/
* aarch64-tbl.h (QL_I3SAMEW, QL_I3WWX): New macros.
(aarch64_feature_crc): New static.
(CRC): New macro.
(aarch64_opcode_table): Add entries for the crc32b, crc32h, crc32w,
crc32x, crc32cb, crc32ch, crc32cw and crc32cx instructions.
* aarch64-asm-2.c: Re-generate.
* aarch64-dis-2.c: Ditto.
* aarch64-opc-2.c: Ditto.
gas/
* config/tc-aarch64.c (aarch64_features): Add the 'crc' option.
gas/testsuite/
* gas/aarch64/crc32.s: New test.
* gas/aarch64/crc32.d: Ditto.
Tom Tromey [Thu, 28 Feb 2013 19:01:54 +0000 (19:01 +0000)]
* py-block.c (gdbpy_block_for_pc): Call block_for_pc inside
TRY_CATCH.
Tom Tromey [Thu, 28 Feb 2013 19:00:31 +0000 (19:00 +0000)]
* objfiles.h (ALL_PSPACE_OBJFILES): Remove trailing backlash.
Yufeng Zhang [Thu, 28 Feb 2013 18:51:05 +0000 (18:51 +0000)]
gas/
* config/tc-aarch64.c (parse_sys_reg): Allow the full range of CRn
for system registers.
gas/testsuite/
* gas/aarch64/illegal.l: Delete the error message for
msr S3_1_C13_C15_1,x7.
* gas/aarch64/sysreg.s: Add new tests.
* gas/aarch64/sysreg.d: Update.
Tom Tromey [Thu, 28 Feb 2013 16:51:19 +0000 (16:51 +0000)]
* configure.ac: Invoke AC_SYS_LARGEFILE.
* configure, config.in: Rebuild.
Julian Brown [Thu, 28 Feb 2013 10:31:34 +0000 (10:31 +0000)]
bfd/
* elf32-arm.c (elf32_arm_size_dynamic_sections): Don't call
elf32_arm_allocate_dynrelocs for source reloc for non-dynamic link.
ld/testsuite/
* ld-arm/tls-local-static.s: New test.
* ld-arm/tls-local-static.d: New.
* ld-arm/arm-elf.exp (tls-local-static): Add test.
Corinna Vinschen [Thu, 28 Feb 2013 09:09:02 +0000 (09:09 +0000)]
* win32-low.c: Throughout, fix format strings and casts of
printf-like functions to avoid type related warnings on all
platforms.
(get_child_debug_event): Print dwDebugEventCode as hex since
that's how it's usually documented.
Yao Qi [Thu, 28 Feb 2013 01:21:08 +0000 (01:21 +0000)]
gdb/gdbserver/
* tracepoint.c (cmd_qtbuffer): Call phex_nz instead of
pulongest.
Yao Qi [Thu, 28 Feb 2013 00:42:20 +0000 (00:42 +0000)]
gdb/gdbserver/
* gdb.trace/report.exp: Move some code to ...
(use_collected_data): New.
(top level): Call use_collected_data once on the live target.
Save at file of the current trace session, load it with target
tfile, and call use_collected_data again.
gdbadmin [Thu, 28 Feb 2013 00:00:34 +0000 (00:00 +0000)]
*** empty log message ***
This page took 0.043431 seconds and 4 git commands to generate.