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

    <tr>
        <th>Summary</th>
        <td>
            libc++:: `current_zone.pass.cpp` tests fail
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            libc++,
            regression
      </td>
    </tr>

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

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

<pre>
    When running libc++ tests against 0b021c4b603b4e076f9e54572a4eef3e43ab57c0, I'm getting two test failures:

```
FAIL: llvm-libc++-shared.cfg.in :: std/time/time.zone/time.zone.db/time.zone.db.access/current_zone.pass.cpp (8191 of 9570)
******************** TEST 'llvm-libc++-shared.cfg.in :: std/time/time.zone/time.zone.db/time.zone.db.access/current_zone.pass.cpp' FAILED ********************
Exit Code: 250

Command Output (stdout):
--
# COMPILED WITH
/usr/lib/ccache/bin/i686-pc-linux-gnu-clang++ /var/tmp/portage/sys-libs/libcxx-19.0.0_pre20240406/work/libcxx/test/std/time/time.zone/time.zone.db/time.zone.db.access/current_zone.pass.cpp -pthread --target=i686-pc-linux-gnu -nostdinc++ -I /var/tmp/portage/sys-libs/libcxx-19.0.0_pre20240406/work/runtimes_build-abi_x86_32.x86/include/c++/v1 -I /var/tmp/portage/sys-libs/libcxx-19.0.0_pre20240406/work/runtimes_build-abi_x86_32.x86/include/c++/v1 -I /var/tmp/portage/sys-libs/libcxx-19.0.0_pre20240406/work/libcxx/test/support -std=c++26 -Werror -Wall -Wctad-maybe-unsupported -Wextra -Wshadow -Wundef -Wunused-template -Wno-unused-command-line-argument -Wno-attributes -Wno-pessimizing-move -Wno-noexcept-type -Wno-atomic-alignment -Wno-reserved-module-identifier -Wdeprecated-copy -Wdeprecated-copy-dtor -Wno-user-defined-literals -Wno-tautological-compare -Wsign-compare -Wunused-variable -Wunused-parameter -Wunreachable-code -Wno-unused-local-typedef -Wno-local-type-template-args -Wno-c++11-extensions -Wno-unknown-pragmas -Wno-pass-failed -Wno-mismatched-new-delete -Wno-redundant-move -Wno-self-move -D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -D_LIBCPP_ENABLE_EXPERIMENTAL -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_NONE -Werror=thread-safety -Wuser-defined-warnings  -lc++experimental -nostdlib++ -L /var/tmp/portage/sys-libs/libcxx-19.0.0_pre20240406/work/runtimes_build-abi_x86_32.x86/lib -Wl,-rpath,/var/tmp/portage/sys-libs/libcxx-19.0.0_pre20240406/work/runtimes_build-abi_x86_32.x86/lib -lc++ -latomic -o /var/tmp/portage/sys-libs/libcxx-19.0.0_pre20240406/work/runtimes_build-abi_x86_32.x86/test/std/time/time.zone/time.zone.db/time.zone.db.access/Output/current_zone.pass.cpp.dir/t.tmp.exe
# executed command: /usr/lib/ccache/bin/i686-pc-linux-gnu-clang++ /var/tmp/portage/sys-libs/libcxx-19.0.0_pre20240406/work/libcxx/test/std/time/time.zone/time.zone.db/time.zone.db.access/current_zone.pass.cpp -pthread --target=i686-pc-linux-gnu -nostdinc++ -I /var/tmp/portage/sys-libs/libcxx-19.0.0_pre20240406/work/runtimes_build-abi_x86_32.x86/include/c++/v1 -I /var/tmp/portage/sys-libs/libcxx-19.0.0_pre20240406/work/runtimes_build-abi_x86_32.x86/include/c++/v1 -I /var/tmp/portage/sys-libs/libcxx-19.0.0_pre20240406/work/libcxx/test/support -std=c++26 -Werror -Wall -Wctad-maybe-unsupported -Wextra -Wshadow -Wundef -Wunused-template -Wno-unused-command-line-argument -Wno-attributes -Wno-pessimizing-move -Wno-noexcept-type -Wno-atomic-alignment -Wno-reserved-module-identifier -Wdeprecated-copy -Wdeprecated-copy-dtor -Wno-user-defined-literals -Wno-tautological-compare -Wsign-compare -Wunused-variable -Wunused-parameter -Wunreachable-code -Wno-unused-local-typedef -Wno-local-type-template-args -Wno-c++11-extensions -Wno-unknown-pragmas -Wno-pass-failed -Wno-mismatched-new-delete -Wno-redundant-move -Wno-self-move -D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -D_LIBCPP_ENABLE_EXPERIMENTAL -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_NONE -Werror=thread-safety -Wuser-defined-warnings -lc++experimental -nostdlib++ -L /var/tmp/portage/sys-libs/libcxx-19.0.0_pre20240406/work/runtimes_build-abi_x86_32.x86/lib -Wl,-rpath,/var/tmp/portage/sys-libs/libcxx-19.0.0_pre20240406/work/runtimes_build-abi_x86_32.x86/lib -lc++ -latomic -o /var/tmp/portage/sys-libs/libcxx-19.0.0_pre20240406/work/runtimes_build-abi_x86_32.x86/test/std/time/time.zone/time.zone.db/time.zone.db.access/Output/current_zone.pass.cpp.dir/t.tmp.exe
# EXECUTED AS
/usr/bin/python3.12 /var/tmp/portage/sys-libs/libcxx-19.0.0_pre20240406/work/libcxx/utils/run.py --execdir /var/tmp/portage/sys-libs/libcxx-19.0.0_pre20240406/work/runtimes_build-abi_x86_32.x86/test/std/time/time.zone/time.zone.db/time.zone.db.access/Output/current_zone.pass.cpp.dir -- /var/tmp/portage/sys-libs/libcxx-19.0.0_pre20240406/work/runtimes_build-abi_x86_32.x86/test/std/time/time.zone/time.zone.db/time.zone.db.access/Output/current_zone.pass.cpp.dir/t.tmp.exe
# executed command: /usr/bin/python3.12 /var/tmp/portage/sys-libs/libcxx-19.0.0_pre20240406/work/libcxx/utils/run.py --execdir /var/tmp/portage/sys-libs/libcxx-19.0.0_pre20240406/work/runtimes_build-abi_x86_32.x86/test/std/time/time.zone/time.zone.db/time.zone.db.access/Output/current_zone.pass.cpp.dir -- /var/tmp/portage/sys-libs/libcxx-19.0.0_pre20240406/work/runtimes_build-abi_x86_32.x86/test/std/time/time.zone/time.zone.db/time.zone.db.access/Output/current_zone.pass.cpp.dir/t.tmp.exe
# .---command stderr------------
# | libc++abi: terminating due to uncaught exception of type std::runtime_error: tzdb: the time zone '../../../var/tmp/portage/sys-libs/libcxx-19.0.0_pre20240406/work/runtimes_build-abi_x86_32.x86/test/std/time/time.zone/time.zone.db/time.zone.db.access/Output/usr/share/zoneinfo/Poland' is not found in the database
# `-----------------------------
# error: command failed with exit status: 250

--

********************
FAIL: llvm-libc++-shared.cfg.in :: std/time/time.zone/time.zone.db/time.zone.db.tzdb/current_zone.pass.cpp (8202 of 9570)
******************** TEST 'llvm-libc++-shared.cfg.in :: std/time/time.zone/time.zone.db/time.zone.db.tzdb/current_zone.pass.cpp' FAILED ********************
Exit Code: 250

Command Output (stdout):
--
# COMPILED WITH
/usr/lib/ccache/bin/i686-pc-linux-gnu-clang++ /var/tmp/portage/sys-libs/libcxx-19.0.0_pre20240406/work/libcxx/test/std/time/time.zone/t
ime.zone.db/time.zone.db.tzdb/current_zone.pass.cpp -pthread --target=i686-pc-linux-gnu -nostdinc++ -I /var/tmp/portage/sys-libs/libcxx
-19.0.0_pre20240406/work/runtimes_build-abi_x86_32.x86/include/c++/v1 -I /var/tmp/portage/sys-libs/libcxx-19.0.0_pre20240406/work/runti
mes_build-abi_x86_32.x86/include/c++/v1 -I /var/tmp/portage/sys-libs/libcxx-19.0.0_pre20240406/work/libcxx/test/support -std=c++26 -Wer
ror -Wall -Wctad-maybe-unsupported -Wextra -Wshadow -Wundef -Wunused-template -Wno-unused-command-line-argument -Wno-attributes -Wno-pe
ssimizing-move -Wno-noexcept-type -Wno-atomic-alignment -Wno-reserved-module-identifier -Wdeprecated-copy -Wdeprecated-copy-dtor -Wno-u
ser-defined-literals -Wno-tautological-compare -Wsign-compare -Wunused-variable -Wunused-parameter -Wunreachable-code -Wno-unused-local-typedef -Wno-local-type-template-args -Wno-c++11-extensions -Wno-unknown-pragmas -Wno-pass-failed -Wno-mismatched-new-delete -Wno-redu
ndant-move -Wno-self-move -D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -D_LIBCPP_ENABLE_EXPERIMENTAL -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENIN
G_MODE_NONE -Werror=thread-safety -Wuser-defined-warnings  -lc++experimental -nostdlib++ -L /var/tmp/portage/sys-libs/libcxx-19.0.0_pre
20240406/work/runtimes_build-abi_x86_32.x86/lib -Wl,-rpath,/var/tmp/portage/sys-libs/libcxx-19.0.0_pre20240406/work/runtimes_build-abi_
x86_32.x86/lib -lc++ -latomic -o /var/tmp/portage/sys-libs/libcxx-19.0.0_pre20240406/work/runtimes_build-abi_x86_32.x86/test/std/time/t
ime.zone/time.zone.db/time.zone.db.tzdb/Output/current_zone.pass.cpp.dir/t.tmp.exe
# executed command: /usr/lib/ccache/bin/i686-pc-linux-gnu-clang++ /var/tmp/portage/sys-libs/libcxx-19.0.0_pre20240406/work/libcxx/test/
std/time/time.zone/time.zone.db/time.zone.db.tzdb/current_zone.pass.cpp -pthread --target=i686-pc-linux-gnu -nostdinc++ -I /var/tmp/portage/sys-libs/libcxx-19.0.0_pre20240406/work/runtimes_build-abi_x86_32.x86/include/c++/v1 -I /var/tmp/portage/sys-libs/libcxx-19.0.0_pr
e20240406/work/runtimes_build-abi_x86_32.x86/include/c++/v1 -I /var/tmp/portage/sys-libs/libcxx-19.0.0_pre20240406/work/libcxx/test/sup
port -std=c++26 -Werror -Wall -Wctad-maybe-unsupported -Wextra -Wshadow -Wundef -Wunused-template -Wno-unused-command-line-argument -Wn
o-attributes -Wno-pessimizing-move -Wno-noexcept-type -Wno-atomic-alignment -Wno-reserved-module-identifier -Wdeprecated-copy -Wdepreca
ted-copy-dtor -Wno-user-defined-literals -Wno-tautological-compare -Wsign-compare -Wunused-variable -Wunused-parameter -Wunreachable-co
de -Wno-unused-local-typedef -Wno-local-type-template-args -Wno-c++11-extensions -Wno-unknown-pragmas -Wno-pass-failed -Wno-mismatched-
new-delete -Wno-redundant-move -Wno-self-move -D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -D_LIBCPP_ENABLE_EXPERIMENTAL -D_LIBCPP_HARDENING_M
ODE=_LIBCPP_HARDENING_MODE_NONE -Werror=thread-safety -Wuser-defined-warnings -lc++experimental -nostdlib++ -L /var/tmp/portage/sys-libs/libcxx-19.0.0_pre20240406/work/runtimes_build-abi_x86_32.x86/lib -Wl,-rpath,/var/tmp/portage/sys-libs/libcxx-19.0.0_pre20240406/work/
runtimes_build-abi_x86_32.x86/lib -lc++ -latomic -o /var/tmp/portage/sys-libs/libcxx-19.0.0_pre20240406/work/runtimes_build-abi_x86_32.
x86/test/std/time/time.zone/time.zone.db/time.zone.db.tzdb/Output/current_zone.pass.cpp.dir/t.tmp.exe
# EXECUTED AS
/usr/bin/python3.12 /var/tmp/portage/sys-libs/libcxx-19.0.0_pre20240406/work/libcxx/utils/run.py --execdir /var/tmp/portage/sys-libs/li
bcxx-19.0.0_pre20240406/work/runtimes_build-abi_x86_32.x86/test/std/time/time.zone/time.zone.db/time.zone.db.tzdb/Output/current_zone.p
ass.cpp.dir -- /var/tmp/portage/sys-libs/libcxx-19.0.0_pre20240406/work/runtimes_build-abi_x86_32.x86/test/std/time/time.zone/time.zon
e.db/time.zone.db.tzdb/Output/current_zone.pass.cpp.dir/t.tmp.exe
# executed command: /usr/bin/python3.12 /var/tmp/portage/sys-libs/libcxx-19.0.0_pre20240406/work/libcxx/utils/run.py --execdir /var/tmp
/portage/sys-libs/libcxx-19.0.0_pre20240406/work/runtimes_build-abi_x86_32.x86/test/std/time/time.zone/time.zone.db/time.zone.db.tzdb/O
utput/current_zone.pass.cpp.dir -- /var/tmp/portage/sys-libs/libcxx-19.0.0_pre20240406/work/runtimes_build-abi_x86_32.x86/test/std/time
/time.zone/time.zone.db/time.zone.db.tzdb/Output/current_zone.pass.cpp.dir/t.tmp.exe
# .---command stderr------------
# | libc++abi: terminating due to uncaught exception of type std::runtime_error: tzdb: the time zone '../../../var/tmp/portage/sys-libs
/libcxx-19.0.0_pre20240406/work/runtimes_build-abi_x86_32.x86/test/std/time/time.zone/time.zone.db/time.zone.db.tzdb/Output/usr/share/zoneinfo/Poland' is not found in the database
# `-----------------------------
# error: command failed with exit status: 250

--

********************
```

```
$ ls -lh /etc/localtime
lrwxrwxrwx 1 root root 28 Apr  8  2023 /etc/localtime -> ../usr/share/zoneinfo/Poland
```

Perhaps it doesn't handle relative symlinks correctly?

CC @mordante 
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsW1tz4joS_jXiRSWXkQmGBx4ImDOpyq0m2crZJ0q2Gls7suSS5ATm12_Jl4TMJXt2Zk6G5JCiIDZy--uvW91Nd5lZK3IFMEMnp-hkOWC1K7SZlbk2ajdINd_N7gpQ2NRKCZVjKdIM0VNET7ED6yxmORPKOhymIR1mo3QcRukIwni8mcLJ6CSmbASwiWAUsfQkzkJEF_gM0bjEOTjnRboH3cjCGyZkbcCiaI7CJQr793HYvZrD1fzsHEVzLOV9SZ7gEFswAzzINnkgFPYyojm2jiO6cqKE7iP4rNWz_wOefnEYsCwDaxFdZbUxoNy6-aJi1gZZVWFEJ5PhdIj1Bk9P4hDRaYeT_vgL3yY3txjR-HdphWiMPbPJEv-MHi0TyVY4vNAcPFh6Eu5bc6HLkimOr2pX1c6TaR3XtfM09nYnpGc0wouri-sG1t3Z7Yf-9Kq2BtGVFF7LLGNZ4bVPhUJ0JcaTMakyIoWqtyRXNckkU3nntIiu7pm_1pUVoqtKG8dyf7HdWc-7bcVm2y0ZToMwCNeVARrSUTgKx4iuHrT59LjEiwHr_NV_g5-RyhUGGMeEOGZycChafqUcJkpbx4XqdyU5-1U6mlp5uHad1kJywlKx3k7G64gG24lfJlQma-7ldvf29x2-JwBfWbmuvChMvLmjZXdXOsbkDozRBpM7JiUmd5ljnJRslwKpVXcVcL9s6wzD5M4WjOsHTO5qxWHTfNYWOHFQVpI5wOROadKdzNot440OhJm8LkG5dgVzzoi0dmDb4wqsFaX4LFROSn3fyVEathlUjrhdBf2FuhQZYVLk6kmcAQvmHjgpNa8lEMFBObER4FXjUBnImGsQVbuvzxDuGg48cguGcNgIBR63A8NkB9Gx2mmpc5Ex6VWrmPGYfBraO-xUv2dGsFTunamYYSW4BlGtDLCs8AtIpvlz1qT2N_AatwwrvXfqkWjPZwesM-dwSGDrQFmhle0lflL6QZHKsLxkPdXMWuJTVmNYpUkpbMlcVgAnCh4IBwm9IQ3wWnGm3J5RLMhNd7hcn5-dLq6v1x_mN-vLq_X1x_kfF_P1zb9vbpOL9Ydkvkw-7q1KLuen58k6-fM6-Xh2kVzezs-fyfi4TC7PLv9YX1wtExR954v15dVl0jsuipZtrCGWbcB52z6z4AMzPvtbjInsaIJtBUZ412GyC0JNOG6D0PlrxQApUkzuJKILYirmCkQXr3ln-Rh2ZbujMNGvpfovST1tGv5eDgq4aPQIXFkFsIWntAxbyGof07rg5DP9MS8f8_IxLx_z8jEvv3pePqblY1r2aTn5M1n86zZZ4vnNF7-V2yRc7VyhVRQM6S-PxbUT0rb8BD4KEV8icGHeGe-YkHem0Q8UeEdnOjrT_-NMASF9tYSt42AM2ft7WofixV6HmaXCe50DUwrFml4xrwE7jWuVsTovHG7rJ6EV1hvcVFFNCThH0bwjZN0l0jl2n3nafBaA_TfYg8eIxkGA6Orp7e1Zo92UTasY0ZVfJ9RGI7q61tJvXRpjYbHSDm90rTgWqiGBM8dSZvfshMYheelvLzz0rPZm7SquB-EKDFvhsHXM1fYbHeBHMT_dNX-tgUDjOS-NA2hI39o44CWdjsOAv6np0EL-UU97hcZDR_lB__pvALRA30wTooV7IK2IFsyBNCQ6MMe2xBdtiZaXg2lOtHAOeHTQAjzwTkUL8g30K54nqr9WSrzzUUIXqH55_fjPGie0LP52GH8tn7dgD2q00EI6kAFDC-ZAxgwtmAPK6l0GP4yRQwvmOHj48Tt3Jfzhjh8ei4uf7C_9ZDp_uyOIFu5v7e29zH0L8LD7x12Cf-Uy8UBcq_f3322El-hvQR72aKLn8ZVC1nsaT_TUHYi3HUcU33iE4dsn6Qj7IlkWft-By7wRfa36tCOkedi2LzzERmvXvtEJnlcG4wnGNPQUfXU5JihKcOM-_8sQ38d7DaZglcXCYa7BKkRjhwumuARsQDIn7gHbXSmF-mRxpo2BzMkdilbPWv4LjEZhqY2vgQEP-Czi02jKBjAbxkMaTUdhHA2K2WSYDcdROtxsRtPplHIep2zM6UkUAo0n2WggZr1Hh9NwOKTBcDqNU4hGacwpsHGERiGUTMhAyvsy0CYfCGtrmE3iSUwHkqUgbfPYC6VPmxpR2pSM1EBu_G8qrfypk-XAzJphTFrnFo1CKayzT5KdcBJme2LayQwah98esIzD7vEZ75OD2shZ4VzVPPlCV4iucuGKOg0yXXozyvv-g1RG_wcyv6MaZXwEbvT5bwAAAP__oZ2m0Q">