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

    <tr>
        <th>Summary</th>
        <td>
            __clear_cache and RtlRaiseException undefined when linking (lld-link) on Windows 11 woa64
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

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

<pre>
    Linking with lld-link fails on woa64 (works on win64):

``` cmd
[27/27] Linking C shared library objc.dll
FAILED: objc.dll objc.lib
cmd.exe /C "cd . && "C:\Program Files\Microsoft Visual Studio\2022\Preview\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe" -E vs_link_dll --intdir=CMakeFiles\objc.dir --rc=C:\PROGRA~2\WI3CF2~1\10\bin\100226~1.0\arm64\rc.exe --mt=C:\PROGRA~2\WI3CF2~1\10\bin\100226~1.0\arm64\mt.exe --manifests  -- C:\PROGRA~1\LLVM-W~1\bin\lld-link.exe /nologo block_trampolines.obj objc_msgSend.obj CMakeFiles\objc.dir\alias_table.c.obj CMakeFiles\objc.dir\block_to_imp.c.obj CMakeFiles\objc.dir\caps.c.obj CMakeFiles\objc.dir\category_loader.c.obj CMakeFiles\objc.dir\class_table.c.obj CMakeFiles\objc.dir\dtable.c.obj CMakeFiles\objc.dir\encoding2.c.obj CMakeFiles\objc.dir\hooks.c.obj CMakeFiles\objc.dir\ivar.c.obj CMakeFiles\objc.dir\loader.c.obj CMakeFiles\objc.dir\mutation.m.obj CMakeFiles\objc.dir\protocol.c.obj CMakeFiles\objc.dir\runtime.c.obj CMakeFiles\objc.dir\sarray2.c.obj CMakeFiles\objc.dir\selector_table.c.obj CMakeFiles\objc.dir\sendmsg2.c.obj CMakeFiles\objc.dir\NSBlocks.m.obj CMakeFiles\objc.dir\Protocol2.m.obj CMakeFiles\objc.dir\associate.m.obj CMakeFiles\objc.dir\blocks_runtime.m.obj CMakeFiles\objc.dir\properties.m.obj CMakeFiles\objc.dir\gc_none.c.obj CMakeFiles\objc.dir\arc.mm.obj CMakeFiles\objc.dir\eh_win32_msvc.cc.obj  /out:objc.dll /implib:objc.lib /pdb:objc.pdb /dll /version:0.0 /DEBUG /INCREMENTAL:NO /machine:ARM64 -fuse-ld=lld /debug /INCREMENTAL /DEBUG /INCREMENTAL:NO  kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib  && cd ."
LINK Pass 1: command "C:\PROGRA~1\LLVM-W~1\bin\lld-link.exe /nologo block_trampolines.obj objc_msgSend.obj CMakeFiles\objc.dir\alias_table.c.obj CMakeFiles\objc.dir\block_to_imp.c.obj CMakeFiles\objc.dir\caps.c.obj CMakeFiles\objc.dir\category_loader.c.obj CMakeFiles\objc.dir\class_table.c.obj CMakeFiles\objc.dir\dtable.c.obj CMakeFiles\objc.dir\encoding2.c.obj CMakeFiles\objc.dir\hooks.c.obj CMakeFiles\objc.dir\ivar.c.obj CMakeFiles\objc.dir\loader.c.obj CMakeFiles\objc.dir\mutation.m.obj CMakeFiles\objc.dir\protocol.c.obj CMakeFiles\objc.dir\runtime.c.obj CMakeFiles\objc.dir\sarray2.c.obj CMakeFiles\objc.dir\selector_table.c.obj CMakeFiles\objc.dir\sendmsg2.c.obj CMakeFiles\objc.dir\NSBlocks.m.obj CMakeFiles\objc.dir\Protocol2.m.obj CMakeFiles\objc.dir\associate.m.obj CMakeFiles\objc.dir\blocks_runtime.m.obj CMakeFiles\objc.dir\properties.m.obj CMakeFiles\objc.dir\gc_none.c.obj CMakeFiles\objc.dir\arc.mm.obj CMakeFiles\objc.dir\eh_win32_msvc.cc.obj /out:objc.dll /implib:objc.lib /pdb:objc.pdb /dll /version:0.0 /DEBUG /INCREMENTAL:NO /machine:ARM64 -fuse-ld=lld /debug /INCREMENTAL /DEBUG /INCREMENTAL:NO kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFESTFILE:CMakeFiles\objc.dir/intermediate.manifest CMakeFiles\objc.dir/manifest.res" failed (exit code 1) with the following output:
lld-link: warning: ignoring unknown argument '-fuse-ld=lld'
lld-link: error: undefined symbol: __clear_cache
>>> referenced by C:\tools-windows-msvc\src\libobjc2\block_to_imp.c:180
>>>               CMakeFiles\objc.dir\block_to_imp.c.obj:(alloc_trampolines)

lld-link: error: undefined symbol: __declspec(dllimport) RtlRaiseException
>>> referenced by C:\tools-windows-msvc\src\libobjc2\eh_win32_msvc.cc:196
>>>               CMakeFiles\objc.dir\eh_win32_msvc.cc.obj:(objc_exception_throw)
>>> referenced by C:\tools-windows-msvc\src\libobjc2\eh_win32_msvc.cc:196
>>>               CMakeFiles\objc.dir\eh_win32_msvc.cc.obj:(objc_exception_throw)
ninja: build stopped: subcommand failed.
Failed
```

[block_to_imp.c:180](https://github.com/gnustep/libobjc2/blob/35ac9bc072e652e8bac9cd501f94d3b089b8f9a2/block_to_imp.c#L180)
[eh_win32_msvc.cc:196](https://github.com/gnustep/libobjc2/blob/35ac9bc072e652e8bac9cd501f94d3b089b8f9a2/eh_win32_msvc.cc#L196)

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJztGNlu2zjwa-wXwoIOy8eDHxwfRbBOtki67aNAkWObNSUKJGUnf79DHa5zNMouil2giGFIM8PhcDgnqVTxx9lG5AeR78hJ2D2Rkg8kEsiWCmmIyslJ0dGQ9MLJSelDTRH5aNgLp71o3vOXPb99jvz6T1jGG1J8FY574Rof8ZK0Cy2I2VMNnEiRaqofiUq_M49LWU9az683qyUKP9NrALlrBhTvwQOgTusFPkLGiYfvEf4dunB6xYvPWu00zchaSDCI3wimlVFbS74KU1JJ7m3JhcKR0A_DagIcBZwQWqgsUznqvLhers746sFCboTKn0hzwzf0ABfvVOT4ZBliTk9UiQxW5GgSZ9jE7WcwELnlQveiZTWp1bHesNDIoJkbbLZy9-enu3lvvHJqfruOFusQkQCRwD-vF_i4jZGje45IdYZOiheaVbYaDDL7awRmthVIc7EFYw1BhDyX7IRtNl9vBt8apBbaxlfrwFxJtVMklYodEov-KhQOg_HQFJXbk8zs7iHnFeFVYzndpKAmsTSV4LE3OZuFVCKyooOV0cJ0sljYKf2YSEU56C5uSc37tOTvYYKcKY75FHbw7ZU6dG1EHGmX9u_aYlZaajFFvOxNtkIrq5iSHdJ0mVuRddnBUK3pY5cVDEhgVul32d9gwGHcdcm8vb9y4WQ6dvu52W3YwYfRoZjAkOrgq2LYJK11Ok1dgLYCurTcsSRXeZdlKNaT7G1BsE-wQ0QhZu6ReayW53JdlViC5ueijhRMQlfVGyKCjljwMwVBR2m4j6Bd-cVB3_MdYbm6-uuTA65vF3erm9Xtl_kGR2__dLSMsj1WEsTndzfYwQbb0sBAcqyCWIQqsZCWu2fT3xZLDqBzkFFY6YrydAPuuGgg3LopFIa2Q8weZMutJPyAaGlbIaXgFcBUxuWuoVJ-pEUrsu1trs9hM6mb4Ob69g_yGUOGBK5V4mysx_yy_31U4o9K_FGJPyrxs0r8WxTi_6UOoyI389vr9er-yyW8xusKavW6E9C0uQWdAa_DqTkz_8Rlzlg1g6dxBC8O7hoGzkgTeBAWleOABT-c1rc1uweyVVKqk7tXoVuLyrN1h2gLvGsPJ6pzZHGg2OVKO_YyP-TqlBOqd2UGucVFxk99g4SXokBrpR1Q5hy26FhOzGOWKuloScLQqDph6HNo7oDRqv4TDVvQWCtxRvrYXhgs-sgMUH-uTmbgAtVlvXZPtLmzTPiiWeDMYOI_F__09_624_QIJxStyC77nrvgXtxu_4EJODBpCmAoFRMG11HaOpfdWXlHhYHVA4PC1eZfaKDnqe5MNB39OxO9VjZqI1XHAGjVT-xeq9MPO_0m-8BE-U6dJ9NSYH0yVhUFcEcwZdqes-q89JovFhXy7CvIk08j8dWrERwvUZm9tYWp9Frjf4d5XaYeruOQvDQWCoTOJgrXKCnFVxRTNk2ZPw5hFIcwSRFlPPaD7XTIo9SfTNPJdkqbGZdrh9HGLX72W3z1E6v_R-q9WN0piMu3CvZhFoxGIz-MQj_o81nEp9GU9q2wEmZPKg5xrnmRZhdpetpDTmTzHQo3d85qTE9k_FZHJwmC-rNXv9Ry9oYBpDy2rwG29-94rnEV35jS1Y91PBkGo_5-Fmxx1wENhqM4TreQ-mM_msRDDpEfD8Hf9iVNQZoZegJrfg4nUolwZ_142Rcz94Eq8INxMAqiMPAiH_xwOB2HwXbEJjHvDX3IMAQ9p4en9K6vZ5VK2FUNDkphrPkxiIcb7AEA1XIoH3vgXunZPgOJx8p-tfSsUv1vh2R7NA">