bart <
bc@freeuk.com> wrote:
On 10/03/2025 10:58, Waldek Hebisch wrote:
bart <bc@freeuk.com> wrote:
>
I think nobody does. There's always been some sort of mystique
surrounding 'gcc' on Windows.
>
'MinGW' supposedly 'Minimalist Gnu on Windows'. In that case I wouldn't
like to see the full-scale one..
"Minimalist" is not about size of the compiler. Rather, it is
about possible support routines. For "hosted implementation" C
mandates presence of C library and there is a lot of functions
not in C standard, but included in libraries of C compilers.
There is also question of operating system support, complicated
by fact that Windows is different than other systems. Cygwin
solved those issues by offering Posix emulation and a sizable
collection os libraries. MinGW is minimalist in the sense
that it provides very little own libraries and mainly uses
what is provide by Windows.
I still don't get this stuff.
I get the impression that a port of gcc to Windows is not simply about
building C programs, but building C programs that use a lot of features
from Linux.
You apparently do not get fact that people want tools to
automate various routine tasks. And people do not want
to reinvent the wheel, they prefer to use code written
by others. Folks at Bell Labs had several good ideas
and shared them with others. Those ideas are not limited
to Linux or Unix, you can look at old "Software tools in ..."
books to understand what I am talking about. MinGW
_distribution_ bundles several tools. This allows you
to compile programs when build process uses those tools.
You can also use the tools for your purpose. Aparently
you have very strong "not invented here" syndrom and
insist on usig your own tools. That is fine, as long
as you keep this to yourselfs. But refusing other
folks right to use tools they want to use is not
fair. Or, to put it differently, when you refuse
the tools _you_ need to do by hand needed work.
You may be able to extract from work of others
something that fits your taste (like list of files
to compile), but that is your business.
If so, then that's the wrong approach. There are various lesser
compilers which know nothing about mingw or posix of anything of the
sort. (For example, lccwin32, DMC, PellesC, I think Tiny C; I can't
speak for MSVC.)
You may be able to do some things using just a C compiler.
But requesting people to do other things by hand is as
wise as requesting them to code in assembler (assembler
may be converted to binary faster than C, and with enough
effort resulting binary will run faster than result of
C compilation :). Another thing are libraries and
bigger applications. Some folks want "true Windows look
and feel", some say that proper Windows DLL must be
compiled by MSVC (otherwise is lack some features that
they consider essential). But there are people who
had to or wanted to use Windows, but also wanted to
use Unix applications. Cygwin was addressed to such
folks: it allows you to compile substantial Unix
application so that it runs on Windows. If you have
no interest in such applications, than fine, Cygwin
is probably not for you. Today WSL may be better
for such a goal, but in the past Cygwin provided
easiest way to port Unix application to Windows.
If easy port was the goal and application was
substantial, then Cygwin usually was right choice.
To put it differenly, you could compile program in one computer
and get relatively small program which runs OK on different
Windows machines because libraries it needs are already present.
This is quite different compared to Cygwin, where you need to
install Cygwin libraries before normal Cygwin program can run
(I write about normal programs because actual compiler in
Cygwin and Mingw used to be the same and with some tweaks one
could use Cygwin compiler to produce MinGW execuatbles).
I'm not interested in whatever Cygwin or Mingw are about.
Oh, so you do not want to know. In such case why you started
discussing it?
If I were to
use libraries not part of the OS, then it would be ones like SDL2 to get
interesting things done. Not try and emulate bits of Linux that I'd
never heard of.
I mentioned one case: about 90% of code in "my" library was
provided in fact by other libraries. So using code provided
by other saved me a lot of work, turning something that
otherwise could be multiyear job into reasonably small effort.
To use the libraries I had to work out build process, thanks
to tools it was very easy. Also, speed of library was
major concern and using 'gcc' (as opposed to Borland C that
I used earlier) gave me substantial speedup. And yes,
the libraries I used were purely computational (data came
from a file and output was to a file).
MinGW bundle is a good way to build such libraries. Having
only a C compiler may be too little.
-- Waldek Hebisch