Hi Segher, on 2022/9/1 23:04, Segher Boessenkool wrote: > On Thu, Sep 01, 2022 at 05:05:44PM +0800, Kewen.Lin wrote: >>> On Wed, Aug 31, 2022 at 05:33:28PM +0800, Kewen.Lin wrote: >>> *Should* -mpowerpc64 be disabled by -m32? >> >> I think the reason to disable -mpowerpc64 at -m32 is that we have >> -mpowerpc64 explicitly specified at -m64 (equivalent behavior). > > *Im*plicitly. Explicit means the user has it on the command line. >
aha, let me reword it. :) ... is that when -m64 is specified we make it act like -mpowerpc64 is specified explicitly too even if user doesn't actually specify -mpowerpc64. >> In the current implementation, when -m64 is specified, we set the >> bit OPTION_MASK_POWERPC64 in both opts and opts_set. Since we >> set OPTION_MASK_POWERPC64 in opts_set for -m64, when we find the >> OPTION_MASK_POWERPC64 is ON in opts_set, we don't know if there >> is one actual cmd-line option -mpowerpc64 or just -m64. > > Yes. That is what _explicit is for :-) > >> Without any explicit -mpowerpc64 (and -mno-), I think we all agree >> that -m64 should set OPTION_MASK_POWERPC64 in opts, conversely -m32 >> should unset OPTION_MASK_POWERPC64 in opts. > > The latter only for OSes that do not handle -mpowerpc64 correctly. I think it's the same for the OSes that handle -mpowerpc64 correctly. Note that it's for the context without any explicit -mpowerpc64 (and -mno-), assuming we don't "unset OPTION_MASK_POWERPC64 in opts" for -m32, then the command line "-m64 -m32" would not be the same as "-m32", since the previous "-m64" sets OPTION_MASK_POWERPC64 in opts and it's still kept, it's unexpected. > >> To make -m32/-m64 and -mpowerpc64 orthogonal, IMHO we should not >> set bit OPTION_MASK_POWERPC64 in opts_set for -m64. > > No. Instead, we should not touch it if the user has explicitly set it > or unset it. Just like with all other flags :-) I may miss something, but I think what we said here is consistent. "should not set bit OPTION_MASK_POWERPC64 in opts_set" means we should not make it act as -mpowerpc64 is specified explicitly, (once we won't do the "unexpected" thing for -m64, then no reason to unset it for -m32 conversely, so explicit set/unset -mpowerpc64 is independent of -m32/-m64). BR, Kewen