<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/78619>78619</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [MinGW] lld Segmentation fault when build mesa with cfguard
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            lld
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          Andarwinux
      </td>
    </tr>
</table>

<pre>
    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
```
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'
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWk1v2zwS_jXKhaCgL9vyIQcnrt895EWLtth3bwZFjmQ2FKklKX_01y9IybLluGnqYoEeEhiWPJx5ZoZDjR6JIcbwSgLcB5OHYLK8I63dKH2_kIzoHZft_q5Q7HDPpbFECCTEtsY1l9UOSV5trDgE0TKIFv33NOo__mfFLaJCSUAbaxsTpIsgWQXJquJWkCIsNQAD82xVEypdBcmqBkP6Q1hx26FQhpwAdb_qZ8Y1Klou2DB89qv7hn2jtEWPq6fFX1-CdBkkCa6rlmgWpEtaBkky0nta_kyx9w1GSWTAtg0Kg2SFQv-NMdXKGFxyAUG69FprLwrt3iK83LbimUjMNN-CNk6Fu2FVWgz7BjSvQVoiEF5WRAje1meqCC-tUqI7xT5Te2icHw0CiAGEMYOStMJiwQtN9CFIl8YSy2kXteTyGzlPY59P19MM76ZZV8k0wVQQWQXJQ5A8IIQVMpq6OhzDDJJVl8NwsmbfZciEeLtm2HSVVRJXIEETC2wdhm54DdLqQ6O4tCakoSq-_SKsw6A1WxdtWYK-GYKBoZo3Vum1AfsbMFtO4XbzPVUaQto0NwLwmlS3u6_BkpuNJb999hvegODy9sj_24I-3GxtDpLebNxaLm423hn-G4ulOhrjf0SQPOKPMcJmQzSwHu4SgjQ8ZFAe9bGxRFtcadU2g0y1FvO6EbxwzeTNUZEBYLdRAjDRdMO3cBmIbqXlNQTJSvCih-hlIblU3hk-UnSzdfIj1YWrYWBPVd0QOwjYQZKa08K3zK4_uoZZUXr-01hG-z54fiO4UhkHzwXoLji252J9FA1JuGXRjbs7WLdKXhlbGwNZ7DTaotHqG1BrgmT1XfACx2HaaX-_RCgEeYZ-sDsfNGgcB8nKFfLSE43jQes8K9NwvV1btXYJdUYj0Qn6lL7k_SS4q__KuODFi5kZynuahr6-x0kaTcGSa6D2P_hfQBhog-Mw6uc9Zfs4waXSNbG40aoBbTmYtyMcB_5qOTNXqrOvBVWy5NW11Pzc9OFbebYuK4oNUMuVNAiLGmHh-stGK8m_EydGWLg7fHf2cux3tW-TPIOWINIEYdEa0P6kYtwfd1yaRinhDDcgOi0l4Hgkre0MW84QFlTVTFReQtiWNB6knxyQrO83n54-LL58cKWquUUEFW2FNHhSZtVL1rhpi5Cq2k242B4PuK-yW-nGtOCqjYhkiEsqWgbIbgBRTcwGFYQ-W00ohOiLJfQZsbZugnSBohD5v09aVZrUiOiqdaTMeUeChUIwhGvE03zaQIPwscPih76tIAxoKcTfhMvHz1-_uJbq2ikGSQrXnVqrsL8v464BYd9bMC1_jW2d6HeQrF7yuG4luluDEFTbJFRvtqDaFlBxGSqEn95k9Ca94-AV_d5vxzxXcT6IdlwytTPv1PKdWr5Tyz-DWn6Mf0YmxzTyNwjk_586XiGNZ3RxRBTfad877XsT7XsnfFcJ3xnVww_dU5ZTPT5hndiT6CkD-iWK0K8yN77WNixaLiyXBndUxNVFBOlC8KKVzsILaiWYJDUcfcLenZkt1XYU-lnSw9ScTdcfEu8Q0S_wPJAsVN2rQBQkaYSifRRF0aws5lkGaT4vSg_nmHe6MAfTnXzSXFpPm786Ch0k-UlJk91aGauB1EEyDZJHxKUNkjkKkty_JO2cC148Pf37bxznFbehUUHyEO1zRudFGSTzU0jxRUjTmGZvgyIxzUZQyQgqgiiKIwflLnajz-FoaFQ49ThZFsXRCCbtYSYTNiXlLM8nUw_TPRt4ozh1wpFVdmE1T6blCysnHFlNxlbzNI7SS6vMCUdW0wurSRm5MrKuQFSVZXe209zCZzCtsL6ELxQeP65WT1w-g35U0sLe-orOX0TgHIwimI0jSCmJr0bQgS_9K-5OIrzEPTyNVtVCa3L4DGWQPtIN0YgqaWyQLIL0w8uAwLkbxZNfxANlCtficd7f7vcRvbbsXxsrlBKn44v4XXij-Oej-AmNsnl-ir-71v-gBLKZC3DIwF3G0bgCUV5ScsqglYaU8CTYrxX-9vivOhjC6Rbk0gk__DjLwuUwSjK-THI2mbok13WXlu-Ej8gl4lJwn_NQviol-gvtmOeVy61wqCO3yYXbKckK5FxeWrqBkWU6bok0LSc_b4nJrJxEI5jsAiaLIoLWa2e29g8D62M0rwPnUTSe0Iv-F81KCqiDvMzNDQ223X03XSDQWrnOglr_9gVZhWAPtLWAqKprIl3F0Reo_L6bp0J-A82huwdk_1oI2CvAXcM6oqGScAEMsdb7MrySRDiw1gDCWy8DQFxuFfXuBuRuby5ddFuYyFjVOMfpwtHYMXp4dYv1bGPytOV4VZOiIF2iIJn9ePtv1ms2zc91H_yntyD6FQO37Hs9YzV_DduPD9qOAmkwr-j3GoMFE8I6xvpji15jsOi_Jw8bZdyCpRsuIZgs-3gPxkJ9hBtI3DBP7bokNReHscNzhR-HMmiBZJzIo6Lg1go4xXcs4h27T9k8nZM7uI9n0WQazfMou9vcT_K0mKaUFCxOAZJ5Tlg8Z3E5ycqIEpjd8fskSrIojvMkSqMoDSGPIzqfzbP5bJ5meRRkEdSEi9A1pVDp6s6_R72f5dN4fidIAcL4fw9IEn_hJcFkeafvPeMs2soEWSS4seZkb7kV_j8K_ubyr3-CydL1w2sX3G4Dsl_7fo9_x-0G0dK_HL1rtbi__RWwj_5_AQAA__9NhNOQ">