Helle Simson,

this list seems to me more like good content to our FAQ-section in
Wiki.  Some of those points might be defining general goals we wanna
to define, or decline for mingw-w64 in general.
Most of those points are looking like something desirable, but on a
technical POV it shows that some of those points aren't implementable
due missing definitions in specification, simple vendor differences,
and misunderstandings in general goals.  I will try to give brief
answers to your questions, and maybe somebody thinks it is worth to
add those answers to FAQ in our Wiki.

2012/10/25 Simson Garfinkel <sims...@acm.org>:
> I've been on this mailing list for some time now and use mingw (both the 
> 32-bit and 64-bit versions) for several production systems. What I would like 
> to see is not a commitment to a release schedule but a document that clearly 
> states the commitment to specific principles. For example:
>
> * Can compile the same source code as MSC VC++  (is this true?)

As long as source doesn't use vendor-specific extension, this is
possible.  We invested some efforts to add new features to gcc/g++ to
implement some compliant-features (eg x64 SEH exception in 4.8,
push_macro/pop_macro pragma, __int128, etc) which are vendor specific
VC extensions.  Also there were recently spend some efforts for g++ to
make call-ABI in class-member functions more compatible to that what
MS defines by its 32-bit ABI. Additionally we provide tools - like
gendef, genidl, widl, genpe, etc - which are trying to fill some gaps
in standard-toolchain. Nevertheless we won't be able to make both
compilers feature-identical and this can't be a serious goal as
official documentation and papers about those features aren't
available for us.

> * No Microsoft copyrighted headers in the build tree (so reimplementation)

Sure, this is a primary goal for us.  This doesn't mean that user
can't use for her/him-self additional SDKs provided by MS within our
toolchain.  As far as I learned are some user using for example the
DIA SDK successful.

> * Uses Microsoft DLLs, rather than GNU DLLs, for key functions (is this true 
> anymore?)

For platform-functions we have to use OS provided DLLs, which are of
course provided by MS.  For C-runtime we are using by default the
msvcrt.dll - this is a big subject and might need additional comments
as there are huge version-differences present - version. But of course
it is possible to build applications using different MS runtimes, like
msvcr100.dll, msvcr80.dll, etc. We don't use those DLLs by default, as
they aren't part of the standard-OS DLL set.
There are additional DLLs - and were ever for gcc/g++ based toolchains
- which are provided by the toolchain.  Typical libraries provided by
gcc are libgcc, libgfortran, libstdc++, libquadmath, libssp.
Those DLLs can be used, but you have then of course to redistribute
them to end-user for running your build app.  A way to avoid this is
to use static version of those libraries.  This avoids dependencies to
none-system DLLs in general - see -static options.
If you plan to use a different runtime DLL, you might be in need to
rebuild those gcc-target libraries, as they are build by most
pre-compiled toolchains only using msvcrt.dll (Side note that static
versions of gcc's libraries don't need to be rebuild here).

> * Compiles both Windows Threads and POSIX threads (true?)

Yes, that true if you are using a pthread library. There is
pthreads-win32 venture, or you can use winpthread - a mingw-w64 owned
sub-project - for this.  By using winpthread you are able to build
gcc's target-libraries in POSIX-way.

> * Equally produces static-linked and dynamic-linked binaries (this is VITAL 
> for incident response.  The problem is that many of the packets in the 
> repositories include dynamic versions but not static versions)

Sure, dynamic and static libraries are provided.  The issue about
static-version is in some cases the used license for them.  For gcc's
runtime-libraries there aren't any issues, as there is a
runtime-exception present, but for other libraries there might be
problems inflicted by license.  Eg (L)GPL's viral effect on license.

> * Compiled code supports both gdb and Microsoft debugger tools (true?)

Well, that is technical not really possible, as gdb doesn't supports
pdb-format (not offical documented as most of MS' debugging stuff),
and windbg doesn't supports dwarf-2 debugging information.  You should
be able to debug with both debuggers any application, but you won't be
able to see further debugging-info.

Regards,
Kai

------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_sfd2d_oct
_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to