+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.
 
 #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.  */
 /* 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;
   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;
 
 
 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
 
+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:
 
 #include "server.h"
 #include "tracepoint.h"
 #include "gdbthread.h"
-#include "agent.h"
 #include "rsp-low.h"
 
 #include <ctype.h>
 #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