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