Re: include/uapi/sound/asound.h:562:14: error: conflicting types for '__pad_before_uframe'

From: Arnd Bergmann
Date: Tue Nov 03 2020 - 04:57:41 EST


On Mon, Nov 2, 2020 at 3:15 PM kernel test robot <lkp@xxxxxxxxx> wrote:
>
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head: 3cea11cd5e3b00d91caf0b4730194039b45c5891
> commit: 80fe7430c7085951d1246d83f638cc17e6c0be36 ALSA: add new 32-bit layout for snd_pcm_mmap_status/control
> date: 11 months ago
> config: mips-randconfig-r006-20201102 (attached as .config)
> compiler: mips-linux-gcc (GCC) 9.3.0
> reproduce (this is a W=1 build):
> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=80fe7430c7085951d1246d83f638cc17e6c0be36
> git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
> git fetch --no-tags linus master
> git checkout 80fe7430c7085951d1246d83f638cc17e6c0be36
> # save the attached .config to linux build tree
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=mips
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@xxxxxxxxx>
>
> All errors (new ones prefixed by >>):
>
> In file included from arch/mips/include/uapi/asm/byteorder.h:13,
> from arch/mips/include/asm/bitops.h:20,
> from include/linux/bitops.h:26,
> from include/linux/kernel.h:12,
> from include/asm-generic/bug.h:19,
> from arch/mips/include/asm/bug.h:42,
> from include/linux/bug.h:5,
> from include/linux/mmdebug.h:5,
> from include/linux/gfp.h:5,
> from include/linux/slab.h:15,
> from sound/core/oss/pcm_oss.c:15:
> include/linux/byteorder/big_endian.h:8:2: warning: #warning inconsistent configuration, needs CONFIG_CPU_BIG_ENDIAN [-Wcpp]
> 8 | #warning inconsistent configuration, needs CONFIG_CPU_BIG_ENDIAN
> | ^~~~~~~
> In file included from include/sound/asound.h:24,
> from include/sound/pcm.h:11,
> from sound/core/oss/pcm_oss.c:25:
> >> include/uapi/sound/asound.h:562:14: error: conflicting types for '__pad_before_uframe'
> 562 | typedef char __pad_before_uframe[0];
> | ^~~~~~~~~~~~~~~~~~~
> include/uapi/sound/asound.h:557:14: note: previous declaration of '__pad_before_uframe' was here
> 557 | typedef char __pad_before_uframe[sizeof(__u64) - sizeof(snd_pcm_uframes_t)];
> | ^~~~~~~~~~~~~~~~~~~

This is unrelated to my patch, and a preexisting problem with the jazz platform
when no specific machine is selected and neither big-endian nor little-endian
CPUs are enabled. Since all three machines do allow little-endian kernels,
selecting that option one level higher fixes the problem.

Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>

--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -406,6 +406,7 @@ config MACH_JAZZ
select SYS_SUPPORTS_32BIT_KERNEL
select SYS_SUPPORTS_64BIT_KERNEL
select SYS_SUPPORTS_100HZ
+ select SYS_SUPPORTS_LITTLE_ENDIAN
help
This a family of machines based on the MIPS R4030 chipset which was
used by several vendors to build RISC/os and Windows NT workstations.