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. */