Closed HybridDog closed 3 years ago
Thank you for the report. I just tried to compile using clang
(on macOS) and things worked correctly.
Could you try running the following commands to see if it fixes the problem for you? This is assuming you're in the base taisei/
directory.
cd taisei/
rm -r build/
git submodules update --recursive --init
meson setup -C build/
meson compile -C build/
Let me know if that ends up working for you. I'm also currently working on better documentation for building, which you can check out in #319.
Compiler: gcc 11 Linker: lld 12
I think this might be the problem here, combined with Taisei's LTO-by-default setting. lld
probably does not understand gcc's LTO object format, so it fails to link anything into the binary. I would not recommend using lld and gcc together, and especially wouldn't recommend overriding your system's default linker like that (if you must, you can tell the compiler which linker to use via -fuse-ld=lld
). To test this hypothesis, try disabling LTO via meson configure -Db_lto=false
and recompiling. That should give you a working build with gcc+lld, albeit less optimized. If that works, I would recommend enabling LTO back and either using the gold linker with gcc (meson configure -Dcpp_link_args="-fuse-ld=gold"
), or using clang if you want to use lld.
I tried to build the latest version (85e3cf0) by following the instructions. I think the linker cannot find the main function. Here's an excerpt of the messages show by ninja:
Here's the full output: ninja_output.txt
Compiler: gcc 11 (wrapped by ccache) Linker: lld 12 (using a symbolic link from ~/bin/ld to /usr/bin/ld.lld)