delorie.com/archives/browse.cgi | search |
X-Recipient: | archive-cygwin AT delorie DOT com |
DomainKey-Signature: | a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id |
:list-unsubscribe:list-subscribe:list-archive:list-post | |
:list-help:sender:date:from:to:cc:subject:message-id:reply-to | |
:references:mime-version:content-type:in-reply-to; q=dns; s= | |
default; b=nfDPvFE/ZZVNMUVvi1Y3LbwY1o0S/w7T4Xn1uCnnSlcBqKig+ZJI6 | |
0EIsi9j4sZtt9N5XuPHO5gFVBc6Mcdi60eBMITSMCi80h7moJPjcgZGLiBAFmRxt | |
IEnBDbHalNeijAf2vz3UrkN8GQmImCBry/fojSoE89cmlg2Hk+LdHQ= | |
DKIM-Signature: | v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id |
:list-unsubscribe:list-subscribe:list-archive:list-post | |
:list-help:sender:date:from:to:cc:subject:message-id:reply-to | |
:references:mime-version:content-type:in-reply-to; s=default; | |
bh=c7WJ9sG4LOCj5IEbO4HjMg5cdbA=; b=sSkDpMdjQK+vlpLimRDvRuBrvW// | |
mOdBXlytsLBNGLfebMyDF6p+Qt7e0FTOGt7cYWSu5ZKLhTglsjlJwW5yEh9IZjZ3 | |
TJqXzeHLfpoheogW3yTyLOv5oJMrX7YB8X1BtgArtbljEcvoPh9fBE0nl0vpAGlL | |
iq11RifDsb3ZybA= | |
Mailing-List: | contact cygwin-help AT cygwin DOT com; run by ezmlm |
List-Id: | <cygwin.cygwin.com> |
List-Subscribe: | <mailto:cygwin-subscribe AT cygwin DOT com> |
List-Archive: | <http://sourceware.org/ml/cygwin/> |
List-Post: | <mailto:cygwin AT cygwin DOT com> |
List-Help: | <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs> |
Sender: | cygwin-owner AT cygwin DOT com |
Mail-Followup-To: | cygwin AT cygwin DOT com |
Delivered-To: | mailing list cygwin AT cygwin DOT com |
Authentication-Results: | sourceware.org; auth=none |
X-Spam-SWARE-Status: | No, score=-101.9 required=5.0 tests=BAYES_00,GOOD_FROM_CORINNA_CYGWIN,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 spammy=nope, ack, H*F:D*cygwin.com |
X-HELO: | mout.kundenserver.de |
Date: | Sun, 18 Aug 2019 13:57:39 +0200 |
From: | Corinna Vinschen <corinna-cygwin AT cygwin DOT com> |
To: | Agner Fog <agner AT agner DOT org> |
Cc: | cygwin AT cygwin DOT com |
Subject: | Re: Clang is using the wrong memory model |
Message-ID: | <20190818115739.GD11632@calimero.vinschen.de> |
Reply-To: | cygwin AT cygwin DOT com |
Mail-Followup-To: | Agner Fog <agner AT agner DOT org>, cygwin AT cygwin DOT com |
References: | <024ce5b5-6024-b371-e382-5eef5d1d4a90 AT agner DOT org> <075477ca-e031-39ea-3dfe-bc8bc2fc8fa6 AT agner DOT org> <20190816082603 DOT GR11632 AT calimero DOT vinschen DOT de> <8d594f4d-17e0-447a-8b18-1ed620815e0f AT agner DOT org> <20190816095200 DOT GU11632 AT calimero DOT vinschen DOT de> <2024f551-66e6-47c5-a0b6-2dfa735a690d AT agner DOT org> <20190816111133 DOT GV11632 AT calimero DOT vinschen DOT de> <6008d30a-cd6c-5449-2933-a041e804856c AT agner DOT org> <20190817081605 DOT GX11632 AT calimero DOT vinschen DOT de> <17081147-f46a-51bf-65e9-3df7748b1780 AT agner DOT org> |
MIME-Version: | 1.0 |
In-Reply-To: | <17081147-f46a-51bf-65e9-3df7748b1780@agner.org> |
User-Agent: | Mutt/1.11.3 (2019-02-01) |
--8rwPx/46nQniO+If Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Aug 18 08:04, Agner Fog wrote: > Thanks a lot for your help in clarifying this. >=20 > When I complained here about the wasteful 64-bit addresses you said that = it > was an LLVM issue. I never said anything like that. The issue is that your clang linux->cygwin cross compiler uses the wrong model, that's all. That's a bug in clang or whatever it's using under the hood. Clang should follow what GCC does for years, using the medium model on Cygwin. > When I complained to LLVM they said it was a Cygwin > issue, and that you were using the wrong memory model. >=20 > All this confusion is due to a terrible lack of documentation of everythi= ng. > I had to do a lot of reverse engineering to figure out what is happening. > What I have found out so far is listed below. Much of this is undocumente= d. > Obviously, I would like to know if any or this is wrong or if specific > documentation is available other than the SysV ABI and Windows ABI: >=20 > * Cygwin is using its own loader which is different from the Windows load= er. Nope, Cygwin uses the Windows loader. > * The Cygwin loader emulates the behavior of Linux shared objects. This > includes the ability to directly access a variable inside a DLL See above. > * Access to a variable in a different DLL requires a 64-bit address. This= is > obtained by using the medium memory model with a gcc or Clang compiler. ACK [...] To me, the only interesting thing is that clang continues to use the medium memory model *by default*. It doesn't make sense if package maintainers and devs building something on Cygwin have to care for memory models all of a sudden. The default should just work. If you want to use the small model in your own projects, great, if it works for you. If the medium model is wasteful in clang, that's a clang optimization problem, not a Cygwin problem. Corinna --=20 Corinna Vinschen Cygwin Maintainer --8rwPx/46nQniO+If Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEoVYPmneWZnwT6kwF9TYGna5ET6AFAl1ZPTMACgkQ9TYGna5E T6D08BAAi4Ku6fh5JO71bC0SPInBqOzlfStLX0pj1mMcAYwm+z/DDOBYp8J0nCRB umM7wFhYGc2qKZAMvCvB8b3u2pbxQqlZg2Wxd/rvJlDTuhnVWglrU4Rb4+8aN25M z+W7M928x0vjDJpyeSOUr7A1KLyzMKvHQ1keJ4jts+LETOWPAI/gJK0mGsezWtGz 8NZgrR5U3siJ0C02QF69pMeGwn53n7bMHcjtTzKJ2vVvNroe2qcB1T1RxL8R9GBE 5/HcwqQ31ZpcJwhbLPbKj7yjOE62FwTlv+CsidnlvD4Ej8Tj192sPYxEWKNfaKt8 yIT31Ubc6hJCA5BLAgDMi+ep3b2L3wjmouiSRt83RObY8sJMGupVL6UFN6u6uJV0 22gpUJdDyVb6OvtnSkeUgzyg7M9Cq+HDKORHIVy1hhiD0DRyqgA3zKam2b2K2e/+ U8mSb8l9VO6oxfHpRACe3Qyw9369OiUO2d5GKDUCZc+FuLeQC6ygBcw3No7Xyw1E WvlsJzK5hv4GszyBtrXWtj6rzwte+pZMoCRN+GDQzCm+ZaWXrivE534Hdbm+1dBt YbYWpI5+bKYmWqomvD+j/F3WeMecpABXGoLwD3LIoQm8ezFyJ6qrVi98MDFmEl4S VLX9LkB3TN6KntiIuKYz/LglfQeOzLoXss6rS9jswN0zljylCns= =B9Ns -----END PGP SIGNATURE----- --8rwPx/46nQniO+If--
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |