Alan recently changed the diagnostic in binutils for changing various
attributes of a section from a warning to a hard error.


This caused the FRV port to fail to build frvbegin/frvend because of
differences in the flags for the .ctors/.dtors sections.

This patch twiddles frvbegin.c/frvend.c in libgcc to avoid the error.

I've verified this fixes the libgcc build failure for FRV and verified
that the GCC testresults have returned to normal.

Installed on the trunk,

Jeff
commit 7214fce3024d726ad548d7003fa162eb5021c491
Author: Jeff Law <l...@redhat.com>
Date:   Mon Feb 10 14:12:32 2020 -0700

    Fix libgcc build failure for FRV with recent versions of gas.
    
            * config/frv/frvbegin.c: Use right flags for .ctors and .dtors
            sections.
            * config/frv/frvend.c: Similarly.

diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog
index 4c7443a0457..917d0e76568 100644
--- a/libgcc/ChangeLog
+++ b/libgcc/ChangeLog
@@ -1,3 +1,9 @@
+2020-02-10  Jeff Law  <l...@redhat.com>
+
+       * config/frv/frvbegin.c: Use right flags for .ctors and .dtors
+       sections.
+       * config/frv/frvend.c: Similarly.
+
 2020-02-10  H.J. Lu  <hongjiu...@intel.com>
 
        PR libgcc/85334
diff --git a/libgcc/config/frv/frvbegin.c b/libgcc/config/frv/frvbegin.c
index 8ab1a1b989d..0f54bf19646 100644
--- a/libgcc/config/frv/frvbegin.c
+++ b/libgcc/config/frv/frvbegin.c
@@ -59,8 +59,8 @@ __asm__ (".section " SECTION "," FLAGS "\n\t"                 
        \
 /* Beginning of .ctor/.dtor sections that provides a list of constructors and
    destructors to run.  */
 
-INIT_SECTION_NEG_ONE (".ctors", "\"aw\"", "__CTOR_LIST__");
-INIT_SECTION_NEG_ONE (".dtors", "\"aw\"", "__DTOR_LIST__");
+INIT_SECTION_NEG_ONE (".ctors", "\"a\"", "__CTOR_LIST__");
+INIT_SECTION_NEG_ONE (".dtors", "\"a\"", "__DTOR_LIST__");
 
 /* Beginning of .eh_frame section that provides all of the exception handling
    tables.  */
diff --git a/libgcc/config/frv/frvend.c b/libgcc/config/frv/frvend.c
index eb3494cad96..d2b83b294ca 100644
--- a/libgcc/config/frv/frvend.c
+++ b/libgcc/config/frv/frvend.c
@@ -52,8 +52,8 @@ __asm__ (".section " SECTION "," FLAGS "\n\t"                 
        \
 /* End of .ctor/.dtor sections that provides a list of constructors and
    destructors to run.  */
 
-FINI_SECTION_ZERO (".ctors", "\"aw\"", "__CTOR_END__");
-FINI_SECTION_ZERO (".dtors", "\"aw\"", "__DTOR_END__");
+FINI_SECTION_ZERO (".ctors", "\"a\"", "__CTOR_END__");
+FINI_SECTION_ZERO (".dtors", "\"a\"", "__DTOR_END__");
 
 /* End of .eh_frame section that provides all of the exception handling
    tables.  */

Reply via email to