On Wed, 12 Mar 2025 at 20:11, Dennis Clarke <dclarke@xxxxxxxxxxxxx> wrote: > > On 3/12/25 15:59, Jonathan Wakely wrote: > > On Wed, 12 Mar 2025 at 19:58, Dennis Clarke <dclarke@xxxxxxxxxxxxx> wrote: > >> > >> On 3/12/25 15:42, Jonathan Wakely wrote: > ... > > >> hrmmm ... baffling fail for me. > > > > Oh you need to use -std=c++20 > > > > > > Oh, that seems to work. > > t$ > t$ which g++ > /opt/bw/gcc14/bin/g++ > t$ > t$ g++ -std=c++20 -v -c -o tz_test.o tz_test.cpp > Using built-in specs. > COLLECT_GCC=g++ > Target: x86_64-linux-gnu > Configured with: ../gcc-14.2.0/configure --prefix=/opt/bw/gcc14 > --with-gnu-as --with-as=/opt/bw/bin/gas --with-gnu-ld > --with-ld=/opt/bw/bin/gld --disable-nls --disable-multilib > --enable-threads=posix --enable-shared > --with-build-time-tools=/opt/bw/bin --enable-bootstrap > --with-tune=generic --enable-linker-build-id --without-cuda-driver > --enable-__cxa_atexit --with-default-libstdcxx-abi=new --enable-tls > --enable-gnu-unique-object --enable-default-pie --with-abi=m64 > --build=x86_64-linux-gnu --host=x86_64-linux-gnu > --target=x86_64-linux-gnu --with-pkgversion='GENUNIX Tue Mar 11 17:29:45 > UTC 2025' > Thread model: posix > Supported LTO compression algorithms: zlib > gcc version 14.2.0 (GENUNIX Tue Mar 11 17:29:45 UTC 2025) > COLLECT_GCC_OPTIONS='-std=c++20' '-v' '-c' '-o' 'tz_test.o' > '-shared-libgcc' '-mtune=generic' '-march=x86-64' > /opt/bw/gcc14/libexec/gcc/x86_64-linux-gnu/14.2.0/cc1plus -quiet -v > -imultiarch x86_64-linux-gnu -D_GNU_SOURCE tz_test.cpp -quiet -dumpbase > tz_test.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -std=c++20 > -version -o /var/tmp/dclarke/ccQl81Rk.s > GNU C++20 (GENUNIX Tue Mar 11 17:29:45 UTC 2025) version 14.2.0 > (x86_64-linux-gnu) > compiled by GNU C version 14.2.0, GMP version 6.3.0, MPFR > version 4.2.1, MPC version 1.3.1, isl version isl-0.24-GMP > > GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 > ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu" > ignoring nonexistent directory "/usr/local/include" > ignoring nonexistent directory > "/opt/bw/gcc14/lib/gcc/x86_64-linux-gnu/14.2.0/include-fixed/x86_64-linux-gnu" > ignoring nonexistent directory > "/opt/bw/gcc14/lib/gcc/x86_64-linux-gnu/14.2.0/../../../../x86_64-linux-gnu/include" > #include "..." search starts here: > #include <...> search starts here: > > /opt/bw/gcc14/lib/gcc/x86_64-linux-gnu/14.2.0/../../../../include/c++/14.2.0 > > /opt/bw/gcc14/lib/gcc/x86_64-linux-gnu/14.2.0/../../../../include/c++/14.2.0/x86_64-linux-gnu > > /opt/bw/gcc14/lib/gcc/x86_64-linux-gnu/14.2.0/../../../../include/c++/14.2.0/backward > /opt/bw/gcc14/lib/gcc/x86_64-linux-gnu/14.2.0/include > /opt/bw/gcc14/include > /opt/bw/gcc14/lib/gcc/x86_64-linux-gnu/14.2.0/include-fixed > /usr/include/x86_64-linux-gnu > /usr/include > End of search list. > Compiler executable checksum: 535b3d6b2f041edb1bee904d2c29ef0f > COLLECT_GCC_OPTIONS='-std=c++20' '-v' '-c' '-o' 'tz_test.o' > '-shared-libgcc' '-mtune=generic' '-march=x86-64' > /opt/bw/bin/gas -v --64 -o tz_test.o /var/tmp/dclarke/ccQl81Rk.s > GNU assembler version 2.44 (x86_64-pc-linux-gnu) using BFD version > (GENUNIX Mon Mar 10 16:45:34 UTC 2025) 2.44 > COMPILER_PATH=/opt/bw/gcc14/libexec/gcc/x86_64-linux-gnu/14.2.0/:/opt/bw/gcc14/libexec/gcc/x86_64-linux-gnu/14.2.0/:/opt/bw/gcc14/libexec/gcc/x86_64-linux-gnu/:/opt/bw/gcc14/lib/gcc/x86_64-linux-gnu/14.2.0/:/opt/bw/gcc14/lib/gcc/x86_64-linux-gnu/ > LIBRARY_PATH=/opt/bw/gcc14/lib/gcc/x86_64-linux-gnu/14.2.0/:/opt/bw/gcc14/lib/gcc/x86_64-linux-gnu/14.2.0/../../../../lib64/:/lib/x86_64-linux-gnu/:/lib/../lib64/:/usr/lib/x86_64-linux-gnu/:/opt/bw/gcc14/lib/gcc/x86_64-linux-gnu/14.2.0/../../../:/lib/:/usr/lib/ > COLLECT_GCC_OPTIONS='-std=c++20' '-v' '-c' '-o' 'tz_test.o' > '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'tz_test.' > t$ > > However ... not able to make an executable : > > t$ > t$ g++ -std=c++20 -v -o tz_test tz_test.o > Using built-in specs. > COLLECT_GCC=g++ > COLLECT_LTO_WRAPPER=/opt/bw/gcc14/libexec/gcc/x86_64-linux-gnu/14.2.0/lto-wrapper > Target: x86_64-linux-gnu > Configured with: ../gcc-14.2.0/configure --prefix=/opt/bw/gcc14 > --with-gnu-as --with-as=/opt/bw/bin/gas --with-gnu-ld > --with-ld=/opt/bw/bin/gld --disable-nls --disable-multilib > --enable-threads=posix --enable-shared > --with-build-time-tools=/opt/bw/bin --enable-bootstrap > --with-tune=generic --enable-linker-build-id --without-cuda-driver > --enable-__cxa_atexit --with-default-libstdcxx-abi=new --enable-tls > --enable-gnu-unique-object --enable-default-pie --with-abi=m64 > --build=x86_64-linux-gnu --host=x86_64-linux-gnu > --target=x86_64-linux-gnu --with-pkgversion='GENUNIX Tue Mar 11 17:29:45 > UTC 2025' > Thread model: posix > Supported LTO compression algorithms: zlib > gcc version 14.2.0 (GENUNIX Tue Mar 11 17:29:45 UTC 2025) > COMPILER_PATH=/opt/bw/gcc14/libexec/gcc/x86_64-linux-gnu/14.2.0/:/opt/bw/gcc14/libexec/gcc/x86_64-linux-gnu/14.2.0/:/opt/bw/gcc14/libexec/gcc/x86_64-linux-gnu/:/opt/bw/gcc14/lib/gcc/x86_64-linux-gnu/14.2.0/:/opt/bw/gcc14/lib/gcc/x86_64-linux-gnu/ > LIBRARY_PATH=/opt/bw/gcc14/lib/gcc/x86_64-linux-gnu/14.2.0/:/opt/bw/gcc14/lib/gcc/x86_64-linux-gnu/14.2.0/../../../../lib64/:/lib/x86_64-linux-gnu/:/lib/../lib64/:/usr/lib/x86_64-linux-gnu/:/opt/bw/gcc14/lib/gcc/x86_64-linux-gnu/14.2.0/../../../:/lib/:/usr/lib/ > COLLECT_GCC_OPTIONS='-std=c++20' '-v' '-o' 'tz_test' '-shared-libgcc' > '-mtune=generic' '-march=x86-64' '-dumpdir' 'tz_test.' > /opt/bw/gcc14/libexec/gcc/x86_64-linux-gnu/14.2.0/collect2 -plugin > /opt/bw/gcc14/libexec/gcc/x86_64-linux-gnu/14.2.0/liblto_plugin.so > -plugin-opt=/opt/bw/gcc14/libexec/gcc/x86_64-linux-gnu/14.2.0/lto-wrapper > -plugin-opt=-fresolution=/var/tmp/dclarke/ccJJOCX3.res > -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc > -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s > -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 > -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o tz_test > /usr/lib/x86_64-linux-gnu/Scrt1.o /usr/lib/x86_64-linux-gnu/crti.o > /opt/bw/gcc14/lib/gcc/x86_64-linux-gnu/14.2.0/crtbeginS.o > -L/opt/bw/gcc14/lib/gcc/x86_64-linux-gnu/14.2.0 > -L/opt/bw/gcc14/lib/gcc/x86_64-linux-gnu/14.2.0/../../../../lib64 > -L/lib/x86_64-linux-gnu -L/lib/../lib64 -L/usr/lib/x86_64-linux-gnu > -L/opt/bw/gcc14/lib/gcc/x86_64-linux-gnu/14.2.0/../../.. tz_test.o > -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc > /opt/bw/gcc14/lib/gcc/x86_64-linux-gnu/14.2.0/crtendS.o > /usr/lib/x86_64-linux-gnu/crtn.o > COLLECT_GCC_OPTIONS='-std=c++20' '-v' '-o' 'tz_test' '-shared-libgcc' > '-mtune=generic' '-march=x86-64' '-dumpdir' 'tz_test.' > t$ > t$ ldd ./tz_test > ./tz_test: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version > `GLIBCXX_3.4.32' not found (required by ./tz_test) > ./tz_test: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version > `GLIBCXX_3.4.31' not found (required by ./tz_test) > linux-vdso.so.1 (0x00007fffe3b5c000) > libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 > (0x00007faaf6a00000) > libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007faaf6cc6000) > libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 > (0x00007faaf6ca6000) > libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007faaf681f000) > /lib64/ld-linux-x86-64.so.2 (0x00007faaf6db4000) > t$ > > t$ > t$ ./tz_test > ./tz_test: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version > `GLIBCXX_3.4.32' not found (required by ./tz_test) > ./tz_test: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version > `GLIBCXX_3.4.31' not found (required by ./tz_test) > t$ > > Now this is getting strange. No it isn't: https://gcc.gnu.org/onlinedocs/libstdc++/faq.html#faq.how_to_set_paths You can just use -static-libstdc++ for this test.