Post by Richard BosPost by David BrownPost by NoobPost by Richard BosPost by David BrownYes, it is so widely supported that there are a range of compilers that
can be used to compile the Linux kernel. Oh, wait, that's wrong - gcc
is the /only/ compiler that can be used for the kernel, because it is
the /only/ compiler to support this particular variant of C.
I thought Linux and gcc had nothing to do with one another?
Make your mind up.
It's not clear what your point is.
His point is that he doesn't like gcc, Linux, or (I think) any sort of
free or open source software. So he likes to point out possible
inconsistencies when people have said nice things about such software.
Bullshit, and you know it. I have made it quite clear quite often before
that what I dislike is not OSS itself but the hypocrisy of its adherents
and the lack of criticism it, and in particularly gcc, gets in this
newsgroup where commercialisms are roundly slated and even mocked for
similare, and often the very same, faults.
I am not a fan of hypocrisy either - few people are. If you were to dig
through all the posts I have made (I am not suggestion you do so - it's
not worth the effort), you'd see some posts I have made that are
critical to gcc. But it just so happens that I think it is an excellent
tool, and far and away the best compiler for /my/ needs. Clearly, I
have a lot more good things to say about it than bad things - that is
not hypocrisy, it is merely being fond of a good tool. And most of the
criticisms against gcc in this newsgroup have been things that are,
IMHO, of very little relevance.
Post by Richard BosIf Microsoft makes its API easy to use for MSVC, and harder for gcc,
that's Microsoft's fault.
Of course it would be Microsoft's /fault/ - who wrote the API and the
MSVC compiler? Whether it is a problem or not is another matter, and
there could well be good technical reasons for the API being the way it
is. And it is perfectly reasonable for MS to emphasis support for their
own tools. But if I think it is technically a poor choice of API, I
don't see it as unreasonable to say so.
Post by Richard BosIf Linux makes its API easy to use for gcc and
harder for other compilers, that's because it's the best design.
The Linux kernel is written using gcc extensions - and currently, that
is the only compiler that supports everything the Linux kernel needs.
But the API is made to work with any compiler and any programming
language that can follow a pretty standard ABI calling convention.
In the early days of the Linux kernel, there were no other compilers
that could be considered for compiling it - so it made perfect sense to
use gcc extensions if they helped the code. Now, there /are/ other
candidates such as clang and icc, and it makes sense to minimise the
dependencies on extensions that are not also supported on these compilers.
But the key difference here is that no one expects to compile /Windows/
using gcc - they just want to compile user-mode code for Windows with
gcc. There has never been any problem compiling user-mode code for
Linux with other compilers.
Post by Richard BosIf M$
makes the compiler use the system DLLs, that's poor practice and
introduces dependencies. If gcc separates the compiler and the library
and refuses to acknowledge that they are the two halves of one
implementation, that's just how it works.
You must be getting your ideas from some other gcc or Linux fan. I
criticise the MS C library for being old (poor C99 support), though its
C++ support is top class. This means that any C compiler on Windows
that relies on the system DLL's and/or MSVC's DLL's for the C runtime
library will necessarily be limited. As for the separation of library
and compiler for gcc - I think it is usually a good thing. I am a big
user of gcc - but a very small user of glibc (in my own code), and I am
glad that I have a selection of libraries to use with gcc for different
purposes.
However, this separation - like many things about gcc - seems to confuse
certain people in this group, and needs to be explained again and again.
Post by Richard BosI'm sorry that your ego is bruised by this, but that's _not_ how it
works. You cannot praise Linux and the OSS milieu for the same things
you criticise M$, Apple and other vendors for. That's nothing to do with
liking one or the other, that's plain hypocrisy.
And you cannot tar every gcc and/or *nix user with the same brush. I am
a happy user of gcc and Linux - and a less happy user of Windows (and
mostly happy to avoid Apple OS's). So I am most vocal in arguing
against unreasonable criticism of gcc or Linux, or promoting their good
points - because I think they are technically better in many ways than
the alternatives. But I don't think they are perfect, nor do I shy from
criticising them or saying when I think something else is a technically
better choice. And I try to make it clear that I write /my/ opinions,
for /my/ uses - these may not be the same as other people's.
Note that what may appear to be hypocrisy, may be differences that were
not clearly explained (such as the difference between the compiler(s)
used for building the operating system, and the compiler(s) used for
applications on the operating system).
Post by Richard BosI'm not playing King Lear, here, or even Alceste; I'm playing Mercutio.
Both, indeed all, your houses deserve the plague, and if I curse Linux
more often it's only because Linux is more often blindly defended here.
OK, fair enough.