Re: ld.lld: error: undefined symbol: iosf_mbi_available

From: Takashi Iwai
Date: Thu Jul 18 2024 - 11:36:16 EST


On Thu, 18 Jul 2024 17:16:54 +0200,
Pierre-Louis Bossart wrote:
>
>
> >>>> diff --git a/sound/soc/intel/common/soc-intel-quirks.h
> >>>> b/sound/soc/intel/common/soc-intel-quirks.h
> >>>> index de4e550c5b34..ae67853f7e2e 100644
> >>>> --- a/sound/soc/intel/common/soc-intel-quirks.h
> >>>> +++ b/sound/soc/intel/common/soc-intel-quirks.h
> >>>> @@ -11,7 +11,9 @@
> >>>>
> >>>> #include <linux/platform_data/x86/soc.h>
> >>>>
> >>>> -#if IS_ENABLED(CONFIG_X86)
> >>>> +#if IS_ENABLED(CONFIG_X86) && \
> >>>> + (IS_ENABLED(CONFIG_SND_SOC_SOF_BAYTRAIL) || \
> >>>> + IS_ENABLED(CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_ACPI))
> >>>>
> >>>> #include <linux/dmi.h>
> >>>> #include <asm/iosf_mbi.h>
> >>>>
> >>>> also at https://github.com/thesofproject/linux/pull/5114
> >>>
> >>> I'm afraid it's not enough, either. It's included in
> >>> sound/soc/sof/intel/atom.c, and this one can be built-in by selected
> >>> from others while CONFIG_SND_SOC_SOF_BAYTRAIL=m. And, the reverse
> >>> selection is done from CONFIG_SND_SOC_SOF_BAYTRAIL -- so
> >>> CONFIG_IOSF_MBI can be m as well, and this can lead to the unresolved
> >>> symbol from the built-in atom.c.
> >>
> >> Fair point, I was only looking at the reported failure where Baytrail
> >> was completely disabled.
> >>
> >> I am not sure though if it makes sense to split hair in N dimensions.
> >> Building Merrifield as y and Baytrail as m is a corner case that
> >> shouldn't exist at all. And it's only an academic compilation issue, in
> >> practice using 'y' would fail at run-time due to the usual firmware load
> >> dependencies...
> >
> > Surely this kind of bug won't hit anyone in practical use, but it's
> > only about the randconfig failures. The original report is in the
> > same category, after all.
> >
> > Maybe another (rather easier) workaround would be to use
> > IS_REACHABLE(), something like below. This should fix the original
> > issue and the potential mess-up of kconfig dependencies.
>
> The simplest solution works for me :-)
>
> Do you want me to send a patch with your Suggested-by: tag or do it
> yourself?

If you can send from your side, it'd be more appreciated ;)


thanks,

Takashi

>
> > --- a/sound/soc/intel/common/soc-intel-quirks.h
> > +++ b/sound/soc/intel/common/soc-intel-quirks.h
> > @@ -11,7 +11,7 @@
> >
> > #include <linux/platform_data/x86/soc.h>
> >
> > -#if IS_ENABLED(CONFIG_X86)
> > +#if IS_REACHABLE(CONFIG_IOSF_MBI)
> >
> > #include <linux/dmi.h>
> > #include <asm/iosf_mbi.h>