Message ID | alpine.DEB.2.21.2001271822530.21231@digraph.polyomino.org.uk |
---|---|
State | New |
Headers | show |
Series | Support gnu_unique_object symbols on MIPS | expand |
On Mon, 2020-01-27 at 18:23 +0000, Joseph Myers wrote: > mips_declare_object_name is missing the support for declaring symbols > as gnu_unique_object that is present in the generic > ASM_DECLARE_OBJECT_NAME in elfos.h. I'm not aware of any > MIPS-specific reason for that support to be absent; > mips_declare_object_name predates the addition of gnu_unique_object > support and as far as I can tell this was simply an oversight when > that support was added. This patch adds the missing support, > following the code in elfos.h. > > Tested with no regressions with cross to mips-linux-gnu. In > particular, this fixes the failure of the recently-added glibc test > elf/tst-dlopen-nodelete-reloc, which relies on the compiler generating > such symbols, for MIPS. > > 2020-01-27 Joseph Myers <joseph@codesourcery.com> > > * config/mips/mips.c (mips_declare_object_name) > [USE_GNU_UNIQUE_OBJECT]: Support use of gnu_unique_object. LGTM. jeff >
diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c index dae189ed20d..513fc5fe295 100644 --- a/gcc/config/mips/mips.c +++ b/gcc/config/mips/mips.c @@ -9775,7 +9775,14 @@ mips_declare_object_name (FILE *stream, const char *name, tree decl ATTRIBUTE_UNUSED) { #ifdef ASM_OUTPUT_TYPE_DIRECTIVE - ASM_OUTPUT_TYPE_DIRECTIVE (stream, name, "object"); +#ifdef USE_GNU_UNIQUE_OBJECT + /* As in elfos.h. */ + if (USE_GNU_UNIQUE_OBJECT && DECL_ONE_ONLY (decl) + && (!DECL_ARTIFICIAL (decl) || !TREE_READONLY (decl))) + ASM_OUTPUT_TYPE_DIRECTIVE (stream, name, "gnu_unique_object"); + else +#endif + ASM_OUTPUT_TYPE_DIRECTIVE (stream, name, "object"); #endif size_directive_output = 0;