zig-bootstrap
                                
                                 zig-bootstrap copied to clipboard
                                
                                    zig-bootstrap copied to clipboard
                            
                            
                            
                        loongarch64-linux-gnu
It seems that the result is the same as https://github.com/ziglang/zig-bootstrap/issues/164
I'm working on this patch to try to make it work.
system:
OS: loongarchlinux GCC:
$ gcc --version
gcc (GCC) 13.2.1 20230906
Copyright (C) 2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
[15/20] Running zig1.wasm to produce /home/yxd/playspace/zig-bootstrap/out/build-zig-host/zig2.c
FAILED: zig2.c /home/yxd/playspace/zig-bootstrap/out/build-zig-host/zig2.c
cd /home/yxd/playspace/zig-bootstrap/zig && /home/yxd/playspace/zig-bootstrap/out/build-zig-host/zig1 /home/yxd/playspace/zig-bootstrap/zig/lib build-exe -ofmt=c -lc -OReleaseSmall --name zig2 -femit-bin="/home/yxd/playspace/zig-bootstrap/out/build-zig-host/zig2.c" -target loongarch64-linux --dep build_options --dep aro --mod root src/main.zig --mod build_options /home/yxd/playspace/zig-bootstrap/out/build-zig-host/config.zig --mod aro_options src/stubs/aro_options.zig --mod Builtins/Builtin.def src/stubs/aro_builtins.zig --mod Attribute/names.def src/stubs/aro_names.zig --mod Diagnostics/messages.def src/stubs/aro_messages.zig --dep build_options=aro_options --mod aro_backend deps/aro/backend.zig --dep Builtins/Builtin.def --dep Attribute/names.def --dep Diagnostics/messages.def --dep build_options=aro_options --dep backend=aro_backend --mod aro deps/aro/aro.zig
/lib/std/os/linux.zig:77:28: error: struct 'os.linux.arch_bits__struct_7806' has no member named 'ino_t'
/lib/std/os/linux.zig:46:13: note: struct declared here
/lib/std/os/linux.zig:113:33: error: struct 'os.linux.arch_bits__struct_7806' has no member named 'MAP'
/lib/std/os/linux.zig:46:13: note: struct declared here
/lib/std/os/linux.zig:145:33: error: struct 'os.linux.arch_bits__struct_7806' has no member named 'O'
/lib/std/os/linux.zig:46:13: note: struct declared here
/lib/std/os/linux.zig:83:28: error: struct 'os.linux.arch_bits__struct_7806' has no member named 'off_t'
/lib/std/os/linux.zig:46:13: note: struct declared here
/lib/std/os/linux.zig:48:34: error: struct 'os.linux.arch_bits__struct_7806' has no member named 'syscall0'
/lib/std/os/linux.zig:46:13: note: struct declared here
/lib/std/os/linux.zig:52:34: error: struct 'os.linux.arch_bits__struct_7806' has no member named 'syscall4'
/lib/std/os/linux.zig:46:13: note: struct declared here
/lib/std/os/linux.zig:51:34: error: struct 'os.linux.arch_bits__struct_7806' has no member named 'syscall3'
/lib/std/os/linux.zig:46:13: note: struct declared here
ninja: build stopped: subcommand failed.
loongarch64 support was added in glibc 2.36
Those error indicate missing loongarch-specific logic in the zig standard library.
system:
OS: loongarchlinux
Kernel:
$ uname -s -r -v -m -o
Linux 6.7.0-6 #1 SMP PREEMPT Tue, 09 Jan 2024 11:51:31 +0000 loongarch64 GNU/Linux
GCC:
$ gcc --version
gcc (GCC) 13.2.1 20230906
Copyright (C) 2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
binutils: 2.41-3
glibc:
$ /usr/lib64/libc.so.6
GNU C Library (GNU libc) stable release version 2.38.
Copyright (C) 2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 13.2.1 20230906.
libc ABIs: UNIQUE ABSOLUTE
Minimum supported kernel: 5.19.0
For bug reporting instructions, please see:
<https://bugs.archlinux.org/>.
With this patch, the error log is as follows:
-- Build files have been written to: /home/yxd/playspace/zig-bootstrap/out/build-zig-host
[1/5] Building C object CMakeFiles/zig2.dir/compiler_rt.c.o
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c: In function ‘ceill’:
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c:17858:2: warning: ‘memcpy’ reading 16 bytes from a region of size 8 [-Wstringop-overread]
17858 |  memcpy(&t1, &t0, sizeof(zig_c_longdouble));
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c:17854:10: note: source object ‘t0’ of size 8
17854 |  zig_f64 t0;
      |          ^~
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c: In function ‘cosl’:
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c:18142:2: warning: ‘memcpy’ reading 16 bytes from a region of size
8 [-Wstringop-overread]
18142 |  memcpy(&t1, &t0, sizeof(zig_c_longdouble));
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c:18138:10: note: source object ‘t0’ of size 8
18138 |  zig_f64 t0;
      |          ^~
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c: In function ‘expl’:
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c:18526:2: warning: ‘memcpy’ reading 16 bytes from a region of size 8 [-Wstringop-overread]
18526 |  memcpy(&t1, &t0, sizeof(zig_c_longdouble));
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c:18522:10: note: source object ‘t0’ of size 8
18522 |  zig_f64 t0;
      |          ^~
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c: In function ‘exp2l’:
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c:18867:2: warning: ‘memcpy’ reading 16 bytes from a region of size 8 [-Wstringop-overread]
18867 |  memcpy(&t1, &t0, sizeof(zig_c_longdouble));
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c:18863:10: note: source object ‘t0’ of size 8
18863 |  zig_f64 t0;
      |          ^~
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c: In function ‘fabsl’:
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c:18931:2: warning: ‘memcpy’ reading 16 bytes from a region of size 8 [-Wstringop-overread]
18931 |  memcpy(&t1, &t0, sizeof(zig_c_longdouble));
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c:18927:10: note: source object ‘t0’ of size 8
18927 |  zig_f64 t0;
      |          ^~
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c: In function ‘floorl’:
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c:19243:2: warning: ‘memcpy’ reading 16 bytes from a region of size 8 [-Wstringop-overread]
19243 |  memcpy(&t1, &t0, sizeof(zig_c_longdouble));
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c:19239:10: note: source object ‘t0’ of size 8
19239 |  zig_f64 t0;
      |          ^~
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c: In function ‘fmal’:
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c:19623:2: warning: ‘memcpy’ reading 16 bytes from a region of size 8 [-Wstringop-overread]
19623 |  memcpy(&t3, &t2, sizeof(zig_c_longdouble));
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c:19617:10: note: source object ‘t2’ of size 8
19617 |  zig_f64 t2;
      |          ^~
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c: In function ‘fmaxl’:
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c:19824:2: warning: ‘memcpy’ reading 16 bytes from a region of size 8 [-Wstringop-overread]
19824 |  memcpy(&t2, &t1, sizeof(zig_c_longdouble));
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c:19819:10: note: source object ‘t1’ of size 8
19819 |  zig_f64 t1;
      |          ^~
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c: In function ‘fminl’:
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c:20025:2: warning: ‘memcpy’ reading 16 bytes from a region of size 8 [-Wstringop-overread]
20025 |  memcpy(&t2, &t1, sizeof(zig_c_longdouble));
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c:20020:10: note: source object ‘t1’ of size 8
20020 |  zig_f64 t1;
      |          ^~
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c: In function ‘fmodl’:
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c:21285:2: warning: ‘memcpy’ reading 16 bytes from a region of size 8 [-Wstringop-overread]
21285 |  memcpy(&t2, &t1, sizeof(zig_c_longdouble));
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c:21280:10: note: source object ‘t1’ of size 8
21280 |  zig_f64 t1;
      |          ^~
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c: In function ‘logl’:
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c:21613:2: warning: ‘memcpy’ reading 16 bytes from a region of size 8 [-Wstringop-overread]
21613 |  memcpy(&t1, &t0, sizeof(zig_c_longdouble));
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c:21609:10: note: source object ‘t0’ of size 8
21609 |  zig_f64 t0;
      |          ^~
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c: In function ‘log10l’:
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c:22006:2: warning: ‘memcpy’ reading 16 bytes from a region of size 8 [-Wstringop-overread]
22006 |  memcpy(&t1, &t0, sizeof(zig_c_longdouble));
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c:22002:10: note: source object ‘t0’ of size 8
22002 |  zig_f64 t0;
      |          ^~
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c: In function ‘log2l’:
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c:22393:2: warning: ‘memcpy’ reading 16 bytes from a region of size 8 [-Wstringop-overread]
22393 |  memcpy(&t1, &t0, sizeof(zig_c_longdouble));
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c:22389:10: note: source object ‘t0’ of size 8
22389 |  zig_f64 t0;
      |          ^~
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c: In function ‘roundl’:
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c:22699:2: warning: ‘memcpy’ reading 16 bytes from a region of size 8 [-Wstringop-overread]
22699 |  memcpy(&t1, &t0, sizeof(zig_c_longdouble));
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c:22695:10: note: source object ‘t0’ of size 8
22695 |  zig_f64 t0;
      |          ^~
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c: In function ‘sinl’:
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c:23013:2: warning: ‘memcpy’ reading 16 bytes from a region of size 8 [-Wstringop-overread]
23013 |  memcpy(&t1, &t0, sizeof(zig_c_longdouble));
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c:23009:10: note: source object ‘t0’ of size 8
23009 |  zig_f64 t0;
      |          ^~
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c: In function ‘sqrtl’:
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c:24093:2: warning: ‘memcpy’ reading 16 bytes from a region of size 8 [-Wstringop-overread]
24093 |  memcpy(&t1, &t0, sizeof(zig_c_longdouble));
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c:24089:10: note: source object ‘t0’ of size 8
24089 |  zig_f64 t0;
      |          ^~
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c: In function ‘tanl’:
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c:24341:2: warning: ‘memcpy’ reading 16 bytes from a region of size 8 [-Wstringop-overread]
24341 |  memcpy(&t1, &t0, sizeof(zig_c_longdouble));
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c:24337:10: note: source object ‘t0’ of size 8
24337 |  zig_f64 t0;
      |          ^~
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c: In function ‘truncl’:
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c:24527:2: warning: ‘memcpy’ reading 16 bytes from a region of size 8 [-Wstringop-overread]
24527 |  memcpy(&t1, &t0, sizeof(zig_c_longdouble));
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/yxd/playspace/zig-bootstrap/out/build-zig-host/compiler_rt.c:24523:10: note: source object ‘t0’ of size 8
24523 |  zig_f64 t0;
      |          ^~
[2/5] Building C object CMakeFiles/zig2.dir/zig2.c.o
[3/5] Linking CXX executable zig2
FAILED: zig2
: && /usr/bin/c++ -O3 -DNDEBUG -Wl,-z,stack-size=0x10000000 CMakeFiles/zig2.dir/zig2.c.o CMakeFiles/zig2.dir/compiler_rt.c.o -o zig2 -L/home/yxd/playspace/zig-bootstrap/out/host/lib -Wl,-rpath,/home/yxd/playspace/zig-bootstrap/out/host/lib  zigcpp/libzigcpp.a  /home/yxd/playspace/zig-bootstrap/out/host/lib/libclangFrontendTool.a  /home/yxd/playspace/zig-bootstrap/out/host/lib/libclangCodeGen.a  /home/yxd/playspace/zig-bootstrap/out/host/lib/libclangFrontend.a  /home/yxd/playspace/zig-bootstrap/out/host/lib/libclangDriver.a  /home/yxd/playspace/zig-bootstrap/out/host/lib/libclangSerialization.a  /home/yxd/playspace/zig-bootstrap/out/host/lib/libclangSema.a  /home/yxd/playspace/zig-bootstrap/out/host/lib/libclangStaticAnalyzerFrontend.a  /home/yxd/playspace/zig-bootstrap/out/host/lib/libclangStaticAnalyzerCheckers.a  /home/yxd/playspace/zig-bootstrap/out/host/lib/libclangStaticAnalyzerCore.a  /home/yxd/playspace/zig-bootstrap/out/host/lib/libclangAnalysis.a  /home/yxd/playspace/zig-bootstrap/out/host/lib/libclangASTMatchers.a  /home/yxd/playspace/zig-bootstrap/out/host/lib/libclangAST.a  /home/yxd/playspace/zig-bootstrap/out/host/lib/libclangParse.a  /home/yxd/playspace/zig-bootstrap/out/host/lib/libclangSema.a  /home/yxd/playspace/zig-bootstrap/out/host/lib/libclangStaticAnalyzerFrontend.a  /home/yxd/playspace
/zig-bootstrap/out/host/lib/libclangStaticAnalyzerCheckers.a  /home/yxd/playspace/zig-bootstrap/out/host/lib/libclangStaticAnalyzerCore.a  /home/yxd/playspace/zig-bootstrap/out/host/lib/libclangAnalysis.a  /home/yxd/playspace/zig-bootstrap/out/host/lib/libclangASTMatchers.a  /home/yxd/playspace/zig-bootstrap/out/host/lib/libclangAST.a  /home/yxd/playspace/zig-bootstrap/out/host/lib/libclangParse.a  /home/yxd/playspace/zig-bootstrap/out/host/lib/libclangBasic.a  /home/yxd/playspace/zig-bootstrap/out/host/lib/libclangEdit.a  /home/yxd/playspace/zig-bootstrap/out/host/lib/libclangLex.a  /home/yxd/playspace/zig-bootstrap/out/host/lib/libclangARCMigrate.a  /home/yxd/playspace/zig-bootstrap/out/host/lib/libclangRewriteFrontend.a  /home/yxd/playspace/zig-bootstrap/out/host/lib/libclangRewrite.a  /home/yxd/playspace/zig-bootstrap/out/host/lib/libclangCrossTU.a  /home/yxd/playspace/zig-bootstrap/out/host/lib/libclangIndex.a  /home/yxd/playspace/zig-bootstrap/out/host/lib/libclangToolingCore.a  /home/yxd/playspace/zig-bootstrap/out/host/lib/libclangExtractAPI.a  /home/yxd/playspace/zig-bootstrap/out/host/lib/libclangSupport.a  /home/yxd/playspace/zig-bootstrap/out/host/lib/liblldMinGW.a  /home/yxd/playspace/zig-bootstrap/out/host/lib/liblldELF.a  /home/yxd/playspace/zig-bootstrap/out/host/lib/liblldCOFF.a  /home/yxd/playspace/zig-bootstrap/out/host/lib/liblldWasm.a  /home/yxd/playspace/zig-bootstrap/out/host/lib/liblldMachO.a  /home/yxd/playspace/zig-bootstrap/out/host/lib/liblldCommon.a  -lLLVMWindowsManifest  -lLLVMXRay  -lLLVMLibDriver  -lLLVMDlltoolDriver  -lLLVMCoverage  -lLLVMLineEditor  -lLLVMXCoreDisassembler  -lLLVMXCoreCodeGen  -lLLVMXCoreDesc  -lLLVMXCoreInfo  -lLLVMX86TargetMCA  -lLLVMX86Disassembler  -lLLVMX86AsmParser  -lLLVMX86CodeGen  -lLLVMX86Desc  -lLLVMX86Info  -lLLVMWebAssemblyDisassembler  -lLLVMWebAssemblyAsmParser  -lLLVMWebAssemblyCodeGen  -lLLVMWebAssemblyUtils  -lLLVMWebAssemblyDesc  -lLLVMWebAssemblyInfo  -lLLVMVEDisassembler  -lLLVMVEAsmParser  -lLLVMVECodeGen  -lLLVMVEDesc  -lLLVMVEInfo  -lLLVMSystemZDisassembler  -lLLVMSystemZAsmParser  -lLLVMSystemZCodeGen  -lLLVMSystemZDesc  -lLLVMSystemZInfo  -lLLVMSparcDisassembler  -lLLVMSparcAsmParser  -lLLVMSparcCodeGen  -lLLVMSparcDesc  -lLLVMSparcInfo  -lLLVMRISCVTargetMCA  -lLLVMRISCVDisassembler  -lLLVMRISCVAsmParser  -lLLVMRISCVCodeGen  -lLLVMRISCVDesc  -lLLVMRISCVInfo  -lLLVMPowerPCDisassembler  -lLLVMPowerPCAsmParser  -lLLVMPowerPCCodeGen  -lLLVMPowerPCDesc  -lLLVMPowerPCInfo  -lLLVMNVPTXCodeGen  -lLLVMNVPTXDesc  -lLLVMNVPTXInfo  -lLLVMMSP430Disassembler  -lLLVMMSP430AsmParser  -lLLVMMSP430CodeGen  -lLLVMMSP430Desc  -lLLVMMSP430Info  -lLLVMMipsDisassembler  -lLLVMMipsAsmParser  -lLLVMMipsCodeGen  -lLLVMMipsDesc  -lLLVMMipsInfo  -lLLVMLoongArchDisassembler  -lLLVMLoongArchAsmParser  -lLLVMLoongArchCodeGen  -lLLVMLoongArchDesc  -lLLVMLoongArchInfo  -lLLVMLanaiDisassembler  -lLLVMLanaiCodeGen  -lLLVMLanaiAsmParser  -lLLVMLanaiDesc  -lLLVMLanaiInfo  -lLLVMHexagonDisassembler  -lLLVMHexagonCodeGen  -lLLVMHexagonAsmParser  -lLLVMHexagonDesc  -lLLVMHexagonInfo  -lLLVMBPFDisassembler  -lLLVMBPFAsmParser  -lLLVMBPFCodeGen  -lLLVMBPFDesc  -lLLVMBPFInfo  -lLLVMAVRDisassembler  -lLLVMAVRAsmParser  -lLLVMAVRCodeGen  -lLLVMAVRDesc  -lLLVMAVRInfo  -lLLVMARMDisassembler  -lLLVMARMAsmParser  -lLLVMARMCodeGen  -lLLVMARMDesc  -lLLVMARMUtils  -lLLVMARMInfo  -lLLVMAMDGPUTargetMCA  -lLLVMAMDGPUDisassembler  -lLLVMAMDGPUAsmParser  -lLLVMAMDGPUCodeGen  -lLLVMAMDGPUDesc  -lLLVMAMDGPUUtils  -lLLVMAMDGPUInfo  -lLLVMAArch64Disassembler  -lLLVMAArch64AsmParser  -lLLVMAArch64CodeGen  -lLLVMAArch64Desc  -lLLVMAArch64Utils  -lLLVMAArch64Info  -lLLVMOrcJIT  -lLLVMWindowsDriver  -lLLVMMCJIT  -lLLVMJITLink  -lLLVMInterpreter  -lLLVMExecutionEngine  -lLLVMRuntimeDyld  -lLLVMOrcTargetProcess  -lLLVMOrcShared  -lLLVMDWP  -lLLVMDebugInfoLogicalView  -lLLVMDe
bugInfoGSYM  -lLLVMOption  -lLLVMObjectYAML  -lLLVMObjCopy  -lLLVMMCA  -lLLVMMCDisassembler  -lLLVMLTO  -lLLVMPasses  -lLLVMCFGuard  -lLLVMCoroutines  -lLLVMipo  -lLLVMVectorize  -lLLVMLinker  -lLLVMInstrumentation  -lLLVMFrontendOpenMP  -lLLVMFrontendOpenACC  -lLLVMFrontendHLSL  -lLLVMExtensions  -lLLVMDWARFLinkerParallel  -lLLVMDWARFLinker  -lLLVMGlobalISel  -lLLVMMIRParser  -lLLVMAsmPrinter  -lLLVMSelectionDAG  -lLLVMCodeGen  -lLLVMTarget  -lLLVMObjCARCOpts  -lLLVMCodeGenTypes  -lLLVMIRPrinter  -lLLVMInterfaceStub  -lLLVMFileCheck  -lLLVMFuzzMutate  -lLLVMScalarOpts  -lLLVMInstCombine  -lLLVMAggressiveInstCombine  -lLLVMTransformUtils  -lLLVMBitWriter  -lLLVMAnalysis  -lLLVMProfileData  -lLLVMSymbolize  -lLLVMDebugInfoBTF  -lLLVMDebugInfoPDB  -lLLVMDebugInfoMSF  -lLLVMDebugInfoDWARF  -lLLVMObject  -lLLVMTextAPI  -lLLVMMCParser  -lLLVMIRReader  -lLLVMAsmParser  -lLLVMMC  -lLLVMDebugInfoCodeView  -lLLVMBitReader  -lLLVMFuzzerCLI  -lLLVMCore  -lLLVMRemarks  -lLLVMBitstreamReader  -lLLVMBinaryFormat  -lLLVMTargetParser  -lLLVMTableGen  -lLLVMSupport  -lLLVMDemangle  -lrt  -ldl  -lm  -lz  -ltinfo && :
/usr/bin/ld: /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o): relocation R_LARCH_B26 overflow 0x872c4b0
Dump relocate record:
stack top               relocation name         symbol
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x2bc):
...
0x0000000000000000 R_LARCH_PCALA_HI20   `_ZTVN12_GLOBAL__N_113X86AsmBackendE' + 16(0x10)
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x2c0):
0x0000000000000000 R_LARCH_PCALA_LO12   `_ZTVN12_GLOBAL__N_113X86AsmBackendE' + 16(0x10)
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x2cc):
0x0000000000000000 R_LARCH_B21  `.L1318'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x2d8):
0x0000000000000000 R_LARCH_PCALA_HI20   `_ZN12_GLOBAL__N_133X86AlignBranchWithin32BBoundariesE' + 128(0x80)
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x2e0):
0x0000000000000000 R_LARCH_PCALA_LO12   `_ZN12_GLOBAL__N_133X86AlignBranchWithin32BBoundariesE' + 128(0x80)
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x314):
0x0000000000000000 R_LARCH_B21  `.L1298'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x324):
0x0000000000000000 R_LARCH_PCALA_HI20   `_ZN12_GLOBAL__N_122X86AlignBranchBoundaryE'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x328):
0x0000000000000000 R_LARCH_PCALA_LO12   `_ZN12_GLOBAL__N_122X86AlignBranchBoundaryE'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x330):
0x0000000000000000 R_LARCH_B21  `.L1299'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x33c):
0x0000000000000000 R_LARCH_B21  `.L1300'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x358):
0x0000000000000000 R_LARCH_PCALA_HI20   `_ZN12_GLOBAL__N_114X86AlignBranchE' + 8(0x8)
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x35c):
0x0000000000000000 R_LARCH_PCALA_LO12   `_ZN12_GLOBAL__N_114X86AlignBranchE' + 8(0x8)
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x360):
0x0000000000000000 R_LARCH_B21  `.L1301'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x364):
0x0000000000000000 R_LARCH_PCALA_HI20   `_ZN12_GLOBAL__N_121X86AlignBranchKindLocE'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x368):
0x0000000000000000 R_LARCH_PCALA_LO12   `_ZN12_GLOBAL__N_121X86AlignBranchKindLocE'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x374):
0x0000000000000000 R_LARCH_PCALA_HI20   `_ZN12_GLOBAL__N_119X86PadMaxPrefixSizeE'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x378):
0x0000000000000000 R_LARCH_PCALA_LO12   `_ZN12_GLOBAL__N_119X86PadMaxPrefixSizeE'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x380):
0x0000000000000000 R_LARCH_B21  `.L1302'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6
TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x38c):
0x0000000000000000 R_LARCH_PCALA_HI20   `_ZTVN12_GLOBAL__N_120ELFX86_X32AsmBackendE' + 16(0x10)
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x390):
0x0000000000000000 R_LARCH_PCALA_LO12   `_ZTVN12_GLOBAL__N_120ELFX86_X32AsmBackendE' + 16(0x10)
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x39c):
0x0000000000000000 R_LARCH_B26  `.L1264'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x3b0):
0x0000000000000000 R_LARCH_B26  `_Znwm@@GLIBCXX_3.4'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x3c0):
0x0000000000000000 R_LARCH_B26  `_ZN4llvm12MCAsmBackendC2ENS_7support10endiannessEj'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x3c4):
0x0000000000000000 R_LARCH_PCALA_HI20   `_ZTVN12_GLOBAL__N_113X86AsmBackendE' + 16(0x10)
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x3cc):
0x0000000000000000 R_LARCH_PCALA_LO12   `_ZTVN12_GLOBAL__N_113X86AsmBackendE' + 16(0x10)
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x3d8):
0x0000000000000000 R_LARCH_B21  `.L1310'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x3e8):
0x0000000000000000 R_LARCH_PCALA_HI20   `_ZN12_GLOBAL__N_133X86AlignBranchWithin32BBoundariesE' + 128(0x80)
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x3f0):
0x0000000000000000 R_LARCH_PCALA_LO12   `_ZN12_GLOBAL__N_133X86AlignBranchWithin32BBoundariesE' + 128(0x80)
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x424):
0x0000000000000000 R_LARCH_B21  `.L1267'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x434):
0x0000000000000000 R_LARCH_PCALA_HI20   `_ZN12_GLOBAL__N_122X86AlignBranchBoundaryE'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x438):
0x0000000000000000 R_LARCH_PCALA_LO12   `_ZN12_GLOBAL__N_122X86AlignBranchBoundaryE'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x440):
0x0000000000000000 R_LARCH_B21  `.L1268'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x44c):
0x0000000000000000 R_LARCH_B21  `.L1269'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x468):
0x0000000000000000 R_LARCH_PCALA_HI20   `_ZN12_GLOBAL__N_114X86AlignBranchE' + 8(0x8)
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x46c):
0x0000000000000000 R_LARCH_PCALA_LO12   `_ZN12_GLOBAL__N_114X86AlignBranchE' + 8(0x8)
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x470):
0x0000000000000000 R_LARCH_B21  `.L1270'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x474):
0x0000000000000000 R_LARCH_PCALA_HI20   `_ZN12_GLOBAL__N_121X86AlignBranchKindLocE'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x478):
0x0000000000000000 R_LARCH_PCALA_LO12   `_ZN12_GLOBAL__N_121X86AlignBranchKindLocE'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x484):
0x0000000000000000 R_LARCH_PCALA_HI20   `_ZN12_GLOBAL__N_119X86PadMaxPrefixSizeE'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x488):
0x0000000000000000 R_LARCH_PCALA_LO12   `_ZN12_GLOBAL__N_119X86PadMaxPrefixSizeE'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x490):
0x0000000000000000 R_LARCH_B21  `.L1271'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x4a0):
0x0000000000000000 R_LARCH_PCALA_HI20   `_ZTVN12_GLOBAL__N_119DarwinX86AsmBackendE' + 16(0x10)
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x4a4):
0x0000000000000000 R_LARCH_PCALA_LO12   `_ZTVN12_GLOBAL__N_119DarwinX86AsmBackendE' + 16(0x10)
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x4c8):
0x0000000000000000 R_LARCH_B16  `.L1410'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x4d0):
0x0000000000000000 R_LARCH_B16  `.L1274'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x500):
0x0000000000000000 R_LARCH_B26  `_ZNK4llvm6Triple11isArch64BitEv'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x514):
0x0000000000000000 R_LARCH_B21  `.L1276'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6
TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x530):
0x0000000000000000 R_LARCH_B26  `.L1264'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x53c):
0x0000000000000000 R_LARCH_B26  `.L1308'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x554):
0x0000000000000000 R_LARCH_B26  `.L1277'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x558):
0x0000000000000000 R_LARCH_PCALA_HI20   `CSWTCH.576'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x560):
0x0000000000000000 R_LARCH_PCALA_LO12   `CSWTCH.576'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x568):
0x0000000000000000 R_LARCH_B26  `.L1294'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x56c):
0x0000000000000000 R_LARCH_B21  `.L1275'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x570):
0x0000000000000000 R_LARCH_B26  `.L1273'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x580):
0x0000000000000000 R_LARCH_B26  `_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm@@GLIBCXX_3.4.21'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x59c):
0x0000000000000000 R_LARCH_B26  `memcpy@@GLIBC_2.36'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x5a8):
0x0000000000000000 R_LARCH_B26  `.L1275'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x5b0):
0x0000000000000000 R_LARCH_B26  `.L1288'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x5b8):
0x0000000000000000 R_LARCH_B26  `.L1266'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x5c0):
0x0000000000000000 R_LARCH_B26  `.L1297'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x5c8):
0x0000000000000000 R_LARCH_B26  `.L1303'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text._ZN4llvm22createX86_64AsmBackendERKNS_6TargetERKNS_15MCSubtargetInfoERKNS_14MCRegisterInfoERKNS_15MCTargetOptionsE+0x5d0):
0x0000000000000000 R_LARCH_B26  `__stack_chk_fail@@GLIBC_2.36'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text.startup._GLOBAL__sub_I_X86AsmBackend.cpp+0x0):
0x0000000000000000 R_LARCH_NONE `<nameless>' + 28(0x1c)
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text.startup._GLOBAL__sub_I_X86AsmBackend.cpp+0x8):
0x0000000000000000 R_LARCH_PCALA_HI20   `_ZN12_GLOBAL__N_122X86AlignBranchBoundaryE'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text.startup._GLOBAL__sub_I_X86AsmBackend.cpp+0xc):
0x0000000000000000 R_LARCH_PCALA_LO12   `_ZN12_GLOBAL__N_122X86AlignBranchBoundaryE'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text.startup._GLOBAL__sub_I_X86AsmBackend.cpp+0x44):
0x0000000000000000 R_LARCH_GOT_PC_HI20  `__stack_chk_guard@@GLIBC_2.36'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text.startup._GLOBAL__sub_I_X86AsmBackend.cpp+0x48):
0x0000000000000000 R_LARCH_GOT_PC_LO12  `__stack_chk_guard@@GLIBC_2.36'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text.startup._GLOBAL__sub_I_X86AsmBackend.cpp+0x50):
0x0000000000000000 R_LARCH_GOT_PC_HI20  `_ZTVN4llvm2cl6OptionE'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text.startup._GLOBAL__sub_I_X86AsmBackend.cpp+0x54):
0x0000000000000000 R_LARCH_GOT_PC_LO12  `_ZTVN4llvm2cl6OptionE'
at /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o)(.text.startup._GLOBAL__sub_I_X86AsmBackend.cpp+0xb0):
0x0000000000000000 R_LARCH_B26  `_ZN4llvm2cl18getGeneralCategoryEv'
-- Record dump end --
/home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMX86Desc.a(X86AsmBackend.cpp.o): in function `_GLOBAL__sub_I_X86AsmBackend.cpp':
X86AsmBackend.cpp:(.text.startup._GLOBAL__sub_I_X86AsmBackend.cpp+0xb0): relocation truncated to fit: R_LARCH_B26 against symbol `llvm::cl::getGeneralCategory()' defined in .text._ZN4llvm2cl18getGeneralCategoryEv section in /home/yxd/playspace/zig-bootstrap/out/host/lib/libLLVMSupport.a(CommandLine.cpp.o)
/usr/bin/ld: final link failed: bad value
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
system:
OS: loongarchlinux
Kernel:
$ uname -s -r -v -m -o
Linux 6.7.0-6 #1 SMP PREEMPT Tue, 09 Jan 2024 11:51:31 +0000 loongarch64 GNU/Linux
clang
$ clang --version
clang version 16.0.6
Target: loongarch64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
glibc
$ /usr/lib64/libc.so.6
GNU C Library (GNU libc) stable release version 2.38.
Copyright (C) 2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 13.2.1 20230906.
libc ABIs: UNIQUE ABSOLUTE
Minimum supported kernel: 5.19.0
For bug reporting instructions, please see:
<https://bugs.archlinux.org/>.
The GCC toolchain provided by the system is not working, tried with llvm and clang.
The command to build bootstrap
$ CMAKE_GENERATOR=Ninja CC=/usr/bin/clang CXX=/usr/bin/clang++ ./build loongarch64-linux-gnu loongarch64
With the same patch above, it seems that it is possible to compile zig2 successfully but failed in stage 3.
-- Build files have been written to: /home/yxd/playspace/zig-bootstrap/out/build-zig-host
[6/7] Building stage3
FAILED: stage3/bin/zig /home/yxd/playspace/zig-bootstrap/out/build-zig-host/stage3/bin/zig
cd /home/yxd/playspace/zig-bootstrap/zig && /home/yxd/playspace/zig-bootstrap/out/build-zig-host/zig2 build --prefix /home/yxd/playspace/zig-bootstrap/out/build-zig-host/stage3 --zig-lib-dir /home/yxd/playspace/zig-bootstrap/zig/lib -Dconfig_h=/home/yxd/playspace/zig-bootstrap/out/build-zig-host/config.h -Denable-llvm -Doptimize=ReleaseFast -Dstrip -Dno-langref -Dno-autodocs -Dtarget=native -Dcpu=native -Dversion-string=0.12.0-dev.2058+04ac028a2
error(llvm): LLVM failed to parse 'loongarch64-unknown-linux-musl': Unable to find target for this triple (no targets are registered)
error: InvalidLlvmTriple
ninja: build stopped: subcommand failed.
it seems that zig itself requires fstat to work.
However, loongarch64 does not have fstat/fstatat syscall support and only has statx syscall.
Maybe we should add a translation layer for fstat/fstatat that uses statx underhood?
However, loongarch64 does not have
fstat/fstatatsyscall support
is there a specific reason for this or is it because its simply not implemented yet in the kernel since loongarch64 is such a relatively new architecture?
However, loongarch64 does not have
fstat/fstatatsyscall supportis there a specific reason for this or is it because its simply not implemented yet in the kernel since loongarch64 is such a relatively new architecture?
Check the syscalls here.
- https://marcin.juszkiewicz.com.pl/download/tables/syscalls.html
It seems that it is not implemented in Linux kernel intentionally. And golang has an emulation implementation of fstatat with statx.
- https://go-review.googlesource.com/c/go/+/407694
With current patch, I think I have implemented most of the loongarch64 things needed for zig std lib.
https://github.com/yxd-ym/zig-bootstrap/pull/1
The current build command I use:
$ CMAKE_GENERATOR=Ninja CC=/usr/bin/clang CXX=/usr/bin/clang++ ./build loongarch64-linux-gnu loongarch64
The current error output:
-- Build files have been written to: /home/yxd/playspace/zig-bootstrap/out/build-zig-host
[19/20] Building stage3
FAILED: stage3/bin/zig /home/yxd/playspace/zig-bootstrap/out/build-zig-host/stage3/bin/zig
cd /home/yxd/playspace/zig-bootstrap/zig && /home/yxd/playspace/zig-bootstrap/out/build-zig-host/zig2 build --prefix /home/yxd/playspace/zig-bootstrap/out/build-zig-host/stage3 --zig-lib-dir /home/yxd/playspace/zig-bootstrap/zig/lib -Dconfig_h=/home/yxd/playspace/zig-bootstrap/out/build-zig-host/config.h -Denable-llvm -Doptimize=ReleaseFast -Dstrip -Dno-langref -Dno-autodocs -Dtarget=native -Dcpu=native -Dversion-string=0.12.0-dev.2058+04ac028a2
thread 78035 panic: integer overflow
error: the following build command crashed:
/home/yxd/playspace/zig-bootstrap/zig/zig-cache/o/df6239b7bc57edacf4820b77cfc51b1a/build /home/yxd/playspace/zig-bootstrap/out/build-zig-host/zig2 /home/yxd/playspace/zig-bootstrap/zig /home/yxd/playspace/zig-bootstrap/zig/zig-cache /home/yxd/.cache/zig --seed 0xb709783f --prefix /home/yxd/playspace/zig-bootstrap/out/build-zig-host/stage3 --zig-lib-dir /home/yxd/playspace/zig-bootstrap/zig/lib -Dconfig_h=/home/yxd/playspace/zig-bootstrap/out/build-zig-host/config.h -Denable-llvm -Doptimize=ReleaseFast -Dstrip -Dno-langref -Dno-autodocs -Dtarget=native -Dcpu=native -Dversion-string=0.12.0-dev.2058+04ac028a2
ninja: build stopped: subcommand failed.
The backtrace of error above:
#14 0x000000000117cc10 in mem.Allocator.allocWithSizeAndAlignment__anon_14671 (self=..., n=12297829382473034410,
    return_address=18419460) at /home/yxd/playspace/zig-bootstrap/zig/lib/std/mem/Allocator.zig:211
#15 0x00000000011913b8 in mem.Allocator.allocAdvancedWithRetAddr ()
    at /home/yxd/playspace/zig-bootstrap/zig/lib/std/mem/Allocator.zig:205
#16 mem.Allocator.alignedAlloc__anon_15350 (self=..., n=12297829382473034410)
    at /home/yxd/playspace/zig-bootstrap/zig/lib/std/mem/Allocator.zig:193
#17 0x0000000001190f04 in array_list.ArrayListAligned(u8,null).ensureTotalCapacityPrecise (self=0x7ffffffe9000,
    new_capacity=12297829382473034410) at /home/yxd/playspace/zig-bootstrap/zig/lib/std/array_list.zig:458
#18 0x00000000010fb7cc in array_list.ArrayListAligned(u8,null).initCapacity (allocator=..., num=12297829382473034410)
    at /home/yxd/playspace/zig-bootstrap/zig/lib/std/array_list.zig:68
#19 0x00000000010fb460 in fs.File.readToEndAllocOptions__anon_10482 (self=..., allocator=..., max_bytes=1048576, size_hint=...)
    at /home/yxd/playspace/zig-bootstrap/zig/lib/std/fs/File.zig:996
#20 0x00000000010fc0d8 in fs.Dir.readFileAllocOptions__anon_10470 (self=..., allocator=..., file_path=..., max_bytes=1048576,
    size_hint=...) at /home/yxd/playspace/zig-bootstrap/zig/lib/std/fs/Dir.zig:1783
#21 0x00000000010fc6a0 in fs.Dir.readFileAlloc (self=..., allocator=<error reading variable: Cannot access memory at address 0x8>,
    file_path=..., max_bytes=1048576) at /home/yxd/playspace/zig-bootstrap/zig/lib/std/fs/Dir.zig:1758
#22 0x000000000110bd5c in build.build (b=0x7ffff7feea18) at /home/yxd/playspace/zig-bootstrap/zig/build.zig:324
#23 0x00000000010e7b3c in Build.runBuild__anon_8020 (b=0x7ffff7feea18)
    at /home/yxd/playspace/zig-bootstrap/zig/lib/std/Build.zig:1851
#24 0x00000000010e2808 in build_runner.main () at build_runner.zig:319
#25 0x00000000010cc9e8 in start.callMain () at /home/yxd/playspace/zig-bootstrap/zig/lib/std/start.zig:591
#26 start.initEventLoopAndCallMain () at /home/yxd/playspace/zig-bootstrap/zig/lib/std/start.zig:525
#27 start.callMainWithArgs () at /home/yxd/playspace/zig-bootstrap/zig/lib/std/start.zig:475
#28 start.posixCallMainAndExit () at /home/yxd/playspace/zig-bootstrap/zig/lib/std/start.zig:431
#29 0x0000000000000000 in ?? ()
The overflow happens on stack element 18 where num=12297829382473034410. It seems that the builtin function @intFromBool is not implemented.
I guess things like zig/src/arch/loongarch64 need to be implemented like other CPU architectures (e.g. zig/src/arch/aarch64 and zig/src/arch/riscv64) next.
https://github.com/ziglang/zig/pull/18771
https://github.com/ziglang/zig/pull/18772
The overflow happens on stack element 18 where num=12297829382473034410. It seems that the builtin function @intFromBool is not implemented.
This has been fixed.
And now the error is zig2 failed to build libunwind.
$ /home/yxd/playspace/zig-bootstrap/out/build-zig-host/zig2 clang zig/lib/libunwind/src/libunwind.cpp --no-default-config -nostdinc++ -fno-caret-diagnostics -D__GLIBC_MINOR__=38 -target loongarch64-unknown-linux-gnu -nostdinc -fno-spell-checking -isystem zig/lib/include -isystem /usr/include -Xclang -target-cpu -Xclang loongarch64 -Xclang -target-feature -Xclang -32bit -Xclang -target-feature -Xclang +64bit -Xclang -target-feature -Xclang -d -Xclang -target-feature -Xclang -f -Xclang -target-feature -Xclang -la-global-with-abs -Xclang -target-feature -Xclang -la-global-with-pcrel -Xclang -target-feature -Xclang -la-local-with-abs -Xclang -target-feature -Xclang -lasx -Xclang -target-feature -Xclang -lbt -Xclang -target-feature -Xclang -lsx -Xclang -target-feature -Xclang -lvz -Xclang -target-feature -Xclang +ual -fomit-frame-pointer -fno-stack-protector -DNDEBUG -O2 -fPIC -fno-unwind-tables -MD -MV -MF /home/yxd/.cache/zig/tmp/bfc89e0056ee4547-libunwind.o.d -fno-rtti -I zig/lib/libunwind/include -fPIC -D_LIBUNWIND_DISABLE_VISIBILITY_ANNOTATIONS -Wa,--noexecstack -fvisibility=hidden -fvisibility-inlines-hidden -funwind-tables -D_LIBUNWIND_IS_NATIVE_ONLY -Wno-bitwise-conditional-parentheses -Wno-visibility -Wno-incompatible-pointer-types -c -o /home/yxd/.cache/zig/tmp/bfc89e0056ee4547-libunwind.o --serialize-diagnostics /home/yxd/.cache/zig/tmp/bfc89e0056ee4547-libunwind.o.diag
In file included from zig/lib/libunwind/src/libunwind.cpp:30:
In file included from zig/lib/libunwind/src/AddressSpace.hpp:23:
In file included from zig/lib/libunwind/src/EHHeaderParser.hpp:17:
In file included from zig/lib/libunwind/src/DwarfParser.hpp:22:
zig/lib/libunwind/src/Registers.hpp:5086:18: error: static assertion failed due to requirement 'check_fit<libunwind::Registers_loongarch, unw_context_t>::does_fit': loongarch registers do not fit into unw_context_t
In file included from zig/lib/libunwind/src/libunwind.cpp:31:
zig/lib/libunwind/src/UnwindCursor.hpp:1324:18: error: static assertion failed due to requirement 'check_fit<libunwind::UnwindCursor<libunwind::LocalAddressSpace, libunwind::Registers_loongarch>, unw_cursor_t>::does_fit': UnwindCursor<> does not fit in unw_cursor_t
zig/lib/libunwind/src/libunwind.cpp:87:7: note: in instantiation of member function 'libunwind::UnwindCursor<libunwind::LocalAddressSpace, libunwind::Registers_loongarch>::UnwindCursor' requested here
Disabled the macro _LIBUNWIND_IS_NATIVE_ONLY and it is OK to build libunwind.
The next problem is that ld.lld having error doing relocation when linking zig binary.
Managed to replace ld.lld with mold for the command that linking zig binary. Now I have a working zig stage3 binary I guess.
With the patch now it is possible to build a stage3 zig binary with command
$ CMAKE_GENERATOR=Ninja CC=/usr/bin/clang CXX=/usr/bin/clang++ ./build loongarch64-linux-gnu loongarch64
With this stage3 zig binary, there is still some problem:
- stage3 zig is linked by external mold, we might need to wait for ld.lld in upstream to support R_LARCH_ALIGN relocation.
- there is no libc support yet.
https://github.com/ziglang/glibc-abi-tool/pull/5
https://github.com/ziglang/zig/pulls?q=is%3Apr+loongarch
Now have the same issue as
https://github.com/ziglang/zig-bootstrap/issues/164#issuecomment-2300478462
@yxd-ym so only the LLVM 19 upgrade remains now?
so only the LLVM 19 upgrade remains now?
For successfully bootstraping a loongarch64 zig binary, YES.
However, for a workable loongarch64 zig binary, I'm still looking into this problem.
https://github.com/ziglang/zig-bootstrap/issues/164#issuecomment-2300478462
It seems that the options struct parameter passed by value to function ZigLLVMTargetMachineEmitToFile is not handled correctly.
CPP declaration of this function:
ZIG_EXTERN_C bool ZigLLVMTargetMachineEmitToFile(
    LLVMTargetMachineRef targ_machine_ref,
    LLVMModuleRef module_ref,
    char **error_message,
    struct ZigLLVMEmitOptions options
);
zig binding function:
extern fn ZigLLVMTargetMachineEmitToFile(
    T: *TargetMachine,
    M: *Module,
    ErrorMessage: *[*:0]const u8,
    options: EmitOptions,
) bool;
So I guess this is a struct function parameter passing by value ABI problem? Currently I have no idea how to solve this problem yet. Any suggestions?
I'll try to take a look at this soon.
https://github.com/loongson/la-abi-specs/blob/release/lapcs.adoc#structures
It's most likely just down to missing sret and byval vs byref handling for LoongArch in Zig's LLVM backend. I'll take a closer look later today. Lots of TODOs in that code for other architectures too.
With https://github.com/ziglang/zig/pull/21251
we are able to bootstrap a loongarch64 zig to compile hello world c program and zig program.
Unfortunately I wasn't able to bootstrap zig on my loongarch64 machine (used yxd-ym/zig-boostrap bootstrap-loongarch-2 branch)
[user@la64-nb tmp]$ uname -s -r -v -m -o
Linux 6.9.0-loongarch-alt0.4.0.g5aec712dc5f3.0.port #1 SMP PREEMPT_DYNAMIC Mon May 13 10:08:11 UTC 2024 loongarch64 GNU/Linux
Bootstrap fails on zig build (after llvm is built). Here is fragment of log: zig-bootrstrap.log
I would like to try mold, but currently no idea how to do it. Any other ideas how to fix it/what problem might be?
Unfortunately I wasn't able to bootstrap zig on my loongarch64 machine (used yxd-ym/zig-boostrap bootstrap-loongarch-2 branch)
[user@la64-nb tmp]$ uname -s -r -v -m -o Linux 6.9.0-loongarch-alt0.4.0.g5aec712dc5f3.0.port #1 SMP PREEMPT_DYNAMIC Mon May 13 10:08:11 UTC 2024 loongarch64 GNU/LinuxBootstrap fails on zig build (after llvm is built). Here is fragment of log: zig-bootrstrap.log
You don't need to run the bootstrap build script on a loongarch64 machine. I recommend using a amd64 or arm64 machine with relatively new gcc/clang (or even zig 0.13) to run the bootstrap script.
I would like to try mold, but currently no idea how to do it. Any other ideas how to fix it/what problem might be?
This problem should already be fixed in https://github.com/ziglang/zig/pull/21153.
So maybe you should try my llvm19-fix-f16 branch that is base on llvm19 branch (which includes the fix) here.
For some reason on loongarch64 llvm19-fix-f16 gave similar error zig-bootstrap2.log
Now attempting to build on x86_64 machine
The problem is because we are not customizing the code model of zig2 to be medium in bootstrap script.
Also, what is the version of your host's clang?
Also, what is the version of your host's clang?
[user@la64-nb zig]$ clang++ --version
ALT Linux Team clang version 18.1.8
Target: loongarch64-unknown-linux-gnu
Thread model: posix
Installed dir: /usr/bin
So 18.1.8, with no patches
Good job, it works on LoongArchLinux:
[yetist@loongson zig-bootstrap]$ uname -a
Linux loongson 6.6.30-3-lts #1 SMP PREEMPT Wed, 21 Aug 2024 00:34:12 +0000 loongarch64 GNU/Linux
[yetist@loongson zig-bootstrap]$ file out/host/bin/zig 
out/host/bin/zig: ELF 64-bit LSB executable, LoongArch, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-loongarch-lp64d.so.1, for GNU/Linux 5.19.0, stripped
[yetist@loongson zig-bootstrap]$ out/host/bin/zig version
0.12.0-dev.2058+04ac028a2
[yetist@loongson zig-bootstrap]$ vim index.zig         
[yetist@loongson zig-bootstrap]$ out/host/bin/zig test index.zig
All 1 tests passed.
Close by #188