On Fri, 2003-10-10 at 04:27, Richard Campbell wrote:
I would like to take some time and modify the apps in
the ros-apps
repository to use the latest stable build of mingw + the latest stable
build of w32api instead of the reactos build system, is this okay or is
there a reason that we are using the ReactOS build system?
[long-winded analysis followed by a proposal and request for comments]
I've been giving this some thought lately. This is not as trivial of a
question as it seems. In the windows world, on the kernel side at
least, there is a single approved compiler (i.e. one particular build),
which is shipped on the DDK CD. You must use precisely the build
environment (compilers, headers, and import libraries) that are shipped
in the DDK in order to be supported by Microsoft and/or the community.
Linux used to require GCC 2.7.2.3 - i don't know what it asks for now,
but the reason had to do with a combination of compiler bugs that had
been worked around and some insulation against future upsetting changes.
On the flip side, Royce Mitchell used to say that he preferred to use an
old GCC to build ROS with because it caught different coding errors, and
lots of people (myself included) believe that we should not be tied to a
compiler because that makes us dangerously dependant on that compiler.
Also, MSVC and Intel both generate better code in certain circumstances
(see a recent Doctor Dobb's article for a c++ comparison among those
three and others).
The current source tree doesn't support MSVC in a few places (I know
NDIS, for sure, won't compile right, and I remember seeing others), so
for the moment we really are MinGW-dependant. I also worry about people
getting a random compiler/w32api/whatever, having problems, and getting
a bad impression of the project due to a broken build - and the way it
breaks will look ugly most of the time. The final straw for me, though,
is that we can't do some things like enabling -Werror in our makefiles
because we're afraid we'll break people's builds.
With that said, I propose that we go the Microsoft route, but provide
instructions for people that want to experiment with other stuff. We
should have an official version of the compiler, linker, binutils, etc,
and an official w32api version. If anybody has time, it'd be nice to
package the ReactOS SDK/DDK with the tools, headers, libs, and so on, so
that new developers can come up to speed more quickly.
So, what does everyone else think?
-Vizzini