xen0n / loongson-overlay

Support overlay for Gentoo/Loongson users
21 stars 11 forks source link

llvm-11.1.0 build failed on Loongarch #4

Closed darkgeek closed 2 years ago

darkgeek commented 2 years ago

Hi,

I use your 1205 version of stage3 on my 3A5000, and have upgraded my world to the latest. However, when I tried to build llvm-11.1.0 (introduced by mesa), it failed with the following errors:

...(skipped)...

[1573/2885] /usr/bin/loongarch64-unknown-linux-gnu-g++ -D_GNU_SOURCE -D__STDC_CO
NSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/var/tmp/portage/sy
s-devel/llvm-11.1.0/work/llvm-11.1.0_build-.lp64d/lib/Target/AMDGPU -I/var/tmp/p
ortage/sys-devel/llvm-11.1.0/work/llvm/lib/Target/AMDGPU -I/var/tmp/portage/sys-
devel/llvm-11.1.0/work/llvm-11.1.0_build-.lp64d/include -I/var/tmp/portage/sys-d
evel/llvm-11.1.0/work/llvm/include  -DNDEBUG -O2 -pipe -fPIC -fvisibility-inline
s-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -
Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-f
allthrough -Wno-maybe-uninitialized -Wno-class-memaccess -Wno-redundant-move -Wn
o-noexcept-type -Wdelete-non-virtual-dtor -Wno-comment -fdiagnostics-color -ffun
ction-sections -fdata-sections -fvisibility=hidden -std=c++14 -MD -MT lib/Target
/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUPropagateAttributes.cpp.o -MF lib
/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUPropagateAttributes.cpp.o.
d -o lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUPropagateAttribute
s.cpp.o -c /var/tmp/portage/sys-devel/llvm-11.1.0/work/llvm/lib/Target/AMDGPU/AM
DGPUPropagateAttributes.cpp
FAILED: lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUPropagateAttrib
utes.cpp.o 
/usr/bin/loongarch64-unknown-linux-gnu-g++ -D_GNU_SOURCE -D__STDC_CONSTANT_MACRO
S -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/var/tmp/portage/sys-devel/llvm
-11.1.0/work/llvm-11.1.0_build-.lp64d/lib/Target/AMDGPU -I/var/tmp/portage/sys-d
evel/llvm-11.1.0/work/llvm/lib/Target/AMDGPU -I/var/tmp/portage/sys-devel/llvm-1
1.1.0/work/llvm-11.1.0_build-.lp64d/include -I/var/tmp/portage/sys-devel/llvm-11
.1.0/work/llvm/include  -DNDEBUG -O2 -pipe -fPIC -fvisibility-inlines-hidden -We
rror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -
Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -
Wno-maybe-uninitialized -Wno-class-memaccess -Wno-redundant-move -Wno-noexcept-t
ype -Wdelete-non-virtual-dtor -Wno-comment -fdiagnostics-color -ffunction-sectio
ns -fdata-sections -fvisibility=hidden -std=c++14 -MD -MT lib/Target/AMDGPU/CMak
eFiles/LLVMAMDGPUCodeGen.dir/AMDGPUPropagateAttributes.cpp.o -MF lib/Target/AMDG
PU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUPropagateAttributes.cpp.o.d -o lib/Tar
get/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUPropagateAttributes.cpp.o -c /
var/tmp/portage/sys-devel/llvm-11.1.0/work/llvm/lib/Target/AMDGPU/AMDGPUPropagat
eAttributes.cpp
/var/tmp/portage/sys-devel/llvm-11.1.0/work/llvm/lib/Target/AMDGPU/AMD[175/1853]
teAttributes.cpp:395:1: internal compiler error: in output_constructor_regular_f
ield, at varasm.c:5512
  395 | }
      | ^
0x1133067 internal_error(char const*, ...)
        ???:0
0x1a14e7 fancy_abort(char const*, int, char const*)
        ???:0
0xbd96e3 assemble_variable(tree_node*, int, int, int)
        ???:0
0xbdcecb varpool_node::assemble_decl()
        ???:0
0xbddb5f symbol_table::output_variables()
        ???:0
0x4c88f7 symbol_table::finalize_compilation_unit()
        ???:0
Please submit a full bug report,
with preprocessed source if appropriate. 
Please include the complete backtrace with any bug report.
See <https://bugs.gentoo.org/> for instructions.

...(skipped)...

ninja: build stopped: subcommand failed. 
 * ERROR: sys-devel/llvm-11.1.0::loongson failed (compile phase):
 *   ninja -v -j4 -l0 distribution failed
 * 
 * Call stack:
 *     ebuild.sh, line  127:  Called src_compile
 *   environment, line 3907:  Called multilib-minimal_src_compile
 *   environment, line 2666:  Called multilib_foreach_abi 'multilib-minimal_abi_
src_compile'
 *   environment, line 2950:  Called multibuild_foreach_variant '_multilib_multi
build_wrapper' 'multilib-minimal_abi_src_compile'
 *   environment, line 2601:  Called _multibuild_run '_multilib_multibuild_wrapp
er' 'multilib-minimal_abi_src_compile'
 *   environment, line 2599:  Called _multilib_multibuild_wrapper 'multilib-mini
mal_abi_src_compile' 
 *   environment, line  594:  Called multilib-minimal_abi_src_compile
 *   environment, line 2660:  Called multilib_src_compile
 *   environment, line 3162:  Called cmake_build 'distribution'
 *   environment, line 1324:  Called eninja 'distribution'
 *   environment, line 1841:  Called die 

...(skipped)...

Here's some information of my system:

Portage 3.0.30 (python 3.9.9-final-0, targets/systemd, gcc-12.0.0, glibc-2.34-r4, 5.16.0-rc6+ loongarch64)
=================================================================
System uname: Linux-5.16.0-rc6+-loongarch64-with-glibc2.34
KiB Mem:     8232544 total,   3801472 free
KiB Swap:    8388560 total,   8388560 free
Timestamp of repository gentoo: Wed, 05 Jan 2022 12:45:01 +0000
Head commit of repository gentoo: 9c8a5ce28bc722679e5c1bb69c76d837289ab736
sh bash 5.1_p16
ld GNU ld (Gentoo 2.37_p1 p1) 2.37
app-misc/pax-utils:        1.3.3::gentoo
app-shells/bash:           5.1_p16::gentoo
dev-lang/perl:             5.34.0-r5::loongson
dev-lang/python:           3.9.9::gentoo, 3.10.1-r1::gentoo
dev-util/cmake:            3.22.1::gentoo
dev-util/meson:            0.60.3::gentoo
sys-apps/baselayout:       2.8::gentoo
sys-apps/sandbox:          2.29::gentoo
sys-apps/systemd:          250.1::gentoo
sys-devel/autoconf:        2.71-r1::gentoo
sys-devel/automake:        1.16.5::gentoo
sys-devel/binutils:        2.37_p1-r1::loongson
sys-devel/binutils-config: 5.4::gentoo
sys-devel/gcc:             12.0.0_pre9999::loongson
sys-devel/gcc-config:      2.5-r1::gentoo
sys-devel/libtool:         2.4.6-r6::gentoo
sys-devel/make:            4.3::gentoo
sys-kernel/linux-headers:  5.15-r1::loongson (virtual/os-headers)
sys-libs/glibc:            2.34-r4::loongson
Repositories:

gentoo
    location: /usr/portage
    sync-type: rsync
    sync-uri: rsync://mirrors.tuna.tsinghua.edu.cn/gentoo-portage
    priority: -1000
    sync-rsync-verify-max-age: 24
    sync-rsync-extra-opts: 
    sync-rsync-verify-metamanifest: no
    sync-rsync-verify-jobs: 1

loongson
    location: /var/gentoo/repos/local
    masters: gentoo

ACCEPT_KEYWORDS="loong ~loong"
ACCEPT_LICENSE="*"
CBUILD="loongarch64-unknown-linux-gnu"
CFLAGS="-O2 -pipe"
CHOST="loongarch64-unknown-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-O2 -pipe"
DISTDIR="/var/cache/distfiles"
ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs buildpkg-live config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync multilib-strict news parallel-fetch preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="https://mirrors.tuna.tsinghua.edu.cn/gentoo/ http://mirrors.ustc.edu.cn/gentoo/ https://mirrors.aliyun.com/gentoo/"
LANG="C.UTF8"
LC_ALL="en_US.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
PKGDIR="/var/cache/binpkgs"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
PORTAGE_TMPDIR="/var/tmp"
SHELL="/bin/fish"
USE="X acl bzip2 cli crypt dri fortran gdbm iconv ipv6 libglvnd loong ncurses nls nptl openmp pam pcre readline seccomp split-usr ssl systemd udev unicode xattr zlib" ADA_TARGET="gnat_2020" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="libinput" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php7-3 php7-4" POSTGRES_TARGETS="postgres12 postgres13" PYTHON_SINGLE_TARGET="python3_9" PYTHON_TARGETS="python3_9" RUBY_TARGETS="ruby26 ruby27" USERLAND="GNU" VIDEO_CARDS="dummy fbdev v4l" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq proto steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  ADDR2LINE, AR, ARFLAGS, AS, ASFLAGS, CC, CCLD, CONFIG_SHELL, CPP, CPPFLAGS, CTARGET, CXX, CXXFILT, ELFEDIT, EMERGE_DEFAULT_OPTS, EXTRA_ECONF, F77FLAGS, FC, GCOV, GPROF, INSTALL_MASK, LD, LEX, LFLAGS, LIBTOOL, LINGUAS, MAKE, MAKEFLAGS, MAKEOPTS, NM, OBJCOPY, OBJDUMP, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, RANLIB, READELF, RUSTFLAGS, SIZE, STRINGS, STRIP, YACC, YFLAGS

Not sure how to figure it out. Could you help me, please? If you need more information, I'd provide ASAP. Thanks.

xen0n commented 2 years ago

Hi, this is a known problem; it seems the bootstrapped toolchain has some very deep bug that doesn't exist in the cross-compiled toolchains. I tried but haven't had any clue yet.

darkgeek commented 2 years ago

I find that, by removing AMDGPU and ARM targets from the ebuild, llvm can be built successfully:

--- /var/gentoo/repos/local/sys-devel/llvm/llvm-11.1.0.ebuild   2021-12-31 21:35:09.243898899 +0800
+++ llvm-11.1.0.ebuild  2022-01-08 18:16:26.386040612 +0800
@@ -13,7 +13,7 @@
 # Those are in lib/Targets, without explicit CMakeLists.txt mention
 ALL_LLVM_EXPERIMENTAL_TARGETS=( ARC VE )
 # Keep in sync with CMakeLists.txt
-ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM AVR BPF Hexagon Lanai LoongArch Mips MSP430
+ALL_LLVM_TARGETS=( AArch64 AVR BPF Hexagon Lanai LoongArch Mips MSP430
    NVPTX PowerPC RISCV Sparc SystemZ WebAssembly X86 XCore
    "${ALL_LLVM_EXPERIMENTAL_TARGETS[@]}" )
 ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )

Although it works for some people like me (who don't need AMDGPU and ARM), it's only a dirty workaround and far from perfect.

xen0n commented 2 years ago

caused by https://github.com/loongson/gcc/issues/77

darkgeek commented 2 years ago

Fixed by loongson/gcc#77, can confirm llvm builds flawlessly now. Thanks!