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

    <tr>
        <th>Summary</th>
        <td>
            Clang: broken include path with MinGW on Linux leads to undefined symbols
        </td>
    </tr>

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

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

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

<pre>
    To reproduce:

`test.cpp`:
```
#include <memory>
int main() {
 std::make_shared<int>();
}
```

```
clang++ -fuse-ld=lld -target x86_64-pc-windows-gnu test.cpp
ld.lld: error: undefined symbol: __libc_single_threaded
>>> referenced by /tmp/main-d1531b.o:(.refptr.__libc_single_threaded)
clang-15: error: linker command failed with exit code 1 (use -v to see invocation)
```

Include search path:
```
#include <...> search starts here:
 /usr/x86_64-w64-mingw32/include/c++
 /usr/x86_64-w64-mingw32/include/c++/12.2.0
 /usr/x86_64-w64-mingw32/include/c++/12.2.0/x86_64-w64-mingw32
 /usr/x86_64-w64-mingw32/include/c++/12.2.0/backward
 /usr/include/c++/12.2.0
 /usr/include/c++/12.2.0/backward
 $LLVM_ROOT/15.0.6/lib/clang/15.0.6/include
 /usr/x86_64-w64-mingw32/include
 /usr/include
```

`__libc_single_threaded` is used in `/usr/x86_64-w64-mingw32/include/c++/12.2.0/ext/atomicity.h`:
```
#if __has_include(<sys/single_threaded.h>)
    #include <sys/single_threaded.h>
#else
...
#elif __has_include(<sys/single_threaded.h>)
    return ::__libc_single_threaded;
#else
```

`sys/single_threaded.h` is taken from the host Linux system from `/usr/include` instead of `/usr/x86_64-w64-mingw32/include`.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJykVV1v4ygU_TXk5coWgdhNHvyQtuPVSh2NtBrtPloYrmO2GCLATfPvV8RO06ma2c5UQvm4cA73nvuBCEHvLGJFiltS3C_EGHvnq22MXsgolPO4aJ06Vt8deNx7p0aJhG8JvSf0_FnSiCHmcr8nJb1slnRe01_GtZVmVAiE3w04OH8k_Mu0qW2EQWhL2JqwDZCb28kOIapEyLeDeMQm9MKjIvxO25iwp9OEz4fJzf37N79nlEbYHWG3hN1C1o0BM6MIvzdGQRaF32GE53XZlKtsL7ODtsodQrazI7yEeqIxKjcJuAX03vn0Y7QKO21RQTgOrTPJ1jRGt7IJ2u4MNrH3KBSq2TH-ZVrgsUOPVqKC9giE1XHYE1YnYTK1LPiyzV1Sg61zj90--vwKL9u8CjJbFj_4Z7R9RA_SDYOwCjqhDSo46NgDPusI0imEJRC2HgNC9gTRQUAEbZ-cFFE7-8L_rtB_zlkOKLzsYS9i_7GayPM8qTDjQhQ-BujRX-otaTIGT1g95-ZQrrJB292BM8LqmYuwWk6Z_U0Uq5csZzn9LPxdxKc5WyEfD8Krt0wfj-PX6FcPD39_bf769u17OlbkNC8Jq41uE37qoov5TP0rUV7x7qetfKXwSwo6wBhQgbaQYL-vMz5HwmoR3aCljse8_5_h1kHT9CI0L6Rrwu_CMRBWv3Ez70_Da24iAIAfG-EnoPNtaMKsUOqai_VTXniMo7cwDdwrCr8M29c-XMvStXunNEXxiBY67waIPULvQoQHbcdnCMcQcZi2XifxHFTC2xBRKHDdx9Nc0nyhKq42fCMWWC3LG74sCl7SRV8Jykopb-Sm47RsGWWKbYpiWXChNhT5eqErRhmnS7qmBWMrmjNerkWrREtlV3LZkRXFQWiTG_M05M7vFjqEEatis77ZLIxo0YTzM-urdChrx10gK2p0iOECizoarO5OrcW30HqXdDrXR5qn07T-qu0f_4Czs2gGhQppWL99gMJi9KbqY9yH0-tRE1bvdOzHNpduSL1sns5f2d67f1Gmyj95n_J3CuC_AAAA__9jX2kt">