[PATCH] RISC-V: fix compile error from decuplicated __ALTERNATIVE_CFG_2

Andrew Jones ajones at ventanamicro.com
Thu Jan 5 07:00:45 PST 2023


On Wed, Jan 04, 2023 at 04:58:00PM +0100, Heiko Stübner wrote:
> Hi again,
> 
> Am Mittwoch, 4. Januar 2023, 15:08:33 CET schrieb Andrew Jones:
> > On Wed, Jan 04, 2023 at 01:29:25PM +0000, Conor Dooley wrote:
> > > On Tue, Jan 03, 2023 at 10:42:28PM +0100, Heiko Stuebner wrote:
> > > > From: Heiko Stuebner <heiko.stuebner at vrull.eu>
> > > 
> > > > RISC-V: fix compile error from decuplicated __ALTERNATIVE_CFG_2
> > > 
> > > Hey Heiko/Palmer,
> > > 
> > > Was a little hard to tell from Drew's mail if he was objecting to this
> > > variant of the patch, but FWIW s/decup/dedup/ if this gets applied
> > > as-is.
> > 
> > I wasn't completely objecting, but rather suggesting we still try to
> > factor out what we can. However, after reading a bit more about macros
> > I tried this
> > 
> >  .macro ALTERNATIVE_CFG_2 old_c, new_c_1, vendor_id_1, errata_id_1, enable_1,   \
> >                                 new_c_2, vendor_id_2, errata_id_2, enable_2
> > -       ALTERNATIVE_CFG \old_c, \new_c_1, \vendor_id_1, \errata_id_1, \enable_1
> > +       ALTERNATIVE_CFG "\old_c", "\new_c_1", \vendor_id_1, \errata_id_1, \enable_1
> >         ALT_NEW_CONTENT \vendor_id_2, \errata_id_2, \enable_2, \new_c_2
> >  .endm
> > 
> > which appears to work for my simple test. Does that work for you too,
> > Heiko? If so, then I think I'd prefer we do that. Also, we may want to add
> > quotes to all macro arguments which may contain spaces, even if things
> > seem to work now, e.g. the \new_c_2 argument passed to ALT_NEW_CONTENT.
> 
> Yay ... adding quotes really seems to work - at least a GNU toolchain

clang isn't complaining for my test either.

> 
> I guess that may have been the reason to move new_c at the end and making
> it vararg in ALT_NEW_CONTENT originally.
> 
> And in fact with added quotes the varargs argument wouldn't be necessary
> anymore.
> 
> Just removing the varargs argument alone results in
> 	Error: too many positional arguments
> erros, but wrapping the "\new_c*" in quotes lets it compile again.

Excellent news. Do you plan to post the patch? Or should I post with your
Reported-by tag?

Thanks,
drew



More information about the linux-riscv mailing list