2017-12-17 03:01:38

by Fengguang Wu

[permalink] [raw]
Subject: [linus:master] BUILD REGRESSION f3b5ad89de16f5d42e8ad36fbdf85f705c1ae051

tree/branch: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
branch HEAD: f3b5ad89de16f5d42e8ad36fbdf85f705c1ae051 Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma

Regressions in current branch:

cc1: error: '-march=r3900' requires '-mfp32'
fs/cramfs/inode.c:641: undefined reference to `mtd_point'
fs/cramfs/inode.c:658: undefined reference to `mtd_unpoint'
fs/cramfs/inode.c:959: undefined reference to `mount_mtd'
fs/xfs/xfs_ioctl.c:1629:1: internal compiler error: in change_address_1, at emit-rtl.c:2150
Please submit a full bug report,
{standard input}:1226: Error: displacement to undefined symbol .L329 overflows 12-bit field
{standard input}:1233: Error: displacement to undefined symbol .L331 overflows 12-bit field
{standard input}:1253: Error: displacement to undefined symbol .L359 overflows 12-bit field
{standard input}:1278: Error: displacement to undefined symbol .L360 overflows 12-bit field
{standard input}:1408: Error: invalid operands for opcode
{standard input}:1408: Error: missing operand
{standard input}:1893: Error: displacement to undefined symbol .L229 overflows 12-bit field
{standard input}:2013: Error: displacement to undefined symbol .L235 overflows 12-bit field
{standard input}:2299: Error: invalid operands for opcode
{standard input}:2299: Error: missing operand
{standard input}: Error: open CFI at the end of file; missing .cfi_endproc directive
verifier.c:(.text+0x372c): undefined reference to `__multi3'

Error ids grouped by kconfigs:

recent_errors
├── i386-randconfig-x018-201751
│   ├── fs-cramfs-inode.c:undefined-reference-to-mount_mtd
│   ├── fs-cramfs-inode.c:undefined-reference-to-mtd_point
│   └── fs-cramfs-inode.c:undefined-reference-to-mtd_unpoint
├── i386-randconfig-x073-201751
│   ├── fs-cramfs-inode.c:undefined-reference-to-mount_mtd
│   ├── fs-cramfs-inode.c:undefined-reference-to-mtd_point
│   └── fs-cramfs-inode.c:undefined-reference-to-mtd_unpoint
├── mips-64r6el_defconfig
│   └── verifier.c:(.text):undefined-reference-to-__multi3
├── mips-jmr3927_defconfig
│   └── cc1:error:march-r3900-requires-mfp32
├── sh-allmodconfig
│   ├── fs-xfs-xfs_ioctl.c:internal-compiler-error:in-change_address_1-at-emit-rtl.c
│   ├── Please-submit-a-full-bug-report
│   ├── standard-input:Error:displacement-to-undefined-symbol-.L229-overflows-bit-field
│   ├── standard-input:Error:displacement-to-undefined-symbol-.L235-overflows-bit-field
│   ├── standard-input:Error:invalid-operands-for-opcode
│   ├── standard-input:Error:missing-operand
│   └── standard-input:Error:open-CFI-at-the-end-of-file-missing-.cfi_endproc-directive
├── sh-allyesconfig
│   ├── fs-xfs-xfs_ioctl.c:internal-compiler-error:in-change_address_1-at-emit-rtl.c
│   ├── standard-input:Error:invalid-operands-for-opcode
│   ├── standard-input:Error:missing-operand
│   └── standard-input:Error:open-CFI-at-the-end-of-file-missing-.cfi_endproc-directive
├── sh-titan_defconfig
│   ├── fs-xfs-xfs_ioctl.c:internal-compiler-error:in-change_address_1-at-emit-rtl.c
│   ├── Please-submit-a-full-bug-report
│   ├── standard-input:Error:displacement-to-undefined-symbol-.L329-overflows-bit-field
│   ├── standard-input:Error:displacement-to-undefined-symbol-.L331-overflows-bit-field
│   ├── standard-input:Error:displacement-to-undefined-symbol-.L359-overflows-bit-field
│   ├── standard-input:Error:displacement-to-undefined-symbol-.L360-overflows-bit-field
│   ├── standard-input:Error:invalid-operands-for-opcode
│   └── standard-input:Error:missing-operand
└── x86_64-randconfig-x015-201751
├── fs-cramfs-inode.c:undefined-reference-to-mount_mtd
├── fs-cramfs-inode.c:undefined-reference-to-mtd_point
└── fs-cramfs-inode.c:undefined-reference-to-mtd_unpoint


i386-tinyconfig vmlinux size:

=================================================================================================================================
TOTAL TEXT workqueue_offline_cpu() wq_unbind_fn()
=================================================================================================================================
0 0 0 0 dabe589657ad Merge branch 'efi-urgent-for-linus' of git://git.kernel.org/
-8 0 0 0 61d6be3a7a11 Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/
0 0 0 0 189dbab0dddc Merge branch 'locking-urgent-for-linus' of git://git.kernel.
+20 +20 0 0 1c7647253c64 Merge branch 'perf-urgent-for-linus' of git://git.kernel.org
-1 -1 0 0 e017b4db26d0 Merge branch 'sched-urgent-for-linus' of git://git.kernel.or
0 0 0 0 4b43a3bc20ec Merge branch 'smp-urgent-for-linus' of git://git.kernel.org/
+95 +95 0 0 dd53a4214d4f Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/
0 0 0 0 968edbd93c0c Merge tag 'for_linus-4.15-rc2' of git://git.kernel.org/pub/s
+1 0 0 0 7ed9fd2e2916 Merge tag 'pm-4.15-rc3' of git://git.kernel.org/pub/scm/linu
0 0 0 0 3625de4b2872 Merge tag 'acpi-4.15-rc3' of git://git.kernel.org/pub/scm/li
0 0 0 0 900add27f556 Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/
0 0 0 0 78d9b048446c Merge tag 'devicetree-fixes-for-4.15-part2' of git://git.ker
0 0 0 0 7267212c80ce Merge tag 'md/4.15-rc2' of git://git.kernel.org/pub/scm/linu
0 0 0 0 4066aa72f9f2 Merge tag 'drm-fixes-for-v4.15-rc3' of git://people.freedesk
0 0 0 0 77071bc6c472 Merge tag 'media/v4.15-2' of git://git.kernel.org/pub/scm/li
-6 0 0 0 e9ef1fe312b5 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/ne
0 0 0 0 f335195adf04 kmemcheck: rip it out for real
0 0 0 0 c465fc11e579 Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/k
0 0 0 0 9c02e0601b9a Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/lin
0 0 0 0 51090c5d6de0 Merge tag 'for-4.15-rc3-tag' of git://git.kernel.org/pub/scm
+5 0 0 0 d70ef22892ed futex: futex_wake_op, fix sign_extend32 sign bits
0 0 0 0 98087c05b9fc hpfs: don't bother with the i_version counter or f_version
-6 0 0 0 50c4c4e268a2 Linux 4.15-rc3
+6 0 0 0 916b20e02e15 Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/k
0 0 0 0 bfb529ee790f Merge tag 'for-linus-4.15-2' of git://github.com/cminyard/li
0 0 0 0 a83cb7e6ada1 Merge branch 'for-4.15-fixes' of git://git.kernel.org/pub/sc
-51 -51 +69 -111 72dd379e67fb Merge branch 'for-4.15-fixes' of git://git.kernel.org/pub/sc
0 0 0 085bec853afd Merge branch 'for-4.15-fixes' of git://git.kernel.org/pub/sc
0 0 0 a638349bf6c2 Merge branch 'for-4.15-fixes' of git://git.kernel.org/pub/sc
0 0 0 d39a01eff9af Merge tag 'platform-drivers-x86-v4.15-3' of git://git.infrad
+5 0 0 e375922fc5e5 Merge tag 'drm-misc-fixes-2017-12-14' of git://anongit.freed
0 0 0 d455df0bcc00 Merge tag '4.15-rc-smb3' of git://git.samba.org/sfrench/cifs
-5 0 0 c47d7f56e914 include/linux/idr.h: add #include <linux/bug.h>
+22 +22 0 338f1d9d1b82 lib/rbtree,drm/mm: add rbtree_replace_node_cached()
0 0 0 1f704fd0d140 mm/frame_vector.c: release a semaphore in 'get_vaddr_frames(
0 0 0 04243787812c Merge tag 'trace-v4.15-rc1' of git://git.kernel.org/pub/scm/
0 0 0 032b4cc8ff84 Merge tag 'pm-4.15-rc4' of git://git.kernel.org/pub/scm/linu
0 0 0 bde6b37e4983 Merge tag 'for-linus-4.15-rc4-tag' of git://git.kernel.org/p
0 0 0 35d57884804c Merge branch 'core-urgent-for-linus' of git://git.kernel.org
0 0 0 3fba36145cc4 Merge branch 'perf-urgent-for-linus' of git://git.kernel.org
0 0 0 a58653cc1e8b Merge branch 'sched-urgent-for-linus' of git://git.kernel.or
0 0 0 1f76a75561a0 Merge branch 'locking-urgent-for-linus' of git://git.kernel.
0 0 0 e53000b1ed93 Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/
0 0 0 06f976ecc7af Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linu
0 0 0 227701e0e707 Merge branch 'overlayfs-linus' of git://git.kernel.org/pub/s
0 0 0 dd3d66b8381a Merge tag 'ceph-for-4.15-rc4' of git://github.com/ceph/ceph-
0 0 0 07a20ed1e3c2 Merge tag 'mmc-v4.15-rc2' of git://git.kernel.org/pub/scm/li
0 0 0 66dbbd72005c Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux
0 0 0 ee1b43ece153 Merge tag 'for-4.15/dm-fixes' of git://git.kernel.org/pub/sc
0 0 0 d6e47eed0501 Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/
0 0 0 a84ec72324e2 Merge tag 'staging-4.15-rc4' of git://git.kernel.org/pub/scm
0 0 0 c36c7a7c4034 Merge tag 'usb-4.15-rc4' of git://git.kernel.org/pub/scm/lin
0 0 0 7a3c296ae08f Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/ne
-46 -46 0 f6f3732162b5 Revert "mm: replace p??_write with pte_access_permitted in f
0 0 0 d025fbf1a2cd Merge tag 'nfs-for-4.15-3' of git://git.linux-nfs.org/projec
0 0 0 f25e22956058 Merge branch 'i2c/for-current' of git://git.kernel.org/pub/s
0 0 0 f3b5ad89de16 Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/
+35 +39 +69 -111 07eca14b6fdd..f3b5ad89de16 (ALL COMMITS)
=================================================================================================================================

elapsed time: 270m

configs tested: 131

x86_64 allmodconfig
i386 tinyconfig
microblaze mmu_defconfig
microblaze nommu_defconfig
i386 randconfig-n0-201751
powerpc defconfig
s390 default_defconfig
powerpc ppc64_defconfig
i386 randconfig-i1-201751
i386 randconfig-i0-201751
x86_64 acpi-redef
x86_64 allyesdebian
x86_64 nfsroot
arm at91_dt_defconfig
arm allnoconfig
arm efm32_defconfig
arm64 defconfig
arm multi_v5_defconfig
arm sunxi_defconfig
arm64 allnoconfig
arm exynos_defconfig
arm shmobile_defconfig
arm multi_v7_defconfig
mn10300 asb2364_defconfig
openrisc or1ksim_defconfig
um x86_64_defconfig
um i386_defconfig
frv defconfig
tile tilegx_defconfig
i386 randconfig-a0-201751
i386 randconfig-a1-201751
cris etrax-100lx_v2_defconfig
blackfin TCM-BF537_defconfig
blackfin BF561-EZKIT-SMP_defconfig
blackfin BF533-EZKIT_defconfig
blackfin BF526-EZBRD_defconfig
x86_64 randconfig-x012-201751
x86_64 randconfig-x010-201751
x86_64 randconfig-x011-201751
x86_64 randconfig-x015-201751
x86_64 randconfig-x019-201751
x86_64 randconfig-x014-201751
x86_64 randconfig-x013-201751
x86_64 randconfig-x016-201751
x86_64 randconfig-x017-201751
x86_64 randconfig-x018-201751
i386 allnoconfig
i386 defconfig
i386 alldefconfig
m68k sun3_defconfig
m68k multi_defconfig
m68k m5475evb_defconfig
i386 randconfig-s1-201751
i386 randconfig-s0-201751
i386 allmodconfig
x86_64 randconfig-i0-201751
sparc defconfig
sparc64 allnoconfig
sparc64 defconfig
c6x evmc6678_defconfig
xtensa common_defconfig
m32r m32104ut_defconfig
score spct6600_defconfig
xtensa iss_defconfig
m32r opsput_defconfig
m32r usrv_defconfig
m32r mappi3.smp_defconfig
nios2 10m50_defconfig
h8300 h8300h-sim_defconfig
i386 randconfig-x016-201751
i386 randconfig-x011-201751
i386 randconfig-x014-201751
i386 randconfig-x017-201751
i386 randconfig-x019-201751
i386 randconfig-x018-201751
i386 randconfig-x010-201751
i386 randconfig-x013-201751
i386 randconfig-x015-201751
i386 randconfig-x012-201751
i386 randconfig-x072-201751
i386 randconfig-x078-201751
i386 randconfig-x071-201751
i386 randconfig-x077-201751
i386 randconfig-x070-201751
i386 randconfig-x074-201751
i386 randconfig-x073-201751
i386 randconfig-x079-201751
i386 randconfig-x076-201751
i386 randconfig-x075-201751
sh titan_defconfig
sh rsk7269_defconfig
sh sh7785lcr_32bit_defconfig
sh allnoconfig
i386 randconfig-x007-201751
i386 randconfig-x008-201751
i386 randconfig-x009-201751
i386 randconfig-x004-201751
i386 randconfig-x002-201751
i386 randconfig-x005-201751
i386 randconfig-x001-201751
i386 randconfig-x006-201751
i386 randconfig-x003-201751
i386 randconfig-x000-201751
ia64 allnoconfig
ia64 defconfig
ia64 alldefconfig
parisc c3000_defconfig
parisc b180_defconfig
parisc defconfig
alpha defconfig
parisc allnoconfig
x86_64 randconfig-x003-201751
x86_64 randconfig-x002-201751
x86_64 randconfig-x006-201751
x86_64 randconfig-x007-201751
x86_64 randconfig-x000-201751
x86_64 randconfig-x005-201751
x86_64 randconfig-x004-201751
x86_64 randconfig-x009-201751
x86_64 randconfig-x008-201751
x86_64 randconfig-x001-201751
x86_64 kexec
x86_64 rhel
x86_64 rhel-7.2
mips jz4740
mips malta_kvm_defconfig
mips 64r6el_defconfig
mips 32r2_defconfig
mips allnoconfig
mips fuloong2e_defconfig
mips txx9

Thanks,
Fengguang


2017-12-17 03:24:46

by Linus Torvalds

[permalink] [raw]
Subject: Re: [linus:master] BUILD REGRESSION f3b5ad89de16f5d42e8ad36fbdf85f705c1ae051

Nico,

On Sat, Dec 16, 2017 at 7:00 PM, kbuild test robot
<[email protected]> wrote:
>
> fs/cramfs/inode.c:641: undefined reference to `mtd_point'
> fs/cramfs/inode.c:658: undefined reference to `mtd_unpoint'
> fs/cramfs/inode.c:959: undefined reference to `mount_mtd'

This does seem to be real.

As of 99c18ce580c6 ("cramfs: direct memory access support") cramfs
seems to require MTD, but that's not expressed in the Kconfig.

Oddly, _some_ of the mtd functions are protected with

if (IS_ENABLED(CCONFIG_CRAMFS_MTD) ..)

but cramfs_mtd_fill_super() is not.

It is only *used* if CONFIG_CRAMFS_MTD is enabled (the call to
mount_mtd(.., cramfs_mtd_fill_super) is conditional, but..

Linus

2017-12-17 03:46:11

by Nicolas Pitre

[permalink] [raw]
Subject: Re: [linus:master] BUILD REGRESSION f3b5ad89de16f5d42e8ad36fbdf85f705c1ae051

On Sat, 16 Dec 2017, Linus Torvalds wrote:

> Nico,
>
> On Sat, Dec 16, 2017 at 7:00 PM, kbuild test robot
> <[email protected]> wrote:
> >
> > fs/cramfs/inode.c:641: undefined reference to `mtd_point'
> > fs/cramfs/inode.c:658: undefined reference to `mtd_unpoint'
> > fs/cramfs/inode.c:959: undefined reference to `mount_mtd'
>
> This does seem to be real.
>
> As of 99c18ce580c6 ("cramfs: direct memory access support") cramfs
> seems to require MTD, but that's not expressed in the Kconfig.

That was reported a while ago. The fix didn't make it up to you somehow.
Please apply the following:

----- >8
Date: Fri, 10 Nov 2017 15:57:21 +0100
From: Arnd Bergmann <[email protected]>
Subject: [PATCH] cramfs: fix MTD dependency

With CONFIG_MTD=m and CONFIG_CRAMFS=y, we now get a link failure:

fs/cramfs/inode.o: In function `cramfs_mount':
inode.c:(.text+0x220): undefined reference to `mount_mtd'
fs/cramfs/inode.o: In function `cramfs_mtd_fill_super':
inode.c:(.text+0x6d8): undefined reference to `mtd_point'
inode.c:(.text+0xae4): undefined reference to `mtd_unpoint'

This adds a more specific Kconfig dependency to avoid the
broken configuration. Alternatively we could make CRAMFS
itself depend on "MTD || !MTD" with a similar result.

Fixes: 99c18ce580c6 ("cramfs: direct memory access support")
Signed-off-by: Arnd Bergmann <[email protected]>
Signed-off-by: Nicolas Pitre <[email protected]>
---
fs/cramfs/Kconfig | 1 +
1 file changed, 1 insertion(+)

diff --git a/fs/cramfs/Kconfig b/fs/cramfs/Kconfig
index f937082f3244..58e2fe40b2a0 100644
--- a/fs/cramfs/Kconfig
+++ b/fs/cramfs/Kconfig
@@ -34,6 +34,7 @@ config CRAMFS_BLOCKDEV
config CRAMFS_MTD
bool "Support CramFs image directly mapped in physical memory"
depends on CRAMFS && MTD
+ depends on CRAMFS=m || MTD=y
default y if !CRAMFS_BLOCKDEV
help
This option allows the CramFs driver to load data directly from

2017-12-17 15:25:42

by Al Viro

[permalink] [raw]
Subject: Re: [linus:master] BUILD REGRESSION f3b5ad89de16f5d42e8ad36fbdf85f705c1ae051

On Sat, Dec 16, 2017 at 10:46:05PM -0500, Nicolas Pitre wrote:
> Date: Fri, 10 Nov 2017 15:57:21 +0100
> From: Arnd Bergmann <[email protected]>
> Subject: [PATCH] cramfs: fix MTD dependency
>
> With CONFIG_MTD=m and CONFIG_CRAMFS=y, we now get a link failure:
>
> fs/cramfs/inode.o: In function `cramfs_mount':
> inode.c:(.text+0x220): undefined reference to `mount_mtd'
> fs/cramfs/inode.o: In function `cramfs_mtd_fill_super':
> inode.c:(.text+0x6d8): undefined reference to `mtd_point'
> inode.c:(.text+0xae4): undefined reference to `mtd_unpoint'
>
> This adds a more specific Kconfig dependency to avoid the
> broken configuration. Alternatively we could make CRAMFS
> itself depend on "MTD || !MTD" with a similar result.
>
> Fixes: 99c18ce580c6 ("cramfs: direct memory access support")
> Signed-off-by: Arnd Bergmann <[email protected]>
> Signed-off-by: Nicolas Pitre <[email protected]>
> ---
> fs/cramfs/Kconfig | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/fs/cramfs/Kconfig b/fs/cramfs/Kconfig
> index f937082f3244..58e2fe40b2a0 100644
> --- a/fs/cramfs/Kconfig
> +++ b/fs/cramfs/Kconfig
> @@ -34,6 +34,7 @@ config CRAMFS_BLOCKDEV
> config CRAMFS_MTD
> bool "Support CramFs image directly mapped in physical memory"
> depends on CRAMFS && MTD
> + depends on CRAMFS=m || MTD=y

*Ugh*

So basically the trouble case is CRAMFS=y, MTD=m; in that situation
mount_mtd() et.al. are not stubbed out at compiler level (as they
would with CRAMFS=y, MTD=n) and we end up with linker catching that.
Not pretty solution, but...

Linus, would you take that directly or should I include it into vfs.git
pull request?

2017-12-17 20:22:40

by Linus Torvalds

[permalink] [raw]
Subject: Re: [linus:master] BUILD REGRESSION f3b5ad89de16f5d42e8ad36fbdf85f705c1ae051

On Sun, Dec 17, 2017 at 7:25 AM, Al Viro <[email protected]> wrote:
>
> Linus, would you take that directly or should I include it into vfs.git
> pull request?

I just took it directly, since you had in the meantime already
generated the pull request for the other issues, and I had a lazy late
Saturday morning..

Linus