Get rid of -Wodr warning (PR build/23399)

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.
This commit is contained in:
Simon Marchi 2018-08-28 13:29:32 -04:00 committed by Simon Marchi
parent ead9aa39bf
commit ad202fcc22
5 changed files with 28 additions and 6 deletions

View 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.

View File

@ -21,9 +21,11 @@
#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;

View 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

View 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:

View 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