diff options
author | Pedro Alves <palves@redhat.com> | 2015-02-09 14:59:08 +0000 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2015-02-27 17:26:16 +0000 |
commit | 56000a9801956afa7622249f114da778afc8887f (patch) | |
tree | cde7dfd0a133e8dae0f38d0cec5f7599869b260a /gdb | |
parent | bcabf4207e7ba20f09e15141c6c3241862ac4aee (diff) | |
download | binutils-gdb-56000a9801956afa7622249f114da778afc8887f.tar.gz |
Add extern "C" to declarations of C symbols
These symbols are defined in C code, so in C++ mode we need to use
extern "C" to declare them. As extern "C" can't be used inside a
function's scope, we move the declarations to the global scope at the
same time.
gdb/ChangeLog:
2015-02-27 Pedro Alves <palves@redhat.com>
* cli-out.c (_rl_erase_entire_line): Move declaration out of
cli_mld_erase_entire_line, and make it extern "C".
* common/common-defs.h (EXTERN_C): New.
* completer.c (_rl_completion_prefix_display_length)
(_rl_print_completions_horizontally, QSFUNC): Move declarations
out of gdb_display_match_list_1.
(_rl_qsort_string_compare): Move declaration out of
gdb_display_match_list_1, and make it extern "C".
* defs.h (re_comp): Use EXTERN_C.
* maint.c (_mcleanup): Move declaration out of mcleanup_wrapper,
and make it extern "C".
(monstartup): Move declaration out of maintenance_set_profile_cmd,
and make it extern "C".
(main): Move declaration out of maintenance_set_profile_cmd.
* nat/linux-ptrace.c (linux_ptrace_attach_fail_reason_string): Use
EXTERN_C.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 19 | ||||
-rw-r--r-- | gdb/cli-out.c | 4 | ||||
-rw-r--r-- | gdb/common/common-defs.h | 6 | ||||
-rw-r--r-- | gdb/completer.c | 10 | ||||
-rw-r--r-- | gdb/defs.h | 2 | ||||
-rw-r--r-- | gdb/maint.c | 10 | ||||
-rw-r--r-- | gdb/nat/linux-ptrace.c | 2 |
7 files changed, 40 insertions, 13 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 19ecc019b37..aa4a614a3d8 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,24 @@ 2015-02-27 Pedro Alves <palves@redhat.com> + * cli-out.c (_rl_erase_entire_line): Move declaration out of + cli_mld_erase_entire_line, and make it extern "C". + * common/common-defs.h (EXTERN_C): New. + * completer.c (_rl_completion_prefix_display_length) + (_rl_print_completions_horizontally, QSFUNC): Move declarations + out of gdb_display_match_list_1. + (_rl_qsort_string_compare): Move declaration out of + gdb_display_match_list_1, and make it extern "C". + * defs.h (re_comp): Use EXTERN_C. + * maint.c (_mcleanup): Move declaration out of mcleanup_wrapper, + and make it extern "C". + (monstartup): Move declaration out of maintenance_set_profile_cmd, + and make it extern "C". + (main): Move declaration out of maintenance_set_profile_cmd. + * nat/linux-ptrace.c (linux_ptrace_attach_fail_reason_string): Use + EXTERN_C. + +2015-02-27 Pedro Alves <palves@redhat.com> + * python/python.c (GdbMethods): Rename to ... (python_GdbMethods): ... this and make extern. (GdbModuleDef): Rename to ... diff --git a/gdb/cli-out.c b/gdb/cli-out.c index 48f2a04f72e..2a831691546 100644 --- a/gdb/cli-out.c +++ b/gdb/cli-out.c @@ -452,13 +452,13 @@ cli_mld_flush (const struct match_list_displayer *displayer) fflush (rl_outstream); } +EXTERN_C void _rl_erase_entire_line (void); + /* CLI version of displayer.erase_entire_line. */ static void cli_mld_erase_entire_line (const struct match_list_displayer *displayer) { - extern void _rl_erase_entire_line (void); - _rl_erase_entire_line (); } diff --git a/gdb/common/common-defs.h b/gdb/common/common-defs.h index e80d3327052..3020bd882ca 100644 --- a/gdb/common/common-defs.h +++ b/gdb/common/common-defs.h @@ -50,4 +50,10 @@ #include "cleanups.h" #include "common-exceptions.h" +#ifdef __cplusplus +# define EXTERN_C extern "C" +#else +# define EXTERN_C extern +#endif + #endif /* COMMON_DEFS_H */ diff --git a/gdb/completer.c b/gdb/completer.c index add79cc140b..efcb7719d10 100644 --- a/gdb/completer.c +++ b/gdb/completer.c @@ -1548,6 +1548,12 @@ gdb_complete_get_screenwidth (const struct match_list_displayer *displayer) return displayer->width; } +extern int _rl_completion_prefix_display_length; +extern int _rl_print_completions_horizontally; + +EXTERN_C int _rl_qsort_string_compare (const void *, const void *); +typedef int QSFUNC (const void *, const void *); + /* GDB version of readline/complete.c:rl_display_match_list. See gdb_display_match_list for a description of MATCHES, LEN, MAX. Returns non-zero if all matches are displayed. */ @@ -1560,10 +1566,6 @@ gdb_display_match_list_1 (char **matches, int len, int max, int i, j, k, l, common_length, sind; char *temp, *t; int page_completions = displayer->height != INT_MAX && pagination_enabled; - extern int _rl_completion_prefix_display_length; - extern int _rl_qsort_string_compare (const void *, const void *); - extern int _rl_print_completions_horizontally; - typedef int QSFUNC (const void *, const void *); /* Find the length of the prefix common to all items: length as displayed characters (common_length) and as a byte index into the matches (sind) */ diff --git a/gdb/defs.h b/gdb/defs.h index a1cd45f91f4..72512f6a6e4 100644 --- a/gdb/defs.h +++ b/gdb/defs.h @@ -249,7 +249,7 @@ extern int annotation_level; /* in stack.c */ "const char *" in unistd.h, so we can't declare the argument as "char *". */ -extern char *re_comp (const char *); +EXTERN_C char *re_comp (const char *); /* From symfile.c */ diff --git a/gdb/maint.c b/gdb/maint.c index be18a32ed38..1adea2f9e93 100644 --- a/gdb/maint.c +++ b/gdb/maint.c @@ -683,15 +683,18 @@ extern char etext; static int profiling_state; +EXTERN_C void _mcleanup (void); + static void mcleanup_wrapper (void) { - extern void _mcleanup (void); - if (profiling_state) _mcleanup (); } +EXTERN_C void monstartup (unsigned long, unsigned long); +extern int main (); + static void maintenance_set_profile_cmd (char *args, int from_tty, struct cmd_list_element *c) @@ -705,9 +708,6 @@ maintenance_set_profile_cmd (char *args, int from_tty, { static int profiling_initialized; - extern void monstartup (unsigned long, unsigned long); - extern int main(); - if (!profiling_initialized) { atexit (mcleanup_wrapper); diff --git a/gdb/nat/linux-ptrace.c b/gdb/nat/linux-ptrace.c index 1c678195746..2244d9d5792 100644 --- a/gdb/nat/linux-ptrace.c +++ b/gdb/nat/linux-ptrace.c @@ -84,7 +84,7 @@ linux_ptrace_attach_fail_reason_string (ptid_t ptid, int err) #if defined __i386__ || defined __x86_64__ /* Address of the 'ret' instruction in asm code block below. */ -extern void (linux_ptrace_test_ret_to_nx_instr) (void); +EXTERN_C void linux_ptrace_test_ret_to_nx_instr (void); #include <sys/reg.h> #include <sys/mman.h> |