Get rid of -Wodr warning (PR build/23399)
authorSimon Marchi <simon.marchi@polymtl.ca>
Tue, 28 Aug 2018 17:29:32 +0000 (13:29 -0400)
committerSimon Marchi <simon.marchi@ericsson.com>
Tue, 28 Aug 2018 21:23:16 +0000 (17:23 -0400)
The PR reports that building with -Wodr -flto complains about different
versions of struct ipa_sym_addresses, in common/agent.c and
gdbserver/tracepoint.c.  This patch renames the version in common to
ipa_sym_addresses_common to avoid the name clash.  Because the IPA_SYM
assumed the name ipa_sym_addresses, it now requires the includer to
define the IPA_SYM_STRUCT_NAME macro to define the name of the structure
holding the IPA symbol addresses.

gdb/ChangeLog:

PR build/23399
* common/agent.c (IPA_SYM_STRUCT_NAME): Define.
(struct ipa_sym_addresses): Rename to...
(struct ipa_sym_addresses_common): ... this.
* common/agent.h (IPA_SYM): Use IPA_SYM_STRUCT_NAME.

gdb/gdbserver/ChangeLog:

PR build/23399
* tracepoint.c (IPA_SYM_STRUCT_NAME): Define.

gdb/ChangeLog
gdb/common/agent.c
gdb/common/agent.h
gdb/gdbserver/ChangeLog
gdb/gdbserver/tracepoint.c

index 3381304..2b64e88 100644 (file)
@@ -1,3 +1,11 @@
+2018-08-28  Simon Marchi  <simon.marchi@polymtl.ca>
+
+       PR build/23399
+       * common/agent.c (IPA_SYM_STRUCT_NAME): Define.
+       (struct ipa_sym_addresses): Rename to...
+       (struct ipa_sym_addresses_common): ... this.
+       * common/agent.h (IPA_SYM): Use IPA_SYM_STRUCT_NAME.
+
 2018-08-28  Tom Tromey  <tom@tromey.com>
 
        * c-exp.y (struct token_and_value): Remove typedef and DEF_VEC.
index 8f80aee..41884b9 100644 (file)
 #include "target/target.h"
 #include "common/symbol.h"
 #include <unistd.h>
-#include "agent.h"
 #include "filestuff.h"
 
+#define IPA_SYM_STRUCT_NAME ipa_sym_addresses_common
+#include "agent.h"
+
 int debug_agent = 0;
 
 /* A stdarg wrapper for debug_vprintf.  */
@@ -48,7 +50,7 @@ int use_agent = 0;
 /* Addresses of in-process agent's symbols both GDB and GDBserver cares
    about.  */
 
-struct ipa_sym_addresses
+struct ipa_sym_addresses_common
 {
   CORE_ADDR addr_helper_thread_id;
   CORE_ADDR addr_cmd_buf;
@@ -69,7 +71,7 @@ static struct
   IPA_SYM(capability),
 };
 
-static struct ipa_sym_addresses ipa_sym_addrs;
+static struct ipa_sym_addresses_common ipa_sym_addrs;
 
 static int all_agent_symbols_looked_up = 0;
 
index 66b6937..5be07b8 100644 (file)
@@ -27,10 +27,15 @@ int agent_run_command (int pid, const char *cmd, int len);
 int agent_look_up_symbols (void *);
 
 #define IPA_SYM_EXPORTED_NAME(SYM) gdb_agent_ ## SYM
+
+/* Define an entry in an IPA symbol list array.  If IPA_SYM is used, the macro
+   IPA_SYM_STRUCT_NAME must be defined to the structure name holding the IPA
+   symbol addresses in that particular file, before including
+   common/agent.h.  */
 #define IPA_SYM(SYM)                                   \
   {                                                    \
-    STRINGIFY (IPA_SYM_EXPORTED_NAME (SYM)),           \
-    offsetof (struct ipa_sym_addresses, addr_ ## SYM)  \
+    STRINGIFY (IPA_SYM_EXPORTED_NAME (SYM)),           \
+    offsetof (IPA_SYM_STRUCT_NAME, addr_ ## SYM)       \
   }
 
 /* The size in bytes of the buffer used to talk to the IPA helper
index cdc8afd..cd0318c 100644 (file)
@@ -1,3 +1,8 @@
+2018-08-28  Simon Marchi  <simon.marchi@polymtl.ca>
+
+       PR build/23399
+       * tracepoint.c (IPA_SYM_STRUCT_NAME): Define.
+
 2018-08-27  Tom Tromey  <tom@tromey.com>
 
        PR build/23087:
index ad2a801..9959d05 100644 (file)
@@ -19,7 +19,6 @@
 #include "server.h"
 #include "tracepoint.h"
 #include "gdbthread.h"
-#include "agent.h"
 #include "rsp-low.h"
 
 #include <ctype.h>
@@ -30,6 +29,9 @@
 #include "ax.h"
 #include "tdesc.h"
 
+#define IPA_SYM_STRUCT_NAME ipa_sym_addresses
+#include "agent.h"
+
 #define DEFAULT_TRACE_BUFFER_SIZE 5242880 /* 5*1024*1024 */
 
 /* This file is built for both GDBserver, and the in-process