Skip to content

[MinGW] lld Segmentation fault when build mesa with cfguard #78619

Closed
@Andarwinux

Description

@Andarwinux

install llvm-mingw nightly

git clone https://gitlab.freedesktop.org/mesa/mesa.git
cd mesa 
mkdir build
cd build

export CFLAGS="-mguard=cf"
export LDFLAGS="-mguard=cf"

meson setup ./ ../ --cross-file=meson_cross.txt -Dvulkan-drivers=microsoft-experimental -Dgallium-drivers= -Dtools= --buildtype=release --default-library=static
ninja

x86_64-w64-mingw32-clang++  -o src/microsoft/vulkan/vulkan_dzn.dll src/microsoft/vulkan/vulkan_dzn.dll.p/meson-generated_.._dzn_entrypoints.c.obj src/microsoft/vulkan/vulkan_dzn.dll.p/dzn_cmd_buffer.c.obj src/microsoft/vulkan/vulkan_dzn.dll.p/dzn_descriptor_set.c.obj src/microsoft/vulkan/vulkan_dzn.dll.p/dzn_device.c.obj src/microsoft/vulkan/vulkan_dzn.dll.p/dzn_dxcore.cpp.obj src/microsoft/vulkan/vulkan_dzn.dll.p/dzn_image.c.obj src/microsoft/vulkan/vulkan_dzn.dll.p/dzn_meta.c.obj src/microsoft/vulkan/vulkan_dzn.dll.p/dzn_nir.c.obj src/microsoft/vulkan/vulkan_dzn.dll.p/dzn_pipeline.c.obj src/microsoft/vulkan/vulkan_dzn.dll.p/dzn_query.c.obj src/microsoft/vulkan/vulkan_dzn.dll.p/dzn_sync.c.obj src/microsoft/vulkan/vulkan_dzn.dll.p/dzn_util.c.obj src/microsoft/vulkan/vulkan_dzn.dll.p/dzn_wsi.c.obj src/microsoft/vulkan/vulkan_dzn.dll.p/dzn_dxgi.c.obj -Wl,-O1 -shared src/vulkan/vulkan_api.def -Wl,--start-group -Wl,--out-implib=src/microsoft/vulkan/vulkan_dzn.dll.a -Wl,--whole-archive src/vulkan/runtime/libvulkan_runtime.a src/vulkan/wsi/libvulkan_wsi.a -Wl,--no-whole-archive -Wl,--nxcompat -Wl,--dynamicbase -static-libgcc -static-libstdc++ -mguard=cf src/microsoft/compiler/libdxil_compiler.a src/util/libmesa_util.a src/util/libmesa_util_sse41.a subprojects/zlib-1.3/libz.a src/util/blake3/libblake3.a src/c11/impl/libmesa_util_c11.a src/microsoft/spirv_to_dxil/libspirv_to_dxil.a src/compiler/nir/libnir.a src/compiler/libcompiler.a src/vulkan/util/libvulkan_util.a subprojects/DirectX-Headers-1.0/libd3dx12-format-properties.a subprojects/DirectX-Headers-1.0/libDirectX-Guids.a src/util/libxmlconfig.a src/compiler/spirv/libvtn.a -Wl,--gc-sections -lm -lsynchronization -lversion -lsynchronization -lsynchronization -lversion -lsynchronization -lsynchronization -lsynchronization -lsynchronization -lsynchronization -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 -Wl,--end-group                                                                                         PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.  Stack dump:                                                                                                  0.      Program arguments: ld.lld -m i386pep --shared -Bdynamic -e DllMainCRTStartup --enable-auto-image-base --guard-cf -o src/microsoft/vulkan/vulkan_dzn.dll llvm-mingw/x86_64-w64-mingw32/lib/dllcrt2.o llvm-mingw/x86_64-w64-mingw32/lib/crtbegin.o -Lllvm-mingw/x86_64-w64-mingw32/lib -Lllvm-mingw/x86_64-w64-mingw32/mingw/lib -Lllvm-mingw/lib/clang/18/lib/windows src/microsoft/vulkan/vulkan_dzn.dll.p/meson-generated_.._dzn_entrypoints.c.obj src/microsoft/vulkan/vulkan_dzn.dll.p/dzn_cmd_buffer.c.obj src/microsoft/vulkan/vulkan_dzn.dll.p/dzn_descriptor_set.c.obj src/microsoft/vulkan/vulkan_dzn.dll.p/dzn_device.c.obj src/microsoft/vulkan/vulkan_dzn.dll.p/dzn_dxcore.cpp.obj src/microsoft/vulkan/vulkan_dzn.dll.p/dzn_image.c.obj src/microsoft/vulkan/vulkan_dzn.dll.p/dzn_meta.c.obj src/microsoft/vulkan/vulkan_dzn.dll.p/dzn_nir.c.obj src/microsoft/vulkan/vulkan_dzn.dll.p/dzn_pipeline.c.obj src/microsoft/vulkan/vulkan_dzn.dll.p/dzn_query.c.obj src/microsoft/vulkan/vulkan_dzn.dll.p/dzn_sync.c.obj src/microsoft/vulkan/vulkan_dzn.dll.p/dzn_util.c.obj src/microsoft/vulkan/vulkan_dzn.dll.p/dzn_wsi.c.obj src/microsoft/vulkan/vulkan_dzn.dll.p/dzn_dxgi.c.obj -O1 src/vulkan/vulkan_api.def --start-group --out-implib=src/microsoft/vulkan/vulkan_dzn.dll.a --whole-archive src/vulkan/runtime/libvulkan_runtime.a src/vulkan/wsi/libvulkan_wsi.a --no-whole-archive --nxcompat --dynamicbase src/microsoft/compiler/libdxil_compiler.a src/util/libmesa_util.a src/util/libmesa_util_sse41.a subprojects/zlib-1.3/libz.a src/util/blake3/libblake3.a src/c11/impl/libmesa_util_c11.a src/microsoft/spirv_to_dxil/libspirv_to_dxil.a src/compiler/nir/libnir.a src/compiler/libcompiler.a src/vulkan/util/libvulkan_util.a subprojects/DirectX-Headers-1.0/libd3dx12-format-properties.a subprojects/DirectX-Headers-1.0/libDirectX-Guids.a src/util/libxmlconfig.a src/compiler/spirv/libvtn.a --gc-sections -lm -lsynchronization -lversion -lsynchronization -lsynchronization -lversion -lsynchronization -lsynchronization -lsynchronization -lsynchronization -lsynchronization -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 --end-group -Bstatic -lc++ -Bdynamic -lmingw32 llvm-mingw/lib/clang/18/lib/windows/libclang_rt.builtins-x86_64.a -l:libunwind.a -lmoldname -lmingwex -lmsvcrt -ladvapi32 -lshell32 -luser32 -lkernel32 -lmingw32 llvm-mingw/lib/clang/18/lib/windows/libclang_rt.builtins-x86_64.a -l:libunwind.a -lmoldname -lmingwex -lmsvcrt -lkernel32 llvm-mingw/x86_64-w64-mingw32/lib/crtend.o
 #0 0x00007fb944e389bf llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (../lib/libLLVM-18git.so+0x8dc9bf)
 #1 0x00007fb944e361c4 (../lib/libLLVM-18git.so+0x8da1c4)
 #2 0x00007fb9440e0010 (/usr/lib/libc.so.6+0x44010)
 #3 0x000055d6af788560 (ld.lld+0x138560)
 #4 0x000055d6af78926f (ld.lld+0x13926f)
 #5 0x000055d6af793103 (ld.lld+0x143103)
 #6 0x000055d6af795f0f lld::coff::writeResult(lld::coff::COFFLinkerContext&) (ld.lld+0x145f0f)
 #7 0x000055d6af73ca1f lld::coff::LinkerDriver::linkerMain(llvm::ArrayRef<char const*>) (ld.lld+0xeca1f)
 #8 0x000055d6af73ef3e lld::coff::link(llvm::ArrayRef<char const*>, llvm::raw_ostream&, llvm::raw_ostream&, bool, bool) (ld.lld+0xeef3e)
 #9 0x000055d6afac0498 lld::mingw::link(llvm::ArrayRef<char const*>, llvm::raw_ostream&, llvm::raw_ostream&, bool, bool) (ld.lld+0x470498)
#10 0x000055d6af708fca lld::unsafeLldMain(llvm::ArrayRef<char const*>, llvm::raw_ostream&, llvm::raw_ostream&, llvm::ArrayRef<lld::DriverDef>, bool) (ld.lld+0xb8fca)
#11 0x000055d6af708756 lld_main(int, char**, llvm::ToolContext const&) (ld.lld+0xb8756)
#12 0x000055d6af706a4b main (ld.lld+0xb6a4b)
#13 0x00007fb9440c3f50 (/usr/lib/libc.so.6+0x27f50)
#14 0x00007fb9440c400a __libc_start_main (/usr/lib/libc.so.6+0x2800a)
#15 0x000055d6af707fce _start (ld.lld+0xb7fce)
clang: error: unable to execute command: Segmentation fault (core dumped)
clang: error: linker command failed due to signal (use -v to see invocation)
ninja: build stopped: subcommand failed.

meson_cross.txt

[binaries]
c = 'x86_64-w64-mingw32-clang'
cpp = 'x86_64-w64-mingw32-clang++'
ar = 'x86_64-w64-mingw32-ar'
strip = 'x86_64-w64-mingw32-strip'
windres = 'x86_64-w64-mingw32-windres'
dlltool = 'x86_64-w64-mingw32-dlltool'

[host_machine]
system = 'windows'
cpu_family = 'x86_64'
cpu = 'x86_64-w64-mingw32'
endian = 'little'

Metadata

Metadata

Assignees

No one assigned

    Labels

    crashPrefer [crash-on-valid] or [crash-on-invalid]lld:COFF

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions