aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2015-02-09 14:59:08 +0000
committerPedro Alves <palves@redhat.com>2015-02-27 17:26:16 +0000
commit56000a9801956afa7622249f114da778afc8887f (patch)
treecde7dfd0a133e8dae0f38d0cec5f7599869b260a
parentbcabf4207e7ba20f09e15141c6c3241862ac4aee (diff)
downloadgdb-56000a9801956afa7622249f114da778afc8887f.zip
gdb-56000a9801956afa7622249f114da778afc8887f.tar.gz
gdb-56000a9801956afa7622249f114da778afc8887f.tar.bz2
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.
-rw-r--r--gdb/ChangeLog19
-rw-r--r--gdb/cli-out.c4
-rw-r--r--gdb/common/common-defs.h6
-rw-r--r--gdb/completer.c10
-rw-r--r--gdb/defs.h2
-rw-r--r--gdb/maint.c10
-rw-r--r--gdb/nat/linux-ptrace.c2
7 files changed, 40 insertions, 13 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 19ecc01..aa4a614 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 48f2a04..2a83169 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 e80d332..3020bd88 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 add79cc..efcb771 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 a1cd45f..72512f6 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 be18a32..1adea2f 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 1c67819..2244d9d 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>