[alsa-devel] [PATCH 2/2] ASoC: SOF: core: fix undefined nocodec reference
Takashi Iwai
tiwai at suse.de
Wed May 8 18:26:15 CEST 2019
On Wed, 08 May 2019 18:21:36 +0200,
Pierre-Louis Bossart wrote:
>
>
>
> On 5/8/19 1:27 AM, Mark Brown wrote:
> > On Tue, May 07, 2019 at 11:32:36AM -0500, Pierre-Louis Bossart wrote:
> >> The existing code mistakenly uses IS_ENABLED in C code instead of as
> >> in conditional compilation, leading to the following error:
> >
> >> ld: sound/soc/sof/core.o: in function `sof_machine_check':
> >> sound/soc/sof/core.c:279: undefined reference to `sof_nocodec_setup'
> >
> > There's nothing wrong with using IS_ENABLED() in C code - it can be
> > cleaner than using an ifdef to help the compiler eliminate unneeded
> > code.
>
> Agree, and we do make use of it. In this case it wasn't smart though.
An alternative solution in such a case is to provide the dummy
function. For example, in sound/sof.h,
#if IS_ENABLED(CONFIG_SND_SOC_SOF_NOCODEC)
int sof_nocodec_setup(struct device *dev,
struct snd_sof_pdata *sof_pdata,
struct snd_soc_acpi_mach *mach,
const struct sof_dev_desc *desc,
const struct snd_sof_dsp_ops *ops);
#else
static inline int sof_nocodec_setup(struct device *dev,
struct snd_sof_pdata *sof_pdata,
struct snd_soc_acpi_mach *mach,
const struct sof_dev_desc *desc,
const struct snd_sof_dsp_ops *ops)
{
return -ENODEV;
}
#endif
Which one is better depends on the context and other part of code.
Takashi
More information about the Alsa-devel
mailing list