summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLancelot SIX <lancelot.six@amd.com>2024-01-29 18:28:52 +0000
committerLancelot SIX <lancelot.six@amd.com>2024-01-29 20:20:30 +0000
commit878e894801169461adc00129ad33947ad541420d (patch)
treecff4e307be0aa3d24a60863322a314ad82ccac98
parent34e222d3c20f33adae7d0841bc37dc9ac61fb1cd (diff)
gdb: Use SYM_DOMAIN instead of DOMAIN when calling sym-domains.def
Since commit 6771fc6f1d9 "Use a .def file for domain_enum", the sym-domains.def file has been introduced, and requires the user to define the DOMAIN(x) macro. On older systems (centos-7 with glibc-2.17 for example), this DOMAIN macro conflicts with another macro defined in /usr/include/math.h. Fix this conflict by changing sym-domains.def to use a macro named SYM_DOMAIN instead of DOMAIN. Change-Id: I679df30e2bd2f4333343f16bbd2a3511a37550a3 Approved-By: Tom Tromey <tom@tromey.com>
-rw-r--r--gdb/guile/scm-symbol.c4
-rw-r--r--gdb/python/py-symbol.c4
-rw-r--r--gdb/sym-domains.def16
-rw-r--r--gdb/symtab.c16
-rw-r--r--gdb/symtab.h12
5 files changed, 26 insertions, 26 deletions
diff --git a/gdb/guile/scm-symbol.c b/gdb/guile/scm-symbol.c
index 7061ff58872..860ed522274 100644
--- a/gdb/guile/scm-symbol.c
+++ b/gdb/guile/scm-symbol.c
@@ -697,11 +697,11 @@ static const scheme_integer_constant symbol_integer_constants[] =
X (LOC_REGPARM_ADDR),
#undef X
-#define DOMAIN(X) \
+#define SYM_DOMAIN(X) \
{ "SYMBOL_" #X "_DOMAIN", to_scripting_domain (X ## _DOMAIN) }, \
{ "SEARCH_" #X "_DOMAIN", to_scripting_domain (SEARCH_ ## X ## _DOMAIN) },
#include "sym-domains.def"
-#undef DOMAIN
+#undef SYM_DOMAIN
/* Historical. */
{ "SYMBOL_VARIABLES_DOMAIN", to_scripting_domain (SEARCH_VAR_DOMAIN) },
diff --git a/gdb/python/py-symbol.c b/gdb/python/py-symbol.c
index db8df891b29..1ebdf028a34 100644
--- a/gdb/python/py-symbol.c
+++ b/gdb/python/py-symbol.c
@@ -677,14 +677,14 @@ gdbpy_initialize_symbols (void)
LOC_REGPARM_ADDR) < 0)
return -1;
-#define DOMAIN(X) \
+#define SYM_DOMAIN(X) \
if (PyModule_AddIntConstant (gdb_module, "SYMBOL_" #X "_DOMAIN", \
to_scripting_domain (X ## _DOMAIN)) < 0 \
|| PyModule_AddIntConstant (gdb_module, "SEARCH_" #X "_DOMAIN", \
to_scripting_domain (SEARCH_ ## X ## _DOMAIN)) < 0) \
return -1;
#include "sym-domains.def"
-#undef DOMAIN
+#undef SYM_DOMAIN
return gdb_pymodule_addobject (gdb_module, "Symbol",
(PyObject *) &symbol_object_type);
diff --git a/gdb/sym-domains.def b/gdb/sym-domains.def
index 7545631063b..dd5b1b6bc5a 100644
--- a/gdb/sym-domains.def
+++ b/gdb/sym-domains.def
@@ -21,38 +21,38 @@
none of the following apply. This usually indicates an error either
in the symbol information or in gdb's handling of symbols. */
-DOMAIN (UNDEF)
+SYM_DOMAIN (UNDEF)
/* VAR_DOMAIN is the usual domain. In C, this contains variables,
function names, typedef names and enum type values. */
-DOMAIN (VAR)
+SYM_DOMAIN (VAR)
/* STRUCT_DOMAIN is used in C to hold struct, union and enum type names.
Thus, if `struct foo' is used in a C program, it produces a symbol named
`foo' in the STRUCT_DOMAIN. */
-DOMAIN (STRUCT)
+SYM_DOMAIN (STRUCT)
/* MODULE_DOMAIN is used in Fortran to hold module type names. */
-DOMAIN (MODULE)
+SYM_DOMAIN (MODULE)
/* LABEL_DOMAIN may be used for names of labels (for gotos). */
-DOMAIN (LABEL)
+SYM_DOMAIN (LABEL)
/* Fortran common blocks. Their naming must be separate from VAR_DOMAIN.
They also always use LOC_COMMON_BLOCK. */
-DOMAIN (COMMON_BLOCK)
+SYM_DOMAIN (COMMON_BLOCK)
/* TYPE_DOMAIN is for types and typedefs. Note that tags are not
found here, see STRUCT_DOMAIN above. If a language does not have a
tag namespace, then all types (including structures, etc) are
here. */
-DOMAIN (TYPE)
+SYM_DOMAIN (TYPE)
/* FUNCTION_DOMAIN is for functions and methods. */
-DOMAIN (FUNCTION)
+SYM_DOMAIN (FUNCTION)
diff --git a/gdb/symtab.c b/gdb/symtab.c
index 517e843244b..5221989e6f4 100644
--- a/gdb/symtab.c
+++ b/gdb/symtab.c
@@ -306,10 +306,10 @@ domain_name (domain_enum e)
{
switch (e)
{
-#define DOMAIN(X) \
+#define SYM_DOMAIN(X) \
case X ## _DOMAIN: return #X "_DOMAIN";
#include "sym-domains.def"
-#undef DOMAIN
+#undef SYM_DOMAIN
default: gdb_assert_not_reached ("bad domain_enum");
}
}
@@ -320,10 +320,10 @@ std::string
domain_name (domain_search_flags flags)
{
static constexpr domain_search_flags::string_mapping mapping[] = {
-#define DOMAIN(X) \
+#define SYM_DOMAIN(X) \
MAP_ENUM_FLAG (SEARCH_ ## X ## _DOMAIN),
#include "sym-domains.def"
-#undef DOMAIN
+#undef SYM_DOMAIN
};
return flags.to_string (mapping);
@@ -340,10 +340,10 @@ from_scripting_domain (int val)
convert it to a search constant. */
switch (val)
{
-#define DOMAIN(X) \
+#define SYM_DOMAIN(X) \
case X ## _DOMAIN: break;
#include "sym-domains.def"
-#undef DOMAIN
+#undef SYM_DOMAIN
default:
error (_("unrecognized domain constant"));
}
@@ -361,10 +361,10 @@ from_scripting_domain (int val)
this. */
val &= ~SCRIPTING_SEARCH_FLAG;
int check = val;
-#define DOMAIN(X) \
+#define SYM_DOMAIN(X) \
check &= ~ (int) SEARCH_ ## X ## _DOMAIN;
#include "sym-domains.def"
-#undef DOMAIN
+#undef SYM_DOMAIN
if (check != 0)
error (_("unrecognized domain constant"));
return (domain_search_flag) val;
diff --git a/gdb/symtab.h b/gdb/symtab.h
index 3029f60cb4b..d43207ed70a 100644
--- a/gdb/symtab.h
+++ b/gdb/symtab.h
@@ -894,9 +894,9 @@ private:
enum domain_enum
{
-#define DOMAIN(X) X ## _DOMAIN,
+#define SYM_DOMAIN(X) X ## _DOMAIN,
#include "sym-domains.def"
-#undef DOMAIN
+#undef SYM_DOMAIN
};
/* The number of bits in a symbol used to represent the domain. */
@@ -909,19 +909,19 @@ extern const char *domain_name (domain_enum);
let the search match multiple kinds of symbol. */
enum domain_search_flag
{
-#define DOMAIN(X) \
+#define SYM_DOMAIN(X) \
SEARCH_ ## X ## _DOMAIN = (1 << X ## _DOMAIN),
#include "sym-domains.def"
-#undef DOMAIN
+#undef SYM_DOMAIN
};
DEF_ENUM_FLAGS_TYPE (enum domain_search_flag, domain_search_flags);
/* A convenience constant to search for any symbol. */
constexpr domain_search_flags SEARCH_ALL
= ((domain_search_flags) 0
-#define DOMAIN(X) | SEARCH_ ## X ## _DOMAIN
+#define SYM_DOMAIN(X) | SEARCH_ ## X ## _DOMAIN
#include "sym-domains.def"
-#undef DOMAIN
+#undef SYM_DOMAIN
);
/* A convenience define for "C-like" name lookups, matching variables,