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

    <tr>
        <th>Summary</th>
        <td>
            [libc] Link error in libc overlay mode
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          jun-shibata
      </td>
    </tr>
</table>

<pre>
    I linked a static archive (libllvmlibc.a) in the overlay mode of libc and built the code containing fileno.

```c
#include <stdio.h>
int main(int argc, char *argv[]) {
  return fileno(stderr);
}
```

Then a following link error occurred.

```script
$ clang a.c -L lib/libllvmlibc.a -lllvmlibc

/usr/bin/ld: lib/aarch64-unknown-linux-gnu/libllvmlibc.a(file.cpp.o): in function `__llvm_libc_21_0_0_git::RawMutex::lock_slow(__llvm_libc_21_0_0_git::cpp::optional<__llvm_libc_21_0_0_git::internal::AbsTimeout>, bool, unsigned int)':
file.cpp:(.text._ZN22__llvm_libc_21_0_0_git8RawMutex9lock_slowENS_3cpp8optionalINS_8internal10AbsTimeoutEEEbj[_ZN22__llvm_libc_21_0_0_git8RawMutex9lock_slowENS_3cpp8optionalINS_8internal10AbsTimeoutEEEbj]+0xb8): undefined reference to `__llvm_libc_21_0_0_git::internal::clock_gettime(int, timespec*)'
/usr/bin/ld: file.cpp:(.text._ZN22__llvm_libc_21_0_0_git8RawMutex9lock_slowENS_3cpp8optionalINS_8internal10AbsTimeoutEEEbj[_ZN22__llvm_libc_21_0_0_git8RawMutex9lock_slowENS_3cpp8optionalINS_8internal10AbsTimeoutEEEbj]+0xc4): undefined reference to `__llvm_libc_21_0_0_git::internal::clock_gettime(int, timespec*)'
/usr/bin/ld: a.out: hidden symbol `_ZN22__llvm_libc_21_0_0_git8internal13clock_gettimeEiP8timespec' isn't defined
/usr/bin/ld: final link failed: bad value
clang: error: linker command failed with exit code 1 (use -v to see invocation)
```

I used libc for AArch64 that was built followed official manual.
https://libc.llvm.org/overlay_mode.html#building-the-static-archive-as-part-of-the-bootstrap-build

llvm-project: a3dc77c00a012bb613cb08e669dab4fadf88e935
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzcVk-Po7gT_TTOpQRyTBLIIQe6O5FGml_rp5057QUZuwB3Gxv5T9L97VeGpHt6dqf3tNJqJSQoqCq_98pUmXuveoN4INs7sn1Y8RgG6w5P0WR-UC0PfNVa-Xr4AlqZZ5TAwQcelADuxKDOCIRVWrVan0etWpFzwvagDIQBwZ7Raf4Ko5UItoPkANxIaKPSYXYR6ZOwJnBllOmhUxqNzQmt07WjyyWSwQplhI4SgRT3Pkhl84EUR0JrZQKMXBnCqvTIXS8IuwcxcAeE1dz154VewkbKO0JrAIchOnNdkLDKB4nOEbYnRXIg5cOPCBZA3wc0wKGzWttLgptEAXTOOrBCROdQ_ozdC6emMBPYgNDc9MBzAdnXJAdhpw_iQaZvxjUNO0XvCDu1id5JS1LU10CeKrDbZNE8G3sxmVYmvmS9iT8nJaxKLHMxTbmdCdapQl00IihrgOxo0yT3Jvk3bN3Qhja9CqSoSVH_xi__iwFfFktb8dx4bS-EVZ9FiWlaHuyUFuGaFPef-SsT0M1uyapb_12NaGNIFWb30Fqr0z2aeb9KUCYkKqxMAbS-EUwWq_KALyFvfn9k7K_XrG6k9m98jo_fmkJMU3UD_OXxW1PdYK3pO6Tj8dg-ke3dP5z_gbA7-tJW14pFI7FTibrDDh0agRDs3xXvo6xiRtNjCGrE5W9JoibLTygIq6-a_mLj_WdVFpt_kco8n_d9DYOSEg3417G1esbwiRZvHIsP6x_V_6v3lUtQ3hBWBrjS_HWlDddLe-u40ji_bLmEM9cRCa3nTpZezt1v6UrmGR0IO46pxy9hcFFhAHxRYWn16zQvokfIzklXjwjKnK3gqVpJlj_13C8QPcpldnTWQV3PbQ_CwANcuL8Ok6UnowTbdUoormHkJnKd2vEQwuTnPXtaeqPIk4S5dT1hp-uUatKUyocwasKKlFMq02dhwGwZeNl14GXcZxN3IbPd_LW1Nvjg-JTNQQvolD6bnH1CMVeSF1KUpaCU0zVr2926EC2tcLfbS95uOi67qsJ9sV3JQyH3xZ6v8LAuN3Szq3bbzWo4lIzKNVYoq47t13zdokRGOynKCnd0S1fqwCjbUsa2tCzodpOzoqjomu7LksmdFB3ZUBy50m_UV8r7iIc1q3abYqV5i9rPxwDG5vnDWDoQuMPMpY29JxuqlQ_-PUNQQc9Hhzlg-wBf3-ehMkvNfjwErKLTh4_V6FUYYpsLO6bS6PPt9qYeO804PWGnK9Tzgf0RAAD__-5U25w">