Commit f9afbd45b0d0 broke mips r4k.
My aboriginal linux project builds tiny linux systems to run under qemu, producing as close to the same system as possible across a bunch of different architectures. The above change broke the mips r4k build I've been running under qemu.
Here's a toolchain and reproduction sequence:
wget http://landley.net/aboriginal/bin/cross-compiler-mips.tar.bz2
tar xvjf cross-compiler-mips.tar.bz2
export PATH=$PWD/cross-compiler-mips/bin:$PATH
make ARCH=mips allnoconfig KCONFIG_ALLCONFIG=miniconfig.mips make CROSS_COMPILE=mips- ARCH=mips
(The file miniconfig.mips is attached.)
It ends:
CC init/version.o
LD init/built-in.oarch/mips/built-in.o: In function `local_r4k_flush_cache_page':
c-r4k.c:(.text+0xe278): undefined reference to kvm_local_flush_tlb_all' c-r4k.c:(.text+0xe278): relocation truncated to fit: R_MIPS_26 against kvm_local_flush_tlb_all' arch/mips/built-in.o: In function `local_flush_tlb_range':
(.text+0xe938): undefined reference to kvm_local_flush_tlb_all' arch/mips/built-in.o: In function local_flush_tlb_range':
(.text+0xe938): relocation truncated to fit: R_MIPS_26 against kvm_local_flush_tlb_all' arch/mips/built-in.o: In function local_flush_tlb_mm':
(.text+0xed38): undefined reference to kvm_local_flush_tlb_all' arch/mips/built-in.o: In function local_flush_tlb_mm':
(.text+0xed38): relocation truncated to fit: R_MIPS_26 against kvm_local_flush_tlb_all' kernel/built-in.o: In function __schedule':
core.c:(.sched.text+0x16a0): undefined reference to kvm_local_flush_tlb_all' core.c:(.sched.text+0x16a0): relocation truncated to fit: R_MIPS_26 against kvm_local_flush_tlb_all' mm/built-in.o: In function `use_mm':
(.text+0x182c8): undefined reference to `kvm_local_flush_tlb_all'mm/built-in.o: In function `use_mm':
(.text+0x182c8): relocation truncated to fit: R_MIPS_26 against kvm_local_flush_tlb_all' fs/built-in.o:(.text+0x7b50): more undefined references to kvm_local_flush_tlb_all' follow fs/built-in.o: In function `flush_old_exec':
(.text+0x7b50): relocation truncated to fit: R_MIPS_26 against `kvm_local_flush_tlb_all'
Revert the above commit and it builds to the end.
Rob
CONFIG_EXPERIMENTAL=yCONFIG_NO_HZ=yCONFIG_SWAP=yCONFIG_SYSVIPC=yCONFIG_IKCONFIG=yCONFIG_IKCONFIG_PROC=yCONFIG_CC_OPTIMIZE_FOR_SIZE=yCONFIG_PCI=yCONFIG_BINFMT_ELF=yCONFIG_BINFMT_SCRIPT=yCONFIG_MAGIC_SYSRQ=y
CONFIG_BLK_DEV=yCONFIG_BLK_DEV_LOOP=y
CONFIG_IDE=yCONFIG_IDE_GD=yCONFIG_IDE_GD_ATA=yCONFIG_BLK_DEV_IDECD=y
CONFIG_SCSI=yCONFIG_BLK_DEV_SD=yCONFIG_BLK_DEV_SR=yCONFIG_SCSI_LOWLEVEL=y
CONFIG_NET=yCONFIG_PACKET=yCONFIG_UNIX=yCONFIG_INET=y
CONFIG_NETDEVICES=yCONFIG_NET_ETHERNET=yCONFIG_NET_PCI=yCONFIG_8139CP=y
CONFIG_HW_RANDOM=y
CONFIG_RTC_CLASS=yCONFIG_RTC_HCTOSYS=yCONFIG_RTC_INTF_SYSFS=yCONFIG_RTC_INTF_DEV=y
CONFIG_EXT4_FS=yCONFIG_EXT4_USE_FOR_EXT23=yCONFIG_TMPFS=yCONFIG_MISC_FILESYSTEMS=yCONFIG_SQUASHFS=yCONFIG_SQUASHFS_ZLIB=yCONFIG_DEVTMPFS=y
CONFIG_VIRTUALIZATION=yCONFIG_VIRTIO_PCI=yCONFIG_VIRTIO_NET=yCONFIG_NET_9P=yCONFIG_NET_9P_VIRTIO=yCONFIG_NETWORK_FILESYSTEMS=yCONFIG_9P_FS=yCONFIG_9P_FS_POSIX_ACL=y
# More random (inexplicable) guard symbols added in 3.2. TODO: write
# miniconfig expander that automatically sets guard symbols when setting a # dependent symbol.
CONFIG_ETHERNET=yCONFIG_NET_VENDOR_INTEL=yCONFIG_NET_VENDOR_REALTEK=yCONFIG_NET_VENDOR_AMD=yCONFIG_NET_VENDOR_NATSEMI=yCONFIG_NET_VENDOR_8390=y
CONFIG_MIPS_MALTA=yCONFIG_CPU_MIPS32_R2=yCONFIG_SERIAL_8250=yCONFIG_SERIAL_8250_CONSOLE=y
#CONFIG_PM=yCONFIG_PCNET32=yCONFIG_BLK_DEV_PIIX=y
Quoted 49 lines · Rob Landley
My aboriginal linux project builds tiny linux systems to run under qemu, producing as close to the same system as possible across a bunch of different architectures. The above change broke the mips r4k build I've been running under qemu.
Here's a toolchain and reproduction sequence:
wget http://landley.net/aboriginal/bin/cross-compiler-mips.tar.bz2
tar xvjf cross-compiler-mips.tar.bz2
export PATH=$PWD/cross-compiler-mips/bin:$PATH
make ARCH=mips allnoconfig KCONFIG_ALLCONFIG=miniconfig.mips make CROSS_COMPILE=mips- ARCH=mips(The file miniconfig.mips is attached.)
It ends:
CC
init/version.o
LDinit/built-in.oarch/mips/built-in.o: In function `local_r4k_flush_cache_page':
c-r4k.c:(.text+0xe278): undefined reference tokvm_local_flush_tlb_all' c-r4k.c:(.text+0xe278): relocation truncated to fit: R_MIPS_26 againstkvm_local_flush_tlb_all'arch/mips/built-in.o: In function `local_flush_tlb_range':
(.text+0xe938): undefined reference tokvm_local_flush_tlb_all' arch/mips/built-in.o: In functionlocal_flush_tlb_range':
(.text+0xe938): relocation truncated to fit:R_MIPS_26against `kvm_local_flush_tlb_all'arch/mips/built-in.o: In function `local_flush_tlb_mm':
(.text+0xed38): undefined reference tokvm_local_flush_tlb_all' arch/mips/built-in.o: In functionlocal_flush_tlb_mm':
(.text+0xed38): relocation truncated to fit:R_MIPS_26against `kvm_local_flush_tlb_all'kernel/built-in.o: In function `__schedule':
core.c:(.sched.text+0x16a0): undefined reference to `kvm_local_flush_tlb_all'
core.c:(.sched.text+0x16a0): relocation truncated to fit:R_MIPS_26against `kvm_local_flush_tlb_all'mm/built-in.o: In function `use_mm':
(.text+0x182c8): undefined reference tokvm_local_flush_tlb_all' mm/built-in.o: In functionuse_mm':
(.text+0x182c8): relocation truncated to fit:R_MIPS_26against `kvm_local_flush_tlb_all'
fs/built-in.o:(.text+0x7b50): more undefined references to `kvm_local_flush_tlb_all' followfs/built-in.o: In function `flush_old_exec':
(.text+0x7b50): relocation truncated to fit:R_MIPS_26against `kvm_local_flush_tlb_all'
Quoted 1 line
Revert the above commit and it builds to the end.
Commit d414976d1ca721456f7b7c603a8699d117c2ec07 [MIPS: include:mmu_context.h: Replace VIRTUALIZATION with KVM] fixes the issue and was pulled by Linus only yesterday. I cannot reproduce the error following your receipe using the latest Linux/MIPS tree.
Ralf
Quoted 52 lines · Ralf Baechle
Quoted 13 lines · Rob Landley
My aboriginal linux project builds tiny linux systems to run under qemu, producing as close to the same system as possible across a bunch of different architectures. The above change broke the mips r4k build I've been running under qemu.
Here's a toolchain and reproduction sequence:
wget http://landley.net/aboriginal/bin/cross-compiler-mips.tar.bz2
tar xvjf cross-compiler-mips.tar.bz2
export PATH=$PWD/cross-compiler-mips/bin:$PATH
make ARCH=mips allnoconfig KCONFIG_ALLCONFIG=miniconfig.mips make CROSS_COMPILE=mips- ARCH=mipsQuoted 8 lines
(The file miniconfig.mips is attached.)
It ends:
CC
init/version.o
LDinit/built-in.oarch/mips/built-in.o: In function `local_r4k_flush_cache_page':
c-r4k.c:(.text+0xe278): undefined reference to`kvm_local_flush_tlb_all'
Quoted 28 lines
c-r4k.c:(.text+0xe278): relocation truncated to fit:
R_MIPS_26against `kvm_local_flush_tlb_all'arch/mips/built-in.o: In function `local_flush_tlb_range':
(.text+0xe938): undefined reference tokvm_local_flush_tlb_all' arch/mips/built-in.o: In functionlocal_flush_tlb_range':
(.text+0xe938): relocation truncated to fit:R_MIPS_26against `kvm_local_flush_tlb_all'arch/mips/built-in.o: In function `local_flush_tlb_mm':
(.text+0xed38): undefined reference tokvm_local_flush_tlb_all' arch/mips/built-in.o: In functionlocal_flush_tlb_mm':
(.text+0xed38): relocation truncated to fit:R_MIPS_26against `kvm_local_flush_tlb_all'kernel/built-in.o: In function `__schedule':
core.c:(.sched.text+0x16a0): undefined reference to `kvm_local_flush_tlb_all'
core.c:(.sched.text+0x16a0): relocation truncated to fit:R_MIPS_26against `kvm_local_flush_tlb_all'mm/built-in.o: In function `use_mm':
(.text+0x182c8): undefined reference tokvm_local_flush_tlb_all' mm/built-in.o: In functionuse_mm':
(.text+0x182c8): relocation truncated to fit:R_MIPS_26against `kvm_local_flush_tlb_all'
fs/built-in.o:(.text+0x7b50): more undefined references to `kvm_local_flush_tlb_all' followfs/built-in.o: In function `flush_old_exec':
(.text+0x7b50): relocation truncated to fit:R_MIPS_26against `kvm_local_flush_tlb_all'
Quoted 6 lines
Quoted 1 line
Revert the above commit and it builds to the end.
Commit
d414976d1ca721456f7b7c603a8699d117c2ec07[MIPS: include:mmu_context.h: Replace VIRTUALIZATION with KVM] fixes the issue and was pulled by Linus only yesterday. I cannot reproduce the error following your receipe using the latest Linux/MIPS tree.
Confirmed, that fixed it.
Thanks,
Rob