Re: [alsa-devel] [PATCH] ASoC: fsl: fix fsl_spdif.c build errors

From: Randy Dunlap
Date: Sun Nov 06 2016 - 17:19:58 EST


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.

> 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