Buildresult: linus/sun3_defconfig/m68k-gcc8 built on Jun 12 2022, 05:02
kisskb
Revisions
|
Branches
|
Compilers
|
Configs
|
Build Results
|
Build Failures
|
Status:
OK
Date/Time:
Jun 12 2022, 05:02
Duration:
0:02:57.603526
Builder:
blade4b
Revision:
iov_iter: fix build issue due to possible type mis-match (
1c27f1fc1549f0e470429f5497a76ad28a37f21a)
Target:
linus/sun3_defconfig/m68k-gcc8
Branch:
linus
Compiler:
m68k-gcc8
(m68k-linux-gcc (GCC) 8.5.0 / GNU ld (GNU Binutils) 2.36.1)
Config:
sun3_defconfig
(
download
)
Log:
Download original
Possible warnings (2)
arch/m68k/configs/sun3_defconfig:37:warning: symbol value 'm' invalid for ZPOOL drivers/net/ethernet/i825xx/sun3_82586.c:989:108: warning: array subscript 1 is above array bounds of 'volatile struct transmit_cmd_struct *[1]' [-Warray-bounds]
Full Log
# git rev-parse -q --verify 1c27f1fc1549f0e470429f5497a76ad28a37f21a^{commit} # git fetch -q -n -f git://fs.ozlabs.ibm.com/kernel/linus master # git rev-parse -q --verify 1c27f1fc1549f0e470429f5497a76ad28a37f21a^{commit} 1c27f1fc1549f0e470429f5497a76ad28a37f21a # git checkout -q -f -B kisskb 1c27f1fc1549f0e470429f5497a76ad28a37f21a # git clean -qxdf # < git log -1 # commit 1c27f1fc1549f0e470429f5497a76ad28a37f21a # Author: Linus Torvalds <torvalds@linux-foundation.org> # Date: Sat Jun 11 10:30:20 2022 -0700 # # iov_iter: fix build issue due to possible type mis-match # # Commit 6c77676645ad ("iov_iter: Fix iter_xarray_get_pages{,_alloc}()") # introduced a problem on some 32-bit architectures (at least arm, xtensa, # csky,sparc and mips), that have a 'size_t' that is 'unsigned int'. # # The reason is that we now do # # min(nr * PAGE_SIZE - offset, maxsize); # # where 'nr' and 'offset' and both 'unsigned int', and PAGE_SIZE is # 'unsigned long'. As a result, the normal C type rules means that the # first argument to 'min()' ends up being 'unsigned long'. # # In contrast, 'maxsize' is of type 'size_t'. # # Now, 'size_t' and 'unsigned long' are always the same physical type in # the kernel, so you'd think this doesn't matter, and from an actual # arithmetic standpoint it doesn't. # # But on 32-bit architectures 'size_t' is commonly 'unsigned int', even if # it could also be 'unsigned long'. In that situation, both are unsigned # 32-bit types, but they are not the *same* type. # # And as a result 'min()' will complain about the distinct types (ignore # the "pointer types" part of the error message: that's an artifact of the # way we have made 'min()' check types for being the same): # # lib/iov_iter.c: In function 'iter_xarray_get_pages': # include/linux/minmax.h:20:35: error: comparison of distinct pointer types lacks a cast [-Werror] # 20 | (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1))) # | ^~ # lib/iov_iter.c:1464:16: note: in expansion of macro 'min' # 1464 | return min(nr * PAGE_SIZE - offset, maxsize); # | ^~~ # # This was not visible on 64-bit architectures (where we always define # 'size_t' to be 'unsigned long'). # # Force these cases to use 'min_t(size_t, x, y)' to make the type explicit # and avoid the issue. # # [ Nit-picky note: technically 'size_t' doesn't have to match 'unsigned # long' arithmetically. We've certainly historically seen environments # with 16-bit address spaces and 32-bit 'unsigned long'. # # Similarly, even in 64-bit modern environments, 'size_t' could be its # own type distinct from 'unsigned long', even if it were arithmetically # identical. # # So the above type commentary is only really descriptive of the kernel # environment, not some kind of universal truth for the kinds of wild # and crazy situations that are allowed by the C standard ] # # Reported-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com> # Link: https://lore.kernel.org/all/YqRyL2sIqQNDfky2@debian/ # Cc: Jeff Layton <jlayton@kernel.org> # Cc: David Howells <dhowells@redhat.com> # Cc: Al Viro <viro@zeniv.linux.org.uk> # Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> # < /opt/cross/kisskb/korg/gcc-8.5.0-nolibc/m68k-linux/bin/m68k-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-8.5.0-nolibc/m68k-linux/bin/m68k-linux-ld --version # < git log --format=%s --max-count=1 1c27f1fc1549f0e470429f5497a76ad28a37f21a # < make -s -j 24 ARCH=m68k O=/kisskb/build/linus_sun3_defconfig_m68k-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.5.0-nolibc/m68k-linux/bin/m68k-linux- sun3_defconfig arch/m68k/configs/sun3_defconfig:37:warning: symbol value 'm' invalid for ZPOOL # < make -s -j 24 ARCH=m68k O=/kisskb/build/linus_sun3_defconfig_m68k-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.5.0-nolibc/m68k-linux/bin/m68k-linux- help # make -s -j 24 ARCH=m68k O=/kisskb/build/linus_sun3_defconfig_m68k-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.5.0-nolibc/m68k-linux/bin/m68k-linux- olddefconfig # make -s -j 24 ARCH=m68k O=/kisskb/build/linus_sun3_defconfig_m68k-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.5.0-nolibc/m68k-linux/bin/m68k-linux- In file included from /kisskb/src/include/linux/swab.h:5, from /kisskb/src/include/uapi/linux/byteorder/big_endian.h:14, from /kisskb/src/include/linux/byteorder/big_endian.h:5, from /kisskb/src/arch/m68k/include/uapi/asm/byteorder.h:5, from /kisskb/src/include/asm-generic/bitops/le.h:6, from /kisskb/src/arch/m68k/include/asm/bitops.h:529, from /kisskb/src/include/linux/bitops.h:33, from /kisskb/src/include/linux/kernel.h:22, from /kisskb/src/drivers/net/ethernet/i825xx/sun3_82586.c:31: /kisskb/src/drivers/net/ethernet/i825xx/sun3_82586.c: In function 'sun3_82586_timeout': /kisskb/src/drivers/net/ethernet/i825xx/sun3_82586.c:989:108: warning: array subscript 1 is above array bounds of 'volatile struct transmit_cmd_struct *[1]' [-Warray-bounds] printk("%s: command-stats: %04x %04x\n",dev->name,swab16(p->xmit_cmds[0]->cmd_status),swab16(p->xmit_cmds[1]->cmd_status)); ~~~~~~~~~~~~^~~ /kisskb/src/include/uapi/linux/swab.h:107:12: note: in definition of macro '__swab16' __fswab16(x)) ^ /kisskb/src/include/linux/printk.h:475:26: note: in expansion of macro 'printk_index_wrap' #define printk(fmt, ...) printk_index_wrap(_printk, fmt, ##__VA_ARGS__) ^~~~~~~~~~~~~~~~~ /kisskb/src/drivers/net/ethernet/i825xx/sun3_82586.c:989:3: note: in expansion of macro 'printk' printk("%s: command-stats: %04x %04x\n",dev->name,swab16(p->xmit_cmds[0]->cmd_status),swab16(p->xmit_cmds[1]->cmd_status)); ^~~~~~ Completed OK # rm -rf /kisskb/build/linus_sun3_defconfig_m68k-gcc8 # Build took: 0:02:57.603526
© Michael Ellerman 2006-2018.