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