lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1e7e1908-a813-6c9b-5b88-122864d3a372@linux.intel.com>
Date:   Fri, 10 May 2019 08:34:03 -0500
From:   Pierre-Louis Bossart <pierre-louis.bossart@...ux.intel.com>
To:     Takashi Iwai <tiwai@...e.de>
Cc:     alsa-devel@...a-project.org, linux-kernel@...r.kernel.org,
        rdunlap@...radead.org, YueHaibing <yuehaibing@...wei.com>,
        lgirdwood@...il.com, broonie@...nel.org
Subject: Re: [alsa-devel] [PATCH] ASoC: SOF: Fix build error with
 CONFIG_SND_SOC_SOF_NOCODEC=m

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@...wei.com>
>>>> Fixes: c16211d6226d ("ASoC: SOF: Add Sound Open Firmware driver core")
>>>> Signed-off-by: YueHaibing <yuehaibing@...wei.com>
>>>
>>> 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@...a-project.org
> https://mailman.alsa-project.org/mailman/listinfo/alsa-devel
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ