DMARC-Filter: OpenDMARC Filter v1.4.2 delorie.com 60I0aXNO3326957 Authentication-Results: delorie.com; dmarc=pass (p=none dis=none) header.from=cygwin.com Authentication-Results: delorie.com; spf=pass smtp.mailfrom=cygwin.com DKIM-Filter: OpenDKIM Filter v2.11.0 delorie.com 60I0aXNO3326957 Authentication-Results: delorie.com; dkim=pass (1024-bit key, unprotected) header.d=cygwin.com header.i=@cygwin.com header.a=rsa-sha256 header.s=default header.b=b9y3p6Jx X-Recipient: archive-cygwin AT delorie DOT com DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 6D33D4BA23ED DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com; s=default; t=1768696592; bh=b/wYSYLZxVDy132Vw5EFNpn/ChO9J/QFLgHN7zC/5MI=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=b9y3p6JxwRNCpJXdGy39lG4ByG90WtfXvJONVUXAZyuksibp7Wh5I3ItOUdq/Q/fh x+y654y75qeEyvimrh+3ENHL7hMN77dklNE7TmdjS29a+YKkDwyWRmINDkG8FTzqKq Ub5HVlxu6o2J05v4rJXPcEQQfB63EzzVEMD4W/TU= X-Original-To: cygwin AT cygwin DOT com Delivered-To: cygwin AT cygwin DOT com DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 9C1604BA2E26 ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 9C1604BA2E26 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1768696540; cv=none; b=iv2zD7Ii0UCHo/JdOg+hptZsXsC8JUxWsxlm1J7VWce3MlZIZOnB1Lf32plNALAy7L4AVZi4DFqwuh06yFI/zPPdQ+f5qv9QKEUO/R5macJtmnQa5gEi+HnnkzVIebGe5aa7PHfklsAz/7JhD7b051DuZwZzRE5Vh508PYpYXe0= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1768696540; c=relaxed/simple; bh=CEoaPxoR1SveX0RVcs98yWXg6JhYp7oF9Zs8LDW6bjA=; h=DKIM-Signature:Message-Id:From:To:Subject:Date:MIME-Version; b=t0hlrl537jUT2gArzs0MX4J+hUJlCqZv/nVwPDixCpevOKCMvV7cOlm2QV8BI1IY4xRgrIQ/JY6d0wZJ/D+Il0Paiba2B6R/KKz0MSo/p5LDJlwXmuM0QndYTV97sEtmLIXZQXxCapX8/+C9PvzrMDowJI/kgr9LokookFU8lzo= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 9C1604BA2E26 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768696539; x=1769301339; h=mime-version:user-agent:references:in-reply-to:date:subject:to:from :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=LFmhUOEYKm4T7EqDm77NscoxDOF2owSc5PiAfUd9jY0=; b=V9TL0cIrqoKqBVLn9c/RBpnFT43cw5kg5nM6vE2s9NOZrDOFezKMpdiunkiK7S5QSH 1Z3SApyF9LFmFikUtaM3CL3kgeZ1Z3XBTn/nDJYl4tKiYo38C9Ug0ioeHCVVV6AJBRWH TKo15QNMjl3nIaYEAwFcDRwkJEntgpfgkWvDyjmE1qqdXQjhc55e+oYLZBiRiDxRGQcS MhBdmX9CLSyNQbYd8UeVxxVbA73c89vgUOqLnNysLzWcC0u9yCthkV7IVvdOM9M4w6+k 4hQRoE2KXBsXmkFfnpODKHR/hODNcoQKu5o/jPLdFJfcVOUFA0XjXM7yd4MuDxgKDQE7 ryQA== X-Gm-Message-State: AOJu0YzxTwsOlZJg+I21+B2z7ablKxsnbTXl484fl7pAre6wPpaqV1nE CbcBDQema1COVlxyF17SZXwts6lda0kW8SdqVwn2HUjq7yJBO1jEP/FPuLci/w== X-Gm-Gg: AY/fxX4/HGRd2mADdjG+gqEv4lA0Ei55NNGbG+T3O80nSmddUhR4AR0a9yCG7aQ10cc 8kMhhqK/HYvLoJF4tGQvTLrF3eLnxJAElB/0OdnOD14eZfYZiKq3vNeBHvW2i3xsQNS9u7JbPv3 kdQR00cnv+i24/NLqn/DAwjnK6P9TwhWX68mjHKxBvh08nfAS+RmZZES7J5mecK2xOOaIBINKHb w1odk6GlB22FpQH4KuXfgfl7GDaIrZyQEOxP6Mn7r7Gh7HLS4qG0ZXWczI0fdFjyCyJIYgJbjm9 fYk4zsCxEY/X2qz73SR25msAQOJCVOdaydgyaPvlykHV9GM/rgZZCTgDtc06W6bvbcof4/1BoEy GVjcri7xErXq8v18f6ogKOeYa0OpM1mHaVx3IfC+ZiQYLFrvr5W9UH4VYKlkClLNB0nz8aOo5n9 uviiDfadR/wTiBmkQYRpa6sEhA8BKQ1bWHr68= X-Received: by 2002:a05:6a20:938a:b0:38d:eb2e:d036 with SMTP id adf61e73a8af0-38dfe7f873amr6799675637.66.1768696539517; Sat, 17 Jan 2026 16:35:39 -0800 (PST) Message-Id: <1768690885668.2039852652.2136123419@gmail.com> To: cygwin AT cygwin DOT com Subject: Re: Request to update libc++ related packages for current Clang/LLVM toolchain Date: Sun, 18 Jan 2026 00:35:37 +0000 In-Reply-To: <20260115215321.2bc9368897b5b60557bd2485@nifty.ne.jp> References: <20260115215321 DOT 2bc9368897b5b60557bd2485 AT nifty DOT ne DOT jp> X-Mailer: Vivaldi Mail User-Agent: Vivaldi Mail/7.7.3851.67 MIME-Version: 1.0 X-Content-Filtered-By: Mailman/MimeDel 2.1.30 X-BeenThere: cygwin AT cygwin DOT com X-Mailman-Version: 2.1.30 Precedence: list List-Id: General Cygwin discussions and problem reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: kikairoya via Cygwin Reply-To: kikairoya Content-Type: text/plain; charset="utf-8" Errors-To: cygwin-bounces~archive-cygwin=delorie DOT com AT cygwin DOT com Sender: "Cygwin" Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by delorie.com id 60I0aXNO3326957 2026年1月15日 21:53:21 (+09:00) で、Takashi Yano via Cygwin さんが書きました: > 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. > Using compiler-rt instead of libgcc_s requires extra attention in Cygwin, because the emulated TLS functionality implemented in compiler-rt can't share the storage across DLL boundaries. Particularly, LLVM itself isn't compatible with compiler-rt in an emulated TLS environment; it exposes thread_local variables directly. Reproducers (with 21.x packages): ---------- emutlstest.cc ---------- #include #include extern thread_local int g_tls; int *get_var(); #ifdef DLL thread_local int g_tls = 3; int *get_var() { return &g_tls; } #endif #ifdef EXE void f() { void *exe = &g_tls; void *dll = get_var(); printf("%d %p %p\n", exe == dll, exe, dll); } int main() { f(); std::thread(f).join(); } #endif -------------------- libstdc++/libgcc_s case: $ clang++ emutlstest.cc -o emudll.dll -DDLL=1 -shared && clang++ emutlstest.cc -o emuexe.exe -DEXE=1 emudll.dll && ./emuexe.exe 1 0xa000004c8 0xa000004c8 1 0xa00026958 0xa00026958 libstdc++/compiler-rt case: $ clang++ -unwindlib=libunwind -rtlib=compiler-rt emutlstest.cc -o emudll.dll -DDLL=1 -shared && clang++ -unwindlib=libunwind -rtlib=compiler-rt emutlstest.cc -o emuexe.exe -DEXE=1 emudll.dll && ./emuexe.exe 0 0xa000004c8 0xa000004e8 0 0xa000268f8 0xa000269a8 libc++/compiler-rt case: $ clang++ -stdlib=libc++ -unwindlib=libunwind -rtlib=compiler-rt emutlstest.cc -o emudll.dll -DDLL=1 -shared && clang++ -stdlib=libc++ -unwindlib=libunwind -rtlib=compiler-rt emutlstest.cc -o emuexe.exe -DEXE=1 emudll.dll && ./emuexe.exe 0 0xa000004c8 0xa000004e8 0 0xa00010a18 0xa00010ac8 just using libc++ case: $ clang++ -stdlib=libc++ emutlstest.cc -o emudll.dll -DDLL=1 -shared && clang++ -stdlib=libc++ emutlstest.cc -o emuexe.exe -DEXE=1 emudll.dll && ./emuexe.exe 1 0xa000004c8 0xa000004c8 1 0xa00010a78 0xa00010a78 link to a libgcc_s-ed DLL case: $ clang++ emutlstest.cc -o emudll.dll -DDLL=1 -shared && clang++ -stdlib=libc++ -unwindlib=libunwind -rtlib=compiler-rt emutlstest.cc -o emuexe.exe -DEXE=1 emudll.dll && ./emuexe.exe 0 0xa000004c8 0xa000004e8 0 0xa00010aa8 0xa00010be8 using a compiler-rt-ed DLL case: $ clang++ -stdlib=libc++ -unwindlib=libunwind -rtlib=compiler-rt emutlstest.cc -o emudll.dll -DDLL=1 -shared && clang++ emutlstest.cc -o emuexe.exe -DEXE=1 emudll.dll && ./emuexe.exe 0 0xa000004c8 0xa000004e8 0 0xa00026a18 0xa00026ac8 -- Tomohiro Kashiwada (@kikairoya) -- 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