Re: [alsa-devel] [PATCH] ASoC: SOF: Fix build error with CONFIG_SND_SOC_SOF_NOCODEC=m

From: Pierre-Louis Bossart
Date: Fri May 10 2019 - 09:35:46 EST


On 5/10/19 8:04 AM, Takashi Iwai wrote:
On Fri, 10 May 2019 14:56:29 +0200,
Pierre-Louis Bossart wrote:

On 5/10/19 2:12 AM, Takashi Iwai wrote:
On Fri, 10 May 2019 04:36:57 +0200,
YueHaibing wrote:

Fix gcc build error while CONFIG_SND_SOC_SOF_NOCODEC=m

sound/soc/sof/core.o: In function `snd_sof_device_probe':
core.c:(.text+0x4af): undefined reference to `sof_nocodec_setup'

Change SND_SOC_SOF_NOCODEC to bool to fix this.

Reported-by: Hulk Robot <hulkci@xxxxxxxxxx>
Fixes: c16211d6226d ("ASoC: SOF: Add Sound Open Firmware driver core")
Signed-off-by: YueHaibing <yuehaibing@xxxxxxxxxx>

This change would break things severely. This won't allow to build it
as a module any longer.

Isn't this fixed already?
See the patch 'ASoC: SOF: core: fix undefined nocodec reference' and
Takashi's follow-up to fix the unused variable warning.

Possibly the problem still persists although I haven't seen through my
local build tests with randconfig. You can set SND_SOC_SOF=y and
SND_SOC_NOCODEC=m, i.e. built-in sof-core while nocodec is a module.

YueHiabing, can you share the config and SHA1 so that we can double check?

If the problem persists, we can do something like

config SND_SOF_NOCODEC_SUPPORT
bool "SOF nocodec mode support"

config SND_SOF_NOCODEC
tristate

confir SND_SOC_SOF
tristate
select SND_SOF_NOCODEC if SND_SOF_NOCODEC_SUPPORT

that way you propagate the required dependencies


Takashi


A better fix would be to somehow restrict the SND_SOC_SOF_NOCODEC to
align with SND_SOC_SOF, i.e. disallow SND_SOC_SOF=y &&
SND_SOC_SOF_NOCODEC=m. Because of the complex mix of select and
depends-on in SOF, I'm afraid that it's not that trivial, though.
There might be something I overlooked, hopefully...

An easier alternative would be to replace
IS_ENABLED(CONFIG_SND_SOC_SOF_NOCODEC) with
IS_REACHABLE(CONFIG_SND_SOC_SOF_NOCODEC). This assures the condition
at the build time, although the error at probe might be a surprising
to some users that don't know this hidden dependency.


thanks,

Takashi


---
sound/soc/sof/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sound/soc/sof/Kconfig b/sound/soc/sof/Kconfig
index b204c65..9c280c9 100644
--- a/sound/soc/sof/Kconfig
+++ b/sound/soc/sof/Kconfig
@@ -44,7 +44,7 @@ config SND_SOC_SOF_OPTIONS
if SND_SOC_SOF_OPTIONS
config SND_SOC_SOF_NOCODEC
- tristate "SOF nocodec mode Support"
+ bool "SOF nocodec mode Support"
help
This adds support for a dummy/nocodec machine driver fallback
option if no known codec is detected. This is typically only
--
2.7.4




_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
https://mailman.alsa-project.org/mailman/listinfo/alsa-devel