Hi Takashi, Using the test version of the relevant Clang/LLVM packages (21.1.4.2 for *libc++1*, *libc++-devel* and *libcxx-debuginfo*; 21.1.4.1 for the rest) I was able to compile a simple hello.cc and the 'unit_test_framework' library from Boost (www.boost.org) based on these flags *-stdlib=libc++ -rtlib=compiler-rt -unwindlib=libunwind -fuse-ld=lld* and the resulted binaries do not depend on *cyggcc_s-seh-1.dll*.
Thank you for such a great and rapid fix. Please email me if there are other things I could check. Kind regards, Florin Tulba On Fri, Jan 16, 2026 at 4:38 PM Takashi Yano <[email protected]> wrote: > On Fri, 16 Jan 2026 00:05:31 +0200 > Florin wrote: > > On Thu, Jan 15, 2026 at 5:00 PM Takashi Yano via Cygwin < > [email protected]> > > wrote: > > > > > On Thu, 15 Jan 2026 21:53:21 +0900 > > > Takashi Yano wrote: > > > > On Sun, 11 Jan 2026 23:11:00 +0200 > > > > Florin wrote: > > > > > Hello Cygwin list, > > > > > > > > > > I’ve noticed that the Clang/LLVM stable packages in Cygwin are at > > > version > > > > > 20.1.x, while the libc++-devel, libc++1, libc++abi-devel, > libc++abi1, > > > > > libunwind-devel and libunwind1 packages are still at 8.0.1. > According > > > to > > > > > the package summaries, they were last updated in 2019. > > > > > > > > > > This version mismatch can present issues using modern C++ features > and > > > > > makes it hard to use a complete LLVM toolchain with libc++ on > Cygwin. > > > > > > > > > > I searched the Cygwin mailing list archives for prior posts about > > > updating > > > > > libc++, but I didn’t find a clear request or discussion about > > > coordinating > > > > > libc++ versions with newer Clang. > > > > > > > > > > Could you clarify if there is a plan to update libc++ to match more > > > recent > > > > > LLVM releases, or if the recommended C++ standard library for > newer and > > > > > future Clang versions on Cygwin should be libstdc++. > > > > > > > > > > Thank you for your time and I'm grateful for the effort you all put > > > into > > > > > this project. > > > > > > > > I have just uploaded libcxx, compiler-rt, and libunwind packages. > > > > However, you cannot use them with -stdlib=libc++, -rtlib=compiler-rt, > > > > and -unwindlib=libunwind. This is because clang package has > incomplete > > > > cygwin driver. > > > > > > > > You can link them to, for example hello.cc, with: > > > > clang++ -stdlib=libc++ -isystem /usr/include/c++/v1 hello.cc -lc++ > > > $(clang --print-resource-dir)/lib/cygwin/libclang_rt.builtins-x86_64.a > > > -lunwind > > > > > > > > The resulted a.exe will be free from libgcc_s. Please try. > > > > > > I also uploaded 21.1.4-1 (Test) which works with clang/llvm 21.1.4-1 > > > (Test). > > > This test version does not have the problem above. > > > > > > -- > > > Takashi Yano <[email protected]> > > > > > > -- > > > > > Problem reports: https://cygwin.com/problems.html > > > FAQ: https://cygwin.com/faq/ > > > Documentation: https://cygwin.com/docs.html > > > Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple > > > > Hi Takashi, > > > > I appreciate the short response time and the details you provided. > > > > The test with a simple Hello World source on clang-20 based on your > compile > > command succeeded and the result does not depend, indeed, on > > *cyggcc_s-seh-1.dll*. I didn't test the *-fuse-ld=lld* flag. > > > > For the test versions (21.1.4-1) I kept getting link errors. The > > command *clang++ > > -v -stdlib=libc++ -fuse-ld=lld hello.cc -lc++ -lunwind* produces a few > > errors like this: > > > > > ld.lld: error: undefined symbol: std::__1::basic_ostream<char, > > > > std::__1::char_traits<char>>::sentry::sentry(std::__1::basic_ostream<char, > > > std::__1::char_traits<char>>&) > > > >>> referenced by /tmp/hello-a3d7ec.o:(std::__1::basic_ostream<char, > > > std::__1::char_traits<char>>& std::__1::__put_character_sequence > > > *[abi:ne210104]*<char, > > > std::__1::char_traits<char>>(std::__1::basic_ostream<char, > > > std::__1::char_traits<char>>&, char const*, unsigned long)) > > > > > > The default *ld* linker (*clang++ -v -stdlib=libc++ hello.cc -lc++ > -lunwind* ) > > behaves similarly: > > > > > /usr/bin/ld: > > > > /tmp/hello-e03638.o:hello.cc:(.text$_ZNSt3__124__put_character_sequenceB8ne210104IcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_PKS4_m[_ZNSt3__124__put_character_sequenceB8ne210104IcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_PKS4_m]+0x1ad): > > > undefined reference to `std::__1::basic_ostream<char, > > > std::__1::char_traits<char> >::sentry::~sentry()' > > > > > > > I've tried different workarounds but couldn't make it work for clang-21 > > (-std=c++14, -D_LIBCPP_ABI_VERSION=1, -fno-exceptions, -fno-rtti). > > > > Do you have a working compile command I could try? > > > > The symbols demanded by compiler require *[abi:ne210104]* while the > libc++ > > contains symbols with different ABI. > > The command *nm /usr/lib/libc++.dll.a | grep "basic_ostream" *produces > > lines like "*0000000000000000 T > > _ZTv0_n24_NSt3__113basic_ostreamIcNS_11char_traitsIcEEED1Ev*", which > lacks > > the expected ABI tag. > > > > Is libc++ compiled with the correct flags? > > Has the compiler some defaults not matching what current libc++ provides? > > > > Thank you for your time and we love your work, > > Thanks for testing and the report. That issue will be fixed in 21.1.4-2 > (Test). > Please test 21.1.4-2 (Test) as well that will be uploaded shortly. > > -- > Takashi Yano <[email protected]> > -- Problem reports: https://cygwin.com/problems.html FAQ: https://cygwin.com/faq/ Documentation: https://cygwin.com/docs.html Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple

