[1/2] go: update usage of TARGET_AIX to TARGET_AIX_OS

Message ID 20230616160002.1854983-1-murphyp@linux.ibm.com
State Accepted
Headers
Series [1/2] go: update usage of TARGET_AIX to TARGET_AIX_OS |

Checks

Context Check Description
snail/gcc-patch-check success Github commit url

Commit Message

Paul E Murphy June 16, 2023, 4 p.m. UTC
  TARGET_AIX is defined to a non-zero value on linux and maybe other
powerpc64le targets.  This leads to unexpected behavior such as
dropping the .go_export section when linking a shared library
on linux/powerpc64le.

Instead, use TARGET_AIX_OS to toggle AIX specific behavior.

Fixes golang/go#60798.

gcc/go/ChangeLog:

	* go-backend.cc [TARGET_AIX]: Rename and update usage to
	TARGET_AIX_OS.
	* go-lang.cc: Likewise.
---
 gcc/go/go-backend.cc | 6 +++---
 gcc/go/go-lang.cc    | 8 ++++----
 2 files changed, 7 insertions(+), 7 deletions(-)
  

Comments

Ian Lance Taylor June 16, 2023, 5:01 p.m. UTC | #1
On Fri, Jun 16, 2023 at 9:00 AM Paul E. Murphy via Gcc-patches
<gcc-patches@gcc.gnu.org> wrote:
>
> TARGET_AIX is defined to a non-zero value on linux and maybe other
> powerpc64le targets.  This leads to unexpected behavior such as
> dropping the .go_export section when linking a shared library
> on linux/powerpc64le.
>
> Instead, use TARGET_AIX_OS to toggle AIX specific behavior.
>
> Fixes golang/go#60798.
>
> gcc/go/ChangeLog:
>
>         * go-backend.cc [TARGET_AIX]: Rename and update usage to
>         TARGET_AIX_OS.
>         * go-lang.cc: Likewise.

This is OK.

Thanks.

Ian
  
Peter Bergner June 22, 2023, 11:37 p.m. UTC | #2
On 6/16/23 12:01 PM, Ian Lance Taylor via Gcc-patches wrote:
> On Fri, Jun 16, 2023 at 9:00 AM Paul E. Murphy via Gcc-patches
> <gcc-patches@gcc.gnu.org> wrote:
>>
>> TARGET_AIX is defined to a non-zero value on linux and maybe other
>> powerpc64le targets.  This leads to unexpected behavior such as
>> dropping the .go_export section when linking a shared library
>> on linux/powerpc64le.
>>
>> Instead, use TARGET_AIX_OS to toggle AIX specific behavior.
>>
>> Fixes golang/go#60798.
>>
>> gcc/go/ChangeLog:
>>
>>         * go-backend.cc [TARGET_AIX]: Rename and update usage to
>>         TARGET_AIX_OS.
>>         * go-lang.cc: Likewise.
> 
> This is OK.
> 
> Thanks.
> 
> Ian

I pushed this to trunk for Paul.

Peter
  
Peter Bergner June 22, 2023, 11:46 p.m. UTC | #3
On 6/22/23 6:37 PM, Peter Bergner via Gcc-patches wrote:
> On 6/16/23 12:01 PM, Ian Lance Taylor via Gcc-patches wrote:
>> On Fri, Jun 16, 2023 at 9:00 AM Paul E. Murphy via Gcc-patches
>> <gcc-patches@gcc.gnu.org> wrote:
>>>
>>> TARGET_AIX is defined to a non-zero value on linux and maybe other
>>> powerpc64le targets.  This leads to unexpected behavior such as
>>> dropping the .go_export section when linking a shared library
>>> on linux/powerpc64le.
>>>
>>> Instead, use TARGET_AIX_OS to toggle AIX specific behavior.
>>>
>>> Fixes golang/go#60798.
>>>
>>> gcc/go/ChangeLog:
>>>
>>>         * go-backend.cc [TARGET_AIX]: Rename and update usage to
>>>         TARGET_AIX_OS.
>>>         * go-lang.cc: Likewise.
>>
>> This is OK.
>>
>> Thanks.
>>
>> Ian
> 
> I pushed this to trunk for Paul.

I see this is broken on the release branches too.  Are backports ok
after some burn-in on trunk?

Peter
  
Ian Lance Taylor June 23, 2023, 3:30 a.m. UTC | #4
On Thu, Jun 22, 2023, 4:47 PM Peter Bergner <bergner@linux.ibm.com> wrote:

> On 6/22/23 6:37 PM, Peter Bergner via Gcc-patches wrote:
> > On 6/16/23 12:01 PM, Ian Lance Taylor via Gcc-patches wrote:
> >> On Fri, Jun 16, 2023 at 9:00 AM Paul E. Murphy via Gcc-patches
> >> <gcc-patches@gcc.gnu.org> wrote:
> >>>
> >>> TARGET_AIX is defined to a non-zero value on linux and maybe other
> >>> powerpc64le targets.  This leads to unexpected behavior such as
> >>> dropping the .go_export section when linking a shared library
> >>> on linux/powerpc64le.
> >>>
> >>> Instead, use TARGET_AIX_OS to toggle AIX specific behavior.
> >>>
> >>> Fixes golang/go#60798.
> >>>
> >>> gcc/go/ChangeLog:
> >>>
> >>>         * go-backend.cc [TARGET_AIX]: Rename and update usage to
> >>>         TARGET_AIX_OS.
> >>>         * go-lang.cc: Likewise.
> >>
> >> This is OK.
> >>
> >> Thanks.
> >>
> >> Ian
> >
> > I pushed this to trunk for Paul.
>
> I see this is broken on the release branches too.  Are backports ok
> after some burn-in on trunk?
>

Yes.  Thanks.

Ian

>
  
Peter Bergner June 30, 2023, 5:28 p.m. UTC | #5
On 6/22/23 10:30 PM, Ian Lance Taylor wrote:
> On Thu, Jun 22, 2023, 4: 47 PM Peter Bergner <bergner@ linux. ibm. com> wrote: On 6/22/23 6: 37 PM, Peter Bergner via Gcc-patches wrote: > On 6/16/23 
>     >> On Fri, Jun 16, 2023 at 9:00 AM Paul E. Murphy via Gcc-patches
>     >> <gcc-patches@gcc.gnu.org <mailto:gcc-patches@gcc.gnu.org>> wrote:
>     >>>
>     >>> TARGET_AIX is defined to a non-zero value on linux and maybe other
>     >>> powerpc64le targets.  This leads to unexpected behavior such as
>     >>> dropping the .go_export section when linking a shared library
>     >>> on linux/powerpc64le.
>     >>>
>     >>> Instead, use TARGET_AIX_OS to toggle AIX specific behavior.
>     >>>
>     >>> Fixes golang/go#60798.
>     >>>
>     >>> gcc/go/ChangeLog:
>     >>>
>     >>>         * go-backend.cc [TARGET_AIX]: Rename and update usage to
>     >>>         TARGET_AIX_OS.
>     >>>         * go-lang.cc: Likewise.
>     >>
>     >> This is OK.
>     >>
>     >> Thanks.
>     >>
>     >> Ian
>     >
>     > I pushed this to trunk for Paul.
> 
>     I see this is broken on the release branches too.  Are backports ok
>     after some burn-in on trunk?
> 
> Yes.  Thanks.

Ok, I backported the Go fix to GCC 13, 12, 11 and 10 (before the 10.5 freeze).
I also backported to the rust change to GCC 13, which was the first release
with rust.   Thanks.

Peter
  

Patch

diff --git a/gcc/go/go-backend.cc b/gcc/go/go-backend.cc
index c6a1a2b7c18..6e2c919e829 100644
--- a/gcc/go/go-backend.cc
+++ b/gcc/go/go-backend.cc
@@ -45,8 +45,8 @@  along with GCC; see the file COPYING3.  If not see
 #define GO_EXPORT_SECTION_NAME ".go_export"
 #endif
 
-#ifndef TARGET_AIX
-#define TARGET_AIX 0
+#ifndef TARGET_AIX_OS
+#define TARGET_AIX_OS 0
 #endif
 
 /* This file holds all the cases where the Go frontend needs
@@ -107,7 +107,7 @@  go_write_export_data (const char *bytes, unsigned int size)
     {
       gcc_assert (targetm_common.have_named_sections);
       sec = get_section (GO_EXPORT_SECTION_NAME,
-			 TARGET_AIX ? SECTION_EXCLUDE : SECTION_DEBUG,
+			 TARGET_AIX_OS ? SECTION_EXCLUDE : SECTION_DEBUG,
 			 NULL);
     }
 
diff --git a/gcc/go/go-lang.cc b/gcc/go/go-lang.cc
index b6e8c37bf22..c6c147b20a5 100644
--- a/gcc/go/go-lang.cc
+++ b/gcc/go/go-lang.cc
@@ -39,8 +39,8 @@  along with GCC; see the file COPYING3.  If not see
 #include "go-c.h"
 #include "go-gcc.h"
 
-#ifndef TARGET_AIX
-#define TARGET_AIX 0
+#ifndef TARGET_AIX_OS
+#define TARGET_AIX_OS 0
 #endif
 
 /* Language-dependent contents of a type.  */
@@ -116,9 +116,9 @@  go_langhook_init (void)
   args.compiling_runtime = go_compiling_runtime;
   args.debug_escape_level = go_debug_escape_level;
   args.debug_escape_hash = go_debug_escape_hash;
-  args.nil_check_size_threshold = TARGET_AIX ? -1 : 4096;
+  args.nil_check_size_threshold = TARGET_AIX_OS ? -1 : 4096;
   args.debug_optimization = go_debug_optimization;
-  args.need_eqtype = TARGET_AIX ? true : false;
+  args.need_eqtype = TARGET_AIX_OS ? true : false;
   args.linemap = go_get_linemap();
   args.backend = go_get_backend();
   go_create_gogo (&args);