Re: [alsa-devel] [PATCH] ASoC: fsl: fix fsl_spdif.c build errors
From: Kees Cook
Date: Tue Nov 08 2016 - 16:38:09 EST
On Sun, Nov 6, 2016 at 1:40 PM, Randy Dunlap <rdunlap@xxxxxxxxxxxxx> wrote:
> On 11/06/16 11:43, Fabio Estevam wrote:
>> Hi Randy,
>>
>> On Sat, Nov 5, 2016 at 9:16 PM, Randy Dunlap <rdunlap@xxxxxxxxxxxxx> wrote:
>>> From: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
>>>
>>> Fix build errors in sound/soc/fsl/fsl_spdif.c by selecting BITREVERSE.
>>> Fixes these build errors:
>>
>> Care to explain why the error is happening?
>
> The driver uses bitreverse functions but does not select BITREVERSE
> in its kconfig description, so the bitrev functions are not built
> into the kernel. In the kbuild robot supplied config file,
> FSL_SPDIF=y and BITREVERSE=m, which causes the build error.
> By having this driver select BITREVERSE, CONFIG_BITREVERSE=y so there
> is no build error.
>
>>> sound/built-in.o: In function `spdif_write_channel_status':
>>> fsl_spdif.c:(.text+0xbe39d): undefined reference to `byte_rev_table'
>>> fsl_spdif.c:(.text+0xbe3a8): undefined reference to `byte_rev_table'
>>> fsl_spdif.c:(.text+0xbe3be): undefined reference to `byte_rev_table'
>>> fsl_spdif.c:(.text+0xbe3d8): undefined reference to `byte_rev_table'
>>>
>>> Signed-off-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
>>> Reported-by: kbuild test robot <fengguang.wu@xxxxxxxxx>
>>> Applies-to: all 3.x, all 4.x
>>
>> Not sure if this last line is correct. The kbuild report says this
>> error starts to happen with:
>> commit: 8cfc8ddc99df9509a46043b14af81f5c6a223eab pstore: add lzo/lz4
>> compression support
>
> That commit makes no sense to me regarding this build error.
>
> This driver uses bitrev functions even way back in 3.x so this
> patch could be applied to many stable kernel versions.
Yeah, I scratched my head on this too, but noted that the 0-day report
was from a 5 month old build, so I kind of assumed it was an 0-day
glitch.
-Kees
>
>> on a x86_64 randconfig.
>>
>> Also, why only SND_SOC_FSL_SPDIF needs to have BITREVERSE selected?
>
> It's the only source file in sound/soc/fsl/ that uses bitreverse functions.
>
>
> --
> ~Randy
--
Kees Cook
Nexus Security