This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH, 3/4] Enable libstdc++ as a DLL on windows platforms.
- From: Charles Wilson <cygwin at cwilson dot fastmail dot fm>
- To: Dave Korn <dave dot korn dot cygwin at googlemail dot com>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>, Danny Smith <dansmister at gmail dot com>, "Aaron W. LaFramboise" <aaronavay62 at aaronwl dot com>
- Date: Sat, 18 Jul 2009 09:10:55 -0400
- Subject: Re: [PATCH, 3/4] Enable libstdc++ as a DLL on windows platforms.
- References: <4A60F7BA.3040204@gmail.com> <4A60F870.7040001@gmail.com> <4A61C5C3.3090005@cwilson.fastmail.fm>
Charles Wilson wrote:
> (which
> may not be much of an issue if there are no client-visible data items
> exported by that DLL [*]).
>
> [*] Unfortunately, this is not true at present. On my system,
> cyggcc_s-1.dll has the following DATA exports:
> __clz_tab @27 DATA
> __popcount_tab @83 DATA
> Whether end-users are expected ever to access these two items, I don't
> know (for all I know, it may be a mistake that these two items are
> actually exposed as exports). But yea or nay, that doesn't address the
> issue of *future* data exports from libgcc_s which end users may be
> expected to access directly, and whether their declarations should be
> decorated with a macro- ("_DLL"?) controlled declspec(dllimport).
Gah. Never mind this bit. I forgot that even the auto-import of
functions generates a "single-entry import table" for each relocation,
not just data imported from DLLs. OTOH, unlike libstdc++, client code
never accesses anything from libgcc directly (e.g. "#include some header
to get declarations, then call the function") -- any calls to libgcc
functions are inserted by the compiler itself, and it "knows what it is
doing". So maybe my concern over /this/ issue (that is, "Third, ...")
is overblown.
--
Chuck