Hi! On Mon, Jun 21, 2021 at 05:27:06PM +0800, Kewen.Lin wrote: > Recently if we build gcc on Power with the assembler which doesn't > have Power10 support, the build will fail when building libgcc with > one error message like: > > Error: invalid switch -mpower10 > Error: unrecognized option -mpower10 > make[2]: *** [...gcc/gcc-base/libgcc/shared-object.mk:14: float128-p10.o] > Error 1
In general, it is recommended to use a binutils of approximately the same age as the GCC you are trying to build. This is similar to us not supporting most other non-sensical configurations. An important reason for that is it cannot ever be tested, there are just too many strange combinations possible. That said :-) > By checking the culprit commit r12-1340, it's caused by some typos. (That is 9090f4807161.) > - fix test case used for libgcc_cv_powerpc_3_1_float128_hw check. I was confused here for a bit, "test case" usually means something in testsuite/, I'd call this just "test" :-) > BTW, there are some noises during regression testings due to > newer versions binutils, but they were identified as unrelated > after some checkings. Hrm, what kind of noise? > * config/rs6000/t-float128-hw(fp128_3_1_hw_funcs, > fp128_3_1_hw_src, fp128_3_1_hw_static_obj, fp128_3_1_hw_shared_obj, > fp128_3_1_hw_obj): Remove variables for ISA 3.1 support. Needs a space before the opening paren. Doesn't need a line break so early on that line btw. Just "Remove." or "Delete." is less confusing btw: what you wrote can be read as "Remove the variables from these declarations" or similar. And of course terseness is usually best in a changelog. > * config/rs6000/t-float128-p10-hw (FLOAT128_HW_INSNS): Append > macro FLOAT128_HW_INSNS_ISA3_1 for ISA 3.1 support. Don't say what it is for, just say what changed :-) > (FP128_3_1_CFLAGS_HW): Fix option typo. > * config/rs6000/float128-ifunc.c (SW_OR_HW_ISA3_1): Guarded > with FLOAT128_HW_INSNS_ISA3_1. "Guard", not "Guarded", all entries are written in the imperative, like, "Do this" or "Guard that". > +#ifdef FLOAT128_HW_INSNS_ISA3_1 > TFtype __floattikf (TItype_ppc) > __attribute__ ((__ifunc__ ("__floattikf_resolve"))); I wonder if we now need TItype_ppc at all anymore, btw? Okay for trunk with the changelog slightly massaged. Thanks! Segher