Fix redefined macro for epiphany.

Message ID 5ce1236e-6e83-0660-ddf6-3bc295a252e5@suse.cz
State New
Headers
Series Fix redefined macro for epiphany. |

Commit Message

Martin Liška Jan. 12, 2022, 9:47 a.m. UTC
  The following warning is emitted gazillion times.

Fixes:

In file included from ./tm.h:23,
                  from gcc/genconfig.c:25:
gcc/config/elfos.h:209: warning: "READONLY_DATA_SECTION_ASM_OP" redefined
   209 | #define READONLY_DATA_SECTION_ASM_OP    "\t.section\t.rodata"
       |
In file included from ./tm.h:21,
                  from gcc/genconfig.c:25:
gcc/config/epiphany/epiphany.h:671: note: this is the location of the previous definition
   671 | #define READONLY_DATA_SECTION_ASM_OP    "\t.section .rodata"

Ready to be installed?
Thanks,
Martin

gcc/ChangeLog:

	* config/elfos.h (READONLY_DATA_SECTION_ASM_OP): Define only if
	not defined.
---
  gcc/config/elfos.h | 2 ++
  1 file changed, 2 insertions(+)
  

Comments

Richard Biener Jan. 12, 2022, 10:03 a.m. UTC | #1
On Wed, Jan 12, 2022 at 10:47 AM Martin Liška <mliska@suse.cz> wrote:
>
> The following warning is emitted gazillion times.
>
> Fixes:
>
> In file included from ./tm.h:23,
>                   from gcc/genconfig.c:25:
> gcc/config/elfos.h:209: warning: "READONLY_DATA_SECTION_ASM_OP" redefined
>    209 | #define READONLY_DATA_SECTION_ASM_OP    "\t.section\t.rodata"
>        |
> In file included from ./tm.h:21,
>                   from gcc/genconfig.c:25:
> gcc/config/epiphany/epiphany.h:671: note: this is the location of the previous definition
>    671 | #define READONLY_DATA_SECTION_ASM_OP    "\t.section .rodata"
>
> Ready to be installed?

Most other targets #undef READONLY_DATA_SECION_ASM_OP before defining,
isn't the issue that the target doesn't do that and that it has
uncommon order of
tm_file in config.gcc?  (${tm_file} first, before elfos.h)

Richard.

> Thanks,
> Martin
>
> gcc/ChangeLog:
>
>         * config/elfos.h (READONLY_DATA_SECTION_ASM_OP): Define only if
>         not defined.
> ---
>   gcc/config/elfos.h | 2 ++
>   1 file changed, 2 insertions(+)
>
> diff --git a/gcc/config/elfos.h b/gcc/config/elfos.h
> index 2e0c709e585..add949ec940 100644
> --- a/gcc/config/elfos.h
> +++ b/gcc/config/elfos.h
> @@ -206,7 +206,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
>   #define ASCII_DATA_ASM_OP     "\t.ascii\t"
>
>   /* Support a read-only data section.  */
> +#ifndef READONLY_DATA_SECTION_ASM_OP
>   #define READONLY_DATA_SECTION_ASM_OP  "\t.section\t.rodata"
> +#endif
>
>   /* On svr4, we *do* have support for the .init and .fini sections, and we
>      can put stuff in there to be executed before and after `main'.  We let
> --
> 2.34.1
>
  
Martin Liška Jan. 12, 2022, 10:10 a.m. UTC | #2
On 1/12/22 11:03, Richard Biener wrote:
> tm_file in config.gcc?  (${tm_file} first, before elfos.h)

Heh, yes, that's the case. The following patch fixes that.

May I install it?
Cheers,
Martin
  
Richard Biener Jan. 12, 2022, 10:35 a.m. UTC | #3
On Wed, Jan 12, 2022 at 11:10 AM Martin Liška <mliska@suse.cz> wrote:
>
> On 1/12/22 11:03, Richard Biener wrote:
> > tm_file in config.gcc?  (${tm_file} first, before elfos.h)
>
> Heh, yes, that's the case. The following patch fixes that.

OK if the target builds with that.

> May I install it?
> Cheers,
> Martin
  
Jeff Law Jan. 12, 2022, 2:22 p.m. UTC | #4
On 1/12/2022 2:47 AM, Martin Liška wrote:
> The following warning is emitted gazillion times.
>
> Fixes:
>
> In file included from ./tm.h:23,
>                  from gcc/genconfig.c:25:
> gcc/config/elfos.h:209: warning: "READONLY_DATA_SECTION_ASM_OP" redefined
>   209 | #define READONLY_DATA_SECTION_ASM_OP "\t.section\t.rodata"
>       |
> In file included from ./tm.h:21,
>                  from gcc/genconfig.c:25:
> gcc/config/epiphany/epiphany.h:671: note: this is the location of the 
> previous definition
>   671 | #define READONLY_DATA_SECTION_ASM_OP    "\t.section .rodata"
>
> Ready to be installed?
> Thanks,
> Martin
>
> gcc/ChangeLog:
>
>     * config/elfos.h (READONLY_DATA_SECTION_ASM_OP): Define only if
>     not defined.
Please do.

However, I think we should deprecate the epiphany.  It's been broken for 
~2 years randomly failing in reload.  I tried to fix it once and quickly 
gave up.  It currently ignores all testing failures in my tester as it's 
been horribly unstable.

jeff
  
Richard Biener Jan. 12, 2022, 2:56 p.m. UTC | #5
On Wed, Jan 12, 2022 at 3:23 PM Jeff Law via Gcc-patches
<gcc-patches@gcc.gnu.org> wrote:
>
>
>
> On 1/12/2022 2:47 AM, Martin Liška wrote:
> > The following warning is emitted gazillion times.
> >
> > Fixes:
> >
> > In file included from ./tm.h:23,
> >                  from gcc/genconfig.c:25:
> > gcc/config/elfos.h:209: warning: "READONLY_DATA_SECTION_ASM_OP" redefined
> >   209 | #define READONLY_DATA_SECTION_ASM_OP "\t.section\t.rodata"
> >       |
> > In file included from ./tm.h:21,
> >                  from gcc/genconfig.c:25:
> > gcc/config/epiphany/epiphany.h:671: note: this is the location of the
> > previous definition
> >   671 | #define READONLY_DATA_SECTION_ASM_OP    "\t.section .rodata"
> >
> > Ready to be installed?
> > Thanks,
> > Martin
> >
> > gcc/ChangeLog:
> >
> >     * config/elfos.h (READONLY_DATA_SECTION_ASM_OP): Define only if
> >     not defined.
> Please do.
>
> However, I think we should deprecate the epiphany.  It's been broken for
> ~2 years randomly failing in reload.  I tried to fix it once and quickly
> gave up.  It currently ignores all testing failures in my tester as it's
> been horribly unstable.

Joern is still listed as maintainer so let's CC him before doing
anything.  That said,
if it builds it's good enough for GCC 12 - we can discuss any target
deprecations
during stage1 (or deprecate those that don't even build right now,
though I'm not
aware of any).

Richard.

>
> jeff
  
Jeff Law Jan. 12, 2022, 3:58 p.m. UTC | #6
On 1/12/2022 7:56 AM, Richard Biener wrote:
> On Wed, Jan 12, 2022 at 3:23 PM Jeff Law via Gcc-patches
> <gcc-patches@gcc.gnu.org> wrote:
>>
>>
>> On 1/12/2022 2:47 AM, Martin Liška wrote:
>>> The following warning is emitted gazillion times.
>>>
>>> Fixes:
>>>
>>> In file included from ./tm.h:23,
>>>                   from gcc/genconfig.c:25:
>>> gcc/config/elfos.h:209: warning: "READONLY_DATA_SECTION_ASM_OP" redefined
>>>    209 | #define READONLY_DATA_SECTION_ASM_OP "\t.section\t.rodata"
>>>        |
>>> In file included from ./tm.h:21,
>>>                   from gcc/genconfig.c:25:
>>> gcc/config/epiphany/epiphany.h:671: note: this is the location of the
>>> previous definition
>>>    671 | #define READONLY_DATA_SECTION_ASM_OP    "\t.section .rodata"
>>>
>>> Ready to be installed?
>>> Thanks,
>>> Martin
>>>
>>> gcc/ChangeLog:
>>>
>>>      * config/elfos.h (READONLY_DATA_SECTION_ASM_OP): Define only if
>>>      not defined.
>> Please do.
>>
>> However, I think we should deprecate the epiphany.  It's been broken for
>> ~2 years randomly failing in reload.  I tried to fix it once and quickly
>> gave up.  It currently ignores all testing failures in my tester as it's
>> been horribly unstable.
> Joern is still listed as maintainer so let's CC him before doing
> anything.  That said,
> if it builds it's good enough for GCC 12 - we can discuss any target
> deprecations
> during stage1 (or deprecate those that don't even build right now,
> though I'm not
> aware of any).
cr16 still uses cc0.  It's marked as deprecated in gcc-12 and assuming 
it doesn't get fixed, removal in gcc-13.

m32c should be deprecated.  While it'll build libgcc, it'll fault (due 
to register allocation/reloading issues) building newlib or anything 
relatively complex.  This has been the case for at least 2 years.

epiphany will build newlib consistently, so I guess keeping it another 
release is OK to see if Joern wants to step up and fix its reload issues.






Jeff
  

Patch

diff --git a/gcc/config/elfos.h b/gcc/config/elfos.h
index 2e0c709e585..add949ec940 100644
--- a/gcc/config/elfos.h
+++ b/gcc/config/elfos.h
@@ -206,7 +206,9 @@  see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
  #define ASCII_DATA_ASM_OP	"\t.ascii\t"
  
  /* Support a read-only data section.  */
+#ifndef READONLY_DATA_SECTION_ASM_OP
  #define READONLY_DATA_SECTION_ASM_OP	"\t.section\t.rodata"
+#endif
  
  /* On svr4, we *do* have support for the .init and .fini sections, and we
     can put stuff in there to be executed before and after `main'.  We let