Mail Archives: cygwin-apps/2001/08/04/16:42:24
--0-903623964-996957741=:38204
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Content-Disposition: inline
--- Charles Wilson <cwilson AT ece DOT gatech DOT edu> wrote: > Danny Smith
wrote:
>
> Okay, I only VAUGELY remember this, but....
>
> Forget for a moment the recent auto-import improvements. Think plain
>
> old-fashioned DLL support, requiring declspec(dll[ex|im]port)
> markings
> on data.
>
> Wasn't there some discussion many months ago about ld and C++ DLL's,
> something about needing to explicitly mark data fields within classes
> as
> declspec(), EVEN when the class ITSELF is marked declspec() ?
>
> Now, perhaps that got fixed. Perhaps it didn't. But, since an inner
>
> class is probably implemented as a field OF the enclosing class,
> maybe
> Danny's problem is related? (a) the old problem never got fixed, and
> is
> rearing its head here, or (b) the old problem got fixed -- but only
> partially and the fix needs to be extended to cover the "inner class"
>
> case. Or I'm just blowing smoke.
>
> Does anybody remember this?
>
> Now, returning to the new auto-import case:
>
> So, perhaps the logic that adds thunking symbols for DATA exports in
> DLLs needs to be re-examined, to make sure it covers these special
> cases, esp. "static" fields of classes, and inner classes, (and
> "static"
> fields OF inner classes...)
>
I don't think that's it, ether, but I'll work up some test cases to
see.
Here is a problem that doesn't work with old method and has been
reported to mingw list recently.
> class DLLIMPORT DllClass{
> public:
> DllClass (){}
> ~DllClass (){}
> static DllClass static_class;
> };
DllClass::static_class gets exported. Howvere, when building client
code, GCC complains about inconsistent dll linkage and as per usual
rule dllexport wins over dllimport for DllClass::static_class. All
that when using DLLIMPORT. I am currently testing a one line-change in
gcc/config/i386/winnt.c that fixes (but may break other things).
But, when using --enable-auto-import without DLLIMPORT, the recursion
works, just at it does with static libs.
Attached example.
Danny
_____________________________________________________________________________
http://messenger.yahoo.com.au - Yahoo! Messenger
- Voice chat, mail alerts, stock quotes and favourite news and lots more!
--0-903623964-996957741=:38204
Content-Type: application/x-gzip-compressed; name="static_class++.tar.gz"
Content-Transfer-Encoding: base64
Content-Description: static_class++.tar.gz
Content-Disposition: attachment; filename="static_class++.tar.gz"
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
6Z16n0DH3nP1TbYx9RnWaEBB80qlgg2qgGxLP/LGYHvKNwzyDUypU/sBxBCp
hBUxN2OVjcgWUgTf0silgcpGKxCYLaS4xTtHNzGHwn9szh1hRYiQL3zv6N5M
pTrgC8nYlP+12/i8v7d/0GpZ7Sbhv2VZexr/X4PW5H95BpMFy1TdVYfpMLyT
tuq9ZwzEa2UbB6pkaXkMNg6Ll94XTnY0PaKs3v+CMjbEf/ug1czyvza1tzp7
1oGO/9egLP4PhY+L4/bcnP3E8tYgHLtiVGpbQoospjMoWEaK3jMGtYuDCCtW
IEQvvnLNbeHFF0OqEVIVT5WBDg9he309bZv6V6EONuMp7mYsNhTdtksT4ikr
6lhFcZkdzMe50SpmK4tfqxmuzssSbrCSe7F+tpppPmKtbVaXCr/BNu0/2zbt
1bZhlcrhoeJaSVk+yveWVVknYONEXEPl0V4sy/1/RD5f2tfsfDvf+UrGoceK
VwX1fwrZBKh11A2BYvCxj6SF3q/xijL/b/aJJXbPjJav2aElCX/u/qyoLeXb
klWkmqoW9b3PEU2aNGnSpEmTJk2aNGnSpEmTJk2aNGnSpEmTJk2aNGnSpEmT
Jk2aNGnSpEnT69EfXjbg/ABQAAA=
--0-903623964-996957741=:38204--
- Raw text -