ClangBuiltLinux / linux

Linux kernel source tree
Other
241 stars 14 forks source link

mips64 error: ABI 'o32' is not supported on CPU 'mips64r6' #1536

Closed emojifreak closed 2 years ago

emojifreak commented 2 years ago

mips 64-bit little endian build fails with

  CALL    scripts/checksyscalls.sh
  Checking missing-syscalls for O32
  CALL    scripts/checksyscalls.sh
error: ABI 'o32' is not supported on CPU 'mips64r6'
make[1]: *** [Kbuild:48: missing-syscalls] Error 1

The above does not occur with gcc. This can be reproduced by

#!/bin/sh

KVER=5.16-rc4
LANG=C.UTF-8
export LANG
cd /var/tmp/tmp11mips64el_12

  cat >/tmp/config$$.txt <<EOF
CONFIG_FTRACE_MCOUNT_USE_RECORDMCOUNT=n
CONFIG_KASAN=n
CONFIG_GCOV_KERNEL=n
CONFIG_COMPILE_TEST=n
CONFIG_TRIM_UNUSED_KSYMS=n
CONFIG_SHADOW_CALL_STACK=y
CONFIG_LD_DEAD_CODE_DATA_ELIMINATION=n
CONFIG_INIT_STACK_ALL_ZERO=y
CONFIG_KVM=y
CONFIG_PREEMPT=y
CONFIG_PREEMPT_DYNAMIC=y
CONFIG_UBSAN_OBJECT_SIZE=n

CONFIG_WERROR=n
CONFIG_EMBEDDED=n

CONFIG_DEBUG_INFO=y
CONFIG_DEBUG_INFO_DWARF5=y
CONFIG_DEBUG_INFO_COMPRESSED=y
CONFIG_DEBUG_INFO_BTF=y

CONFIG_ACPI=y
CONFIG_EFI_STUB=y
CONFIG_EFI=y
CONFIG_DMI=y
CONFIG_NUMA=y
CONFIG_MEMORY_HOTPLUG=y
CONFIG_HOTPLUG_PCI=y
CONFIG_HOTPLUG_PCI_PCIE=y
CONFIG_HOTPLUG_CPU=y

CONFIG_XILINX_SDFEC=n
CONFIG_CPU_MIPS64_R6=y
CONFIG_HIBERNATION=y
CONFIG_MIPS_CPS=y
CONFIG_CPU_HAS_MSA=y
CONFIG_RELOCATABLE=y
CONFIG_RELOCATION_TABLE_SIZE=0x01000000
CONFIG_KEXEC=n
CONFIG_CPU_LITTLE_ENDIAN=y
CONFIG_CPU_BIG_ENDIAN=n
CONFIG_32BIT=n
CONFIG_64BIT=y
CONFIG_MIPS32_O32=y
CONFIG_MIPS32_N32=y
CONFIG_CRYPTO_CRC32_MIPS=m
CONFIG_CRYPTO_CHACHA_MIPS=m
CONFIG_CRYPTO_POLY1305_MIPS=m

CONFIG_LKDTM=m

EOF

for a in mips; do
  rm -rf /var/tmp/tmp11mips64el_12/$a
  mkdir /var/tmp/tmp11mips64el_12/$a
  cd /var/tmp/tmp11mips64el_12/$a
  exec </dev/null >build-log-${KVER}-${a}.txt 2>&1
  set -xe
  tar zxf /var/tmp/linux-${KVER}.tar.gz
  cd linux-${KVER}

#  sed -i 's/-O2/-O3/g' Makefile
#  sed -i 's/-Os/-Oz/g' Makefile
  cp /tmp/config$$.txt .config
  make LLVM=1 LLVM_IAS=1 CROSS_COMPILE=mips64el-linux-gnuabi64- CROSS_COMPILE_COMPAT=mips-linux-gnu- allmodconfig
#  make CROSS_COMPILE=mips64el-linux-gnuabi64- CROSS_COMPILE_COMPAT=mips-linux-gnu- allmodconfig
  cat /tmp/config$$.txt >>.config

  yes '' |
#    chrt --idle 0 nice -19 make -j 5 --keep-going ARCH=$a CROSS_COMPILE=mips64el-linux-gnuabi64- CROSS_COMPILE_COMPAT=mips-linux-gnu-   all &
    chrt --idle 0 nice -19 make -j 5 --keep-going ARCH=$a LLVM=1 LLVM_IAS=1 CROSS_COMPILE=mips64el-linux-gnuabi64- CROSS_COMPILE_COMPAT=mips-linux-gnu- KCFLAGS="-mllvm -polly-ast-use-context -mllvm -polly-invariant-load-hoisting -mllvm -polly-opt-fusion=max -mllvm -polly-run-inliner -mllvm -polly-vectorizer=stripmine -mllvm -polly-run-dce"  all &
  exec </dev/null >/dev/null 2>&1
done 
wait
nathanchance commented 2 years ago

Dupe of https://github.com/ClangBuiltLinux/linux/issues/884. This is unlikely to be fixed anytime soon.

emojifreak commented 2 years ago

Ahh... Sorry for duplication.