Hi Kewen

> On 28 Sep 2022, at 17:18, Iain Sandoe <i...@sandoe.co.uk> wrote:
> 
> (reduced CC list, if folks want to be re-included .. please add them back).
> 
>> On 28 Sep 2022, at 07:37, Iain Sandoe <i...@sandoe.co.uk> wrote:
> 
>>> On 28 Sep 2022, at 06:30, Kewen.Lin via Gcc-patches 
>>> <gcc-patches@gcc.gnu.org> wrote:
>> 
>>> PR106680 shows that -m32 -mpowerpc64 is different from
>>> -mpowerpc64 -m32, this is determined by the way how we
>>> handle option powerpc64 in rs6000_handle_option.
>>> 
>>> Segher pointed out this difference should be taken as
>>> a bug and we should ensure that option powerpc64 is
>>> independent of -m32/-m64.  So this patch removes the
>>> handlings in rs6000_handle_option and add some necessary
>>> supports in rs6000_option_override_internal instead.
>>> 
>>> With this patch, if users specify -m{no-,}powerpc64, the
>>> specified value is honoured, otherwise, for 64bit it
>>> always enables OPTION_MASK_POWERPC64 while for 32bit
>>> it disables OPTION_MASK_POWERPC64 if OS_MISSING_POWERPC64.
>>> 
>>> Bootstrapped and regress-tested on:
>>> - powerpc64-linux-gnu P7 and P8 {-m64,-m32}
>>> - powerpc64le-linux-gnu P9 and P10
>>> - powerpc-ibm-aix7.2.0.0 {-maix64,-maix32}
>>> 
>>> Hi Iain, could you help to test this on darwin to ensure
>>> it won't break darwin's build and new tests are fine?
>>> Thanks in advance!
>> 
>> Will do, it will take a day or so, thanks,
> 
> Perhaps a small exposition on the target:
> 
> powerpc-apple-darwin, is perhaps somewhat unusual in that it is nominally a 
> 32b kernel, but the OS supports 64b processes on suitable hardware (and the 
> OS does preserve the upper bits of 64b regs in the context).
> 
> -----
> 
> I bootstrapped (all supported languages) and tested r13-2892 yesterday with 
> “nominal” results.
> 
> Then I added this patch .. and did a clean bootstrap (same configuration).
> 
> the bootstrap fails on the stage3 libgomp (building the ppc64 multilib) with 
> the error below
> What is somewhat odd here is that libgomp is bootstrapped with the compiler 
> and, apparently,
> openacc-init.c built OK at stage2.
> 
> ——
> 
> Of course, powerpc-darwin is not a blocker for anything, it should not hold 
> you up (but sometimes it
> manages to find a glitch missed elsewhere).  I will try to take a look at 
> this this evening see if I can throw
> any more light on it.
> 
> ------
> 
> /src-local/gcc-master/libgomp/oacc-init.c:876:1: internal compiler error: 
> ‘global_options’ are modified in local context
>  876 | {
>      | ^
> 0xe940d7 cl_optimization_compare(gcc_options*, gcc_options*)
>        /scratch/10-5-leo/gcc-master/gcc/options-save.cc:14082

This repeats on a cross from x86_64-darwin to powerpc-darwin .. (makes debug a 
bit quicker)

this is the failing case - which does not (immediately) seem directly connected 
.. does it ring
any bells for you?

   16649          if (ptr1->x_rs6000_sched_restricted_insns_priority != 
ptr2->x_rs6000_sched_restricted_insns_priority)
-> 16650            internal_error ("%<global_options%> are modified in local 
context”);



> 0x15f8fb handle_optimize_attribute
>        /src-local/gcc-master/gcc/c-family/c-attribs.cc:5619
> 0x8447 decl_attributes(tree_node**, tree_node*, int, tree_node*)
>        /src-local/gcc-master/gcc/attribs.cc:875
> 0x307bb start_function(c_declspecs*, c_declarator*, tree_node*)
>        /src-local/gcc-master/gcc/c/c-decl.cc:9537
> 0xb4f27 c_parser_declaration_or_fndef
>        /src-local/gcc-master/gcc/c/c-parser.cc:2466
> 0xc164f c_parser_external_declaration
>        /src-local/gcc-master/gcc/c/c-parser.cc:1800
> 0xc2323 c_parser_translation_unit
>        /src-local/gcc-master/gcc/c/c-parser.cc:1666
> 0xc2323 c_parse_file()
>        ???:0
> 0x13a5db c_common_parse_file()
>        /src-local/gcc-master/gcc/c-family/c-opts.cc:1255
> Please submit a full bug report, with preprocessed source (by using 
> -freport-bug).
> Please include the complete backtrace with any bug report.
> See <https://gcc.gnu.org/bugs/> for instructions.
> 

Reply via email to