www.delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2026/01/17/19:36:33

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
List-Id: General Cygwin discussions and problem reports <cygwin.cygwin.com>
List-Unsubscribe: <https://cygwin.com/mailman/options/cygwin>,
<mailto:cygwin-request AT cygwin DOT com?subject=unsubscribe>
List-Archive: <https://cygwin.com/pipermail/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-request AT cygwin DOT com?subject=help>
List-Subscribe: <https://cygwin.com/mailman/listinfo/cygwin>,
<mailto:cygwin-request AT cygwin DOT com?subject=subscribe>
From: kikairoya via Cygwin <cygwin AT cygwin DOT com>
Reply-To: kikairoya <kikairoya AT gmail DOT com>
Errors-To: cygwin-bounces~archive-cygwin=delorie DOT com AT cygwin DOT com
Sender: "Cygwin" <cygwin-bounces~archive-cygwin=delorie DOT com AT cygwin DOT com>
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 <thread>
#include <stdio.h>


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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright 2019   by DJ Delorie     Updated Jul 2019