* ui-file.c (set_ui_file_flush): Change flush to flush_ptr.
(set_ui_file_isatty): Change isatty to isatty_ptr.
(set_ui_file_rewind): Change rewind to rewind_ptr.
(set_ui_file_put): Change put to put_ptr.
(set_ui_file_write): Change write to write_ptr.
(set_ui_file_write_async_safe): Change write_async_safe to
write_async_safe_ptr.
(set_ui_file_read): Change read to read_ptr.
(set_ui_file_fputs): Change fputs to fputs_ptr.
(set_ui_file_data): Change delete to delete_ptr.
Alan Modra [Mon, 17 Dec 2012 00:16:49 +0000 (00:16 +0000)]
PR ld/14962
* ldexp.h (struct ldexp_control): Add "assign_name".
* ldexp.c (fold_name <NAME>): Compare and clear assign_name on match.
(exp_fold_tree_1): Remove existing code testing for self assignment.
Instead set and test expld.assign_name.
* ldlang.c (scan_for_self_assignment): Delete.
(print_assignment): Instead set and test expld.assign_name.
Jan Kratochvil [Sun, 16 Dec 2012 19:00:04 +0000 (19:00 +0000)]
gdb/
Code cleanup.
* skip.c (skip_function_command, skip_file_command, skip_info): Remove
unused forward declarations.
(skip_file_command): Make variables symtab and filename targets const.
Use proper 0 vs. NULL constant everywhere.
(skip_function_command): Use proper 0 vs. NULL constant everywhere.
Include empty line after declarations. Use GNU spacing in a comment.
Do not use strlen for end of string check.
(skip_info): Use proper 0 vs. NULL constant everywhere. Add column 5
comments.
(skip_enable_command, skip_disable_command, skip_delete_command)
(add_skiplist_entry): Use proper 0 vs. NULL constant everywhere.
(function_pc_is_marked_for_skip): Make variable filename target const.
Use proper 0 vs. NULL constant everywhere. Fix GNU non-compliant
comment formatting.
(skip_re_set): Add empty line after function comment. Use proper 0 vs.
NULL constant everywhere. Include empty line after declarations. Make
variable symtab target const. Do not use strlen for end of string
check.
gdb/doc/
* gdbint.texinfo (Coding Standards) (C Usage): New rule for 0 vs. NULL.
Jan Kratochvil [Sun, 16 Dec 2012 18:57:16 +0000 (18:57 +0000)]
gdb/
Code cleanup.
* breakpoint.c (clear_command): Remove variable sal_name_len and its
initialization, remove it from the compare_filenames_for_search call.
* dwarf2read.c (dw2_map_symtabs_matching_filename): Remove variable
name_len and its initialization, remove it from the
compare_filenames_for_search calls.
* psymtab.c (partial_map_symtabs_matching_filename): Likewise.
* symtab.c (compare_filenames_for_search): Remove the search_len
parameter, update the function comment, new variable search_len
initialized from SEARCH_NAME.
(iterate_over_some_symtabs): Remove variable name_len and its
initialization, remove it from the compare_filenames_for_search calls.
* symtab.h (compare_filenames_for_search): Remove the search_len
parameter,
Joel Brobecker [Sat, 15 Dec 2012 14:29:31 +0000 (14:29 +0000)]
change ravenscar_sparc prefixes into sparc_ravenscar...
... following the file renaming in the previous commit.
gdb/ChangeLog:
* sparc-ravenscar-thread.h: SPARC_RAVENSCAR_THREAD_H renames
RAVENSCAR_SPARC_THREAD_H.
* sparc-ravenscar-thread.c: Rename all global entities
whose name is uses "ravenscar_sparc" as the prefix to use
"sparc_ravenscar" instead.
Joel Brobecker [Sat, 15 Dec 2012 14:27:13 +0000 (14:27 +0000)]
minor ravenscar-thread cleanup
The use of the ravenscar_open static global is unnecessary.
This patch removes it. It also removes some routines that
were created in association with the management of this global.
gdb/ChangeLog:
* ravenscar-thread.c (ravenscar_is_open): Delete.
(ravenscar_initialize): Move most of the code from here...
(ravenscar_inferior_created): ... to there. Invert logic.
(ravenscar_close): Delete.
(init_ravenscar_thread_ops): Remove setting of
ravenscar_ops.to_close.
Joel Brobecker [Sat, 15 Dec 2012 13:11:18 +0000 (13:11 +0000)]
Move init_entry_point_info to symfile.c and make it static.
gdb/ChangeLog:
* objfiles.c (init_entry_point_info): Move function from here...
* symfile.c (init_entry_point_info): ... to there. Make static.
* objfiles.h (objfiles.h): Delete declaration.
Joel Brobecker [Sat, 15 Dec 2012 13:10:50 +0000 (13:10 +0000)]
Fix NULL objfile's section_offsets dereference during symbol load.
gdb/ChangeLog:
* symfile.c (syms_from_objfile_1): Renames syms_from_objfile.
Remove call to init_entry_point_info. Add OBJFILE's
section_offsets and num_sections initialization. Add note
about entry info in the function documentation.
(syms_from_objfile): New function.
* coffread.c (coff_symfile_init): Remove call to
init_entry_point_info.
* machoread.c (macho_symfile_init): Likewise.
* xcoffread.c(xcoff_symfile_init): Likewise.
Thomas Schwinge [Sat, 15 Dec 2012 10:28:17 +0000 (10:28 +0000)]
ld/testsuite/
* ld-elf/elf.exp (stack exec, stack size): Run for any GNU target.
* ld-elf/maxpage3c.d: Run for any x86 GNU target.
* ld-elf/maxpage4.d: Likewise.
* ld-elf/maxpage5.d: Likewise.
* ld-i386/export-class.exp: Likewise.
* remote-notif.c (_initialize_notif): Add new commands
'set debug notification' and 'show debug notification'.
* NEWS: Mention these new commands.
gdb/doc/
2012-12-15 Yao Qi <[email protected]>
* remote.c (getpkt_or_notif_sane): Add one more argument in
its declaration.
(getpkt_or_notif_sane_1): Add one more argument.
(getpkt_sane): Update caller.
(getpkt_or_notif_sane): Likewise. Update call
togetpkt_or_notif_sane_1.
(remote_wait_ns): Update caller.
* breakpoint.c (print_one_breakpoint_location): Display the
state of 'installed' of each non-pending location of a tracepoint
in both CLI and MI.
(download_tracepoint_locations): Notify 'breakpoint-modified'
observer if any tracepoint location is downloaded.
* tracepoint.c (start_tracing): Likewise.
(merge_uploaded_tracepoints): Record all modified
tracepoints and notify 'breakpoint-modified' observer for them.
* gdb.texinfo (Listing Tracepoints): New item and example about
'installed on target' output.
Add more in the example about 'installed on target'.
(GDB/MI Breakpoint Commands): Doc about 'installed field.
* gdb.trace/mi-tracepoint-changed.exp (test_pending_resolved): Check
'installed' field in '=breakpoint-modified'.
(test_reconnect): Check 'installed' field in
'=breakpoint-modified' and '=breakpoint-created'.
Pierre Muller [Fri, 14 Dec 2012 23:27:13 +0000 (23:27 +0000)]
* solib-target.c (solib_target_current_sos): Remove 'const'
qualifier from type of library_document local variable to be
able to free it and avoid a memory leak.
Use cleanup chain to avoid leak even if exceptino is generated.
Tom Tromey [Fri, 14 Dec 2012 21:19:11 +0000 (21:19 +0000)]
PR c++/8888:
* symtab.c (lookup_symbol_aux): If constructor is found, consider
returning the type instead.
* c-exp.y (classify_name): Check STRUCT_DOMAIN if a constructor is
found.
testsuite
* gdb.cp/member-name.exp: New file.
* gdb.cp/member-name.cc: New file.
* ld-elf/indirect.exp: Disable if -shared is not supported.
* lib/ld-lib.exp (check_shared_lib_support): Add aarch64*-*-elf and
arm*-*-elf to the exclude list.
* coff-pe-read.c: Include coff/internal.h.
(read_pe_exported_syms): Use SCNNMLEN instead of hardcoded 8.
Null terminate buffer explicitly instead of memset the whole
buffer.
Pierre Muller [Thu, 13 Dec 2012 10:44:45 +0000 (10:44 +0000)]
* coff-pe-read.h (pe_text_section_offset): Declare new function.
* coff-pe-read.c (debug_coff_pe_read): New static variable.
(struct read_pe_section_data): Add section_name field.
(IMAGE_SCN_CNT_CODE): New macro, if not already defined.
(IMAGE_SCN_CNT_INITIALIZED_DATA): Ditto.
(IMAGE_SCN_CNT_UNINITIALIZED_DATA): Ditto.
(get_pe_section_index): New function.
(struct pe_sections_info): New type.
(get_section_vmas): Use new struct pe_sections_info.
(add_pe_exported_sym): Handle unnamed exported function.
(add_pe_forwarded_sym): New function.
(read_pe_truncate_name): Truncate at last dot.
(pe_as16): New function.
(read_pe_exported_syms): Use ordinal of function to
retrieve correct RVA address of function and handle
forwarded symbol.
(pe_text_section_offset): New function.
(show_debug_coff_pe_read): New function.
(_initialize_coff_pe_read): New function adding
'set/show debug coff_pe_read' commands.
* windows-tdep.c (windows_xfer_shared_library): Use
pe_text_section_offset function instead of possibly wrong
0x1000 constant for .text sextion offset.
gdb/testsuite:
* gdb.mi/mi-catch-load-so.c: New. Clone of the
catch load test library source file.
* gdb.mi/mi-catch-load.c: New. Clone of the catch
load test source file.
* gdb.mi/mi-catch-load.exp: New. Test file for
basic MI -catch-load and -catch-unload tests.
* Makefile.in (SUBDIR_MI_OBS): Add mi-cmd-catch.o.
(SUBDIR_MI_SRCS): Add mi/mi-cmd-catch.c.
* breakpoint.c (add_solib_catchpoint): New function that
can be used by both CLI and MI, factored out from
catch_load_or_unload.
(catch_load_or_unload): Strip it down and make it use the
new add_solib_catchpoint.
* breakpoint.h (add_solib_catchpoint): Declare it.
* mi/mi-cmd-break.h: New file.
* mi/mi-cmd-break.c: Include mi-cmd-break.h.
(setup_breakpoint_reporting): New function used for both
catchpoints and breakpoints.
(mi_cmd_break_insert): Use setup_breakpoint_reporting.
* mi/mi-cmd-catch.c: New file.
* mi/mi-cmds.c (mi_cmds): Add the handlers for -catch-load
and -catch-unload.
* mi/mi-cmds.h: Declare the handlers for -catch-load and
-catch-unload.
Paul Koning [Wed, 12 Dec 2012 16:47:30 +0000 (16:47 +0000)]
Add support for Python 3.
* NEWS: Mention Python 3 support.
* varobj.c (value_get_print_value): Use
python_string_to_target_string.
* python/py-block.c: Use PyVarObject_HEAD_INIT in initialization
of type objects.
* python/py-breakpoint.c: Ditto.
* python/py-cmd.c: Ditto.
* python/py-event.c: Ditto.
* python/py-event.h: Ditto.
* python/py-evtregistry.c: Ditto.
* python/py-finishbreakpoint.c: Ditto.
* python/py-frame.c: Ditto.
* python/py-function.c: Ditto.
* python/py-infthread.c: Ditto.
* python/py-lazy-string.c: Ditto.
* python/py-progspace.c: Ditto.
* /python/py-symbol.c: Ditto.
* python/py-evts.c: (gdbpy_initialize_py_events): Add module
initialization for Python 3.
* python/py-inferior.c: Use PyVarObject_HEAD_INIT in initialization
of type objects.
(infpy_read_memory): Return memoryview object if Python 3.
(infpy_write_memory): Use "s*" operand parsing code for Python 3.
(infpy_search_memory): Ditto.
(get_buffer): New function for Python 3.
* python/py-objfile.c: Use PyVarObject_HEAD_INIT in initialization
of type objects.
(objfpy_dealloc): Use Py_TYPE to call tp_free.
* python/py-param.c: Use PyVarObject_HEAD_INIT in initialization
of type objects.
(get_attr): Use PyUnicode_CompareWithASCIIString if Python 3.
(set_attr): Ditto.
* python/py-prettyprint.c (print_string_repr): use PyBytes methods
instead of PyString methods if Python 3.
(print_children): Skip push_dummy_python_frame call if Python 3.
* python/py-symtab.c: Use PyVarObject_HEAD_INIT in initialization
of type objects.
(salpy_dealloc): Use Py_TYPE to call tp_free.
* python/py-type.c: Use PyVarObject_HEAD_INIT in initialization
of type objects.
(field_dealloc): Use Py_TYPE to call tp_free.
(typy_dealloc): Ditto.
(type_object_as_number): Adjust struct initializations for
differences in layout for Python 2 vs. Python 3.
* python/py-utils.c (python_string_to_unicode): Omit non-Unicode
string case for Python 3.
(unicode_to_encoded_python_string): Shorten code (no functional
change).
(python_string_to_target_python_string): Comment that in Python 3
returned value is a Python "bytes" type.
(gdbpy_is_string): Omit non-Unicode string check in Python 3.
(gdb_py_object_from_longest): Omit non-long integer case in Python
3.
(gdb_py_object_from_ulongest): Ditto.
* python/py-value.c: Use PyVarObject_HEAD_INIT in initialization
of type objects.
(valpy_dealloc): Use Py_TYPE to call tp_free.
(valpy_int): Omit function if Python 3.
(convert_value_from_python): Use "%S" format (Python object as a
string) if Python 3.
(value_object_as_number): Adjust struct initializations for
differences in layout for Python 2 vs. Python 3.
* python/python-config.py: Adjust syntax for Python 3
compatibility.
Include "sys.abiflags" string as part of python library name, if
that attribute exists (Python 3).
* python/python-internal.h (IS_PY3): Define if Python 3.
(Py_TPFLAGS_HAVE_ITER, Py_TPFLAGS_CHECKTYPES): Define with
placeholder value if Python 3.
(PyInt_Check, PyInt_FromLong, PyInt_AsLong, PyString_FromString,
PyString_Decode, PyString_FromFormat, PyString_Check): Define as
analogous Python 3 API function if Python 3.
(PyVarObject_HEAD_INIT): Define if not already defined.
(Py_TYPE): Ditto.
* python/python.c (eval_python_command): Omit Py_FlushLine call if
Python 3.
Check return values of all Python API calls for error.
Supply dummy "python" and "python-interactive" commands if Python
initialization failed.
(_initialize_python): Convert argc to wchar_t** if Python 3.
Add module initialization for Python 3.
(finish_python_initialization): Pass wchar_t * argument to
PySys_SetPath if Python 3.
* python/lib/gdb/__init__.py: Define "reload" if Python 3.
(_GdbFile): New class for common output file behavior.
(GdbOutFile): Subclass from _GdbFile.
(GdbOutputErrorFile): Ditto.
(auto_load_packages): Adjust syntax for Python 3 compatibility.
* python/lib/gdb/printing.py: Define basestr and int if Python 3.
* python/lib/gdb/prompt.py: Use sorted() function rather than
sort() method.
* python/lib/gdb/command/explore.py: Define raw_input if Python 3.
Adjust syntax for Python 3 compatibility.
* python/lib/gdb/command/pretty_printers.py: Use sorted() function
rather than sort() method.
Adjust syntax for Python 3 compatibility.
* python/lib/gdb/command/type_printers.py: Ditto.
* doc/gdb.texinfo (Inferior.read_memory): Mention that the return
value is a memoryview object if Python 3.
Alan Modra [Wed, 12 Dec 2012 08:09:41 +0000 (08:09 +0000)]
* powerpc.cc (class Track_tls): New.
(class Relocate, class Scan): Inherit Track_tls.
(Target_powerpc::Scan::local, global): Track tls optimization
and avoid creating plt entry for __tls_get_addr if all uses
are optimized away.
(Target_powerpc::Relocate::relocate): Update to use Track_tls.