On Wed, 12 Mar 2025 at 18:38, Dennis Clarke <dclarke@xxxxxxxxxxxxx> wrote: > > On 3/12/25 14:06, Jonathan Wakely wrote: > > On Wed, 12 Mar 2025 at 17:52, Dennis Clarke wrote: > >> This is a default out of the box install of Devuan Linux which is just a > >> really fantastic Linux distro based on the Debian goodness. .... > > > Please don't. Nobody cares if you incorrectly think ... > > Sorry ... won't happen again. > > > > >>> I see from your follow-up that it fixed your original issue. I'm still > >>> curious why all the C++ time zone tests fail. Do you have an > >>> incomplete/modified tzdata file on the system? If no tzdata files are > >>> found, then a bundled copy of tzdata should get used, so if they're > >>> failing that suggests your system does have the data but it's > >>> incomplete. > >>> > >>> Could you please look in the > >>> x86_64-pc-linux-gnu/libstdc++-v3/testsuite/libstdc++.log file and > >>> search for ^FAIL and see what the errors are? > >> > >> t$ find . -type f -name libstdc++.log > >> ./x86_64-linux-gnu/libstdc++-v3/testsuite/libstdc++.log > >> t$ > >> t$ wc -l ./x86_64-linux-gnu/libstdc++-v3/testsuite/libstdc++.log > >> 115033 ./x86_64-linux-gnu/libstdc++-v3/testsuite/libstdc++.log > >> t$ > >> > >> Yikes .... 115033 lines. > >> > >> t$ > >> t$ grep '^FAIL' ./x86_64-linux-gnu/libstdc++-v3/testsuite/libstdc++.log > >> FAIL: std/time/time_zone/get_info_local.cc -std=gnu++20 execution test > >> FAIL: std/time/time_zone/get_info_local.cc -std=gnu++26 execution test > >> FAIL: std/time/time_zone/get_info_sys.cc -std=gnu++20 execution test > >> FAIL: std/time/time_zone/get_info_sys.cc -std=gnu++26 execution test > >> FAIL: std/time/tzdb/1.cc -std=gnu++20 execution test > >> FAIL: std/time/tzdb/1.cc -std=gnu++26 execution test > >> FAIL: std/time/exceptions.cc -std=gnu++20 execution test > >> FAIL: std/time/exceptions.cc -std=gnu++26 execution test > >> FAIL: std/time/zoned_time/1.cc -std=gnu++20 execution test > >> FAIL: std/time/zoned_time/1.cc -std=gnu++26 execution test > >> FAIL: std/time/zoned_time/custom.cc -std=gnu++20 execution test > >> FAIL: std/time/zoned_time/custom.cc -std=gnu++26 execution test > >> FAIL: std/time/zoned_time/io.cc -std=gnu++20 execution test > >> FAIL: std/time/zoned_time/io.cc -std=gnu++26 execution test > >> FAIL: libstdc++-prettyprinters/chrono.cc execution test > >> FAIL: libstdc++-prettyprinters/chrono.cc execution test > >> t$ > >> > >> No idea why these are failing. > > > > Look in the log, it will tell you. All you've shown is that they fail, > > which was already in the gcc-testresults email. > > > > Search for ^FAIL in the file and look at the lines surrounding it. > > They're probably all failing for the same reason. > > > > Alrighty then .. we have something here : > > t$ > t$ grep -n '^FAIL' ./x86_64-linux-gnu/libstdc++-v3/testsuite/libstdc++.log > 27145:FAIL: std/time/time_zone/get_info_local.cc -std=gnu++20 execution > test > 27157:FAIL: std/time/time_zone/get_info_local.cc -std=gnu++26 execution > test > 47161:FAIL: std/time/time_zone/get_info_sys.cc -std=gnu++20 execution test > 47173:FAIL: std/time/time_zone/get_info_sys.cc -std=gnu++26 execution test > 47204:FAIL: std/time/tzdb/1.cc -std=gnu++20 execution test > 47215:FAIL: std/time/tzdb/1.cc -std=gnu++26 execution test > 87928:FAIL: std/time/exceptions.cc -std=gnu++20 execution test > 87942:FAIL: std/time/exceptions.cc -std=gnu++26 execution test > 88813:FAIL: std/time/zoned_time/1.cc -std=gnu++20 execution test > 88827:FAIL: std/time/zoned_time/1.cc -std=gnu++26 execution test > 88839:FAIL: std/time/zoned_time/custom.cc -std=gnu++20 execution test > 88851:FAIL: std/time/zoned_time/custom.cc -std=gnu++26 execution test > 88875:FAIL: std/time/zoned_time/io.cc -std=gnu++20 execution test > 88887:FAIL: std/time/zoned_time/io.cc -std=gnu++26 execution test > 102909:FAIL: libstdc++-prettyprinters/chrono.cc execution test > 103859:FAIL: libstdc++-prettyprinters/chrono.cc execution test > t$ > > I will drag out the first FAIL there : > > t$ head -27145 ./x86_64-linux-gnu/libstdc++-v3/testsuite/libstdc++.log > | tail -7 > PASS: std/time/time_zone/get_info_local.cc -std=gnu++20 (test for > excess errors) > Setting LD_LIBRARY_PATH to > :/opt/bw/build/gcc-14.2.0_linux_xeon.003/gcc:/opt/bw/build/gcc-14.2.0_linux_xeon.003/x86_64-linux-gnu/./libstdc++-v3/../libatomic/.libs:/opt/bw/build/gcc-14.2.0_linux_xeon.003/x86_64-linux-gnu/./libstdc++-v3/../libgomp/.libs:/opt/bw/build/gcc-14.2.0_linux_xeon.003/x86_64-linux-gnu/./libstdc++-v3/src/.libs::/opt/bw/build/gcc-14.2.0_linux_xeon.003/gcc:/opt/bw/build/gcc-14.2.0_linux_xeon.003/x86_64-linux-gnu/./libstdc++-v3/../libatomic/.libs:/opt/bw/build/gcc-14.2.0_linux_xeon.003/x86_64-linux-gnu/./libstdc++-v3/../libgomp/.libs:/opt/bw/build/gcc-14.2.0_linux_xeon.003/x86_64-linux-gnu/./libstdc++-v3/src/.libs:/opt/bw/build/gcc-14.2.0_linux_xeon.003/./gmp/.libs:/opt/bw/build/gcc-14.2.0_linux_xeon.003/./prev-gmp/.libs:/opt/bw/build/gcc-14.2.0_linux_xeon.003/./mpfr/src/.libs:/opt/bw/build/gcc-14.2.0_linux_xeon.003/./prev-mpfr/src/.libs:/opt/bw/build/gcc-14.2.0_linux_xeon.003/./mpc/src/.libs:/opt/bw/build/gcc-14.2.0_linux_xeon.003/./prev-mpc/src/.libs:/opt/bw/build/gcc-14.2.0_linux_xeon.003/./isl/.libs:/opt/bw/build/gcc-14.2.0_linux_xeon.003/./prev-isl/.libs:/opt/bw/build/gcc-14.2.0_linux_xeon.003/x86_64-linux-gnu/libstdc++-v3/src/.libs:/opt/bw/build/gcc-14.2.0_linux_xeon.003/x86_64-linux-gnu/libsanitizer/.libs:/opt/bw/build/gcc-14.2.0_linux_xeon.003/x86_64-linux-gnu/libvtv/.libs:/opt/bw/build/gcc-14.2.0_linux_xeon.003/x86_64-linux-gnu/libssp/.libs:/opt/bw/build/gcc-14.2.0_linux_xeon.003/x86_64-linux-gnu/libgomp/.libs:/opt/bw/build/gcc-14.2.0_linux_xeon.003/x86_64-linux-gnu/libitm/.libs:/opt/bw/build/gcc-14.2.0_linux_xeon.003/x86_64-linux-gnu/libatomic/.libs:/opt/bw/build/gcc-14.2.0_linux_xeon.003/./gcc:/opt/bw/build/gcc-14.2.0_linux_xeon.003/./prev-gcc > Execution timeout is: 300 > spawn [open ...] > terminate called after throwing an instance of 'std::runtime_error' > what(): std::chrono::tzdb: cannot locate zone: Europe/London > FAIL: std/time/time_zone/get_info_local.cc -std=gnu++20 execution test > t$ > > > OKay, so the timezone Europe/London is absent somewhere? > > t$ > t$ ls -l /usr/share/zoneinfo/Europe/London > -rw-r--r-- 1 root root 3664 Nov 23 14:04 /usr/share/zoneinfo/Europe/London > t$ > > > Seems to exist on the machine. > > > So that is baffling. As I said, only the /usr/share/zoneinfo/tzdata.zi file matters, not the Europe/London file. On my machine it contains that zone: $ grep Europe/London /usr/share/zoneinfo/tzdata.zi Z Europe/London -0:1:15 - LMT 1847 D L Europe/London GB L Europe/London GB-Eire L Europe/London Europe/Guernsey L Europe/London Europe/Isle_of_Man L Europe/London Europe/Jersey L Europe/London Europe/Belfast > I will drag out the others but I am guessing they all say "cannot > locate" some timezone data somehow. > > terminate called after throwing an instance of 'std::runtime_error' > what(): std::chrono::tzdb: cannot locate zone: Europe/Zurich > FAIL: std/time/time_zone/get_info_sys.cc -std=gnu++20 execution test > > > Execution timeout is: 300 > spawn [open ...] > /opt/bw/build/gcc-14.2.0/libstdc++-v3/testsuite/std/time/tzdb/1.cc:18: > void test_version(): Assertion 'db.version == remote_version()' failed. > FAIL: std/time/tzdb/1.cc -std=gnu++26 execution test > > Hold the phone .... execution timeout ? It's telling you the timeout is set to 300s, not that it timed out. Could you please compile and run this program with this installed gcc-14: #include <chrono> #include <iostream> int main() { std::cout << std::chrono::get_tzdb().version << '\n'; }