Just a quick note...

It's been a long time since I studied compilers, and a brief time at that,
so I'm not really qualified to give you any information other than an
opinion....so I offer this...

A standard user space program that only uses regular C library functions
should not require the kernel headers to be installed, because the
information it requires should have been linked into the compiler.
If you are installing a new compiler, the kernel headers (at the least)
should need to be installed in order to obtain certain system defined
headers.

Like last night's example, the size of INT on your machine, which was
defined in a kernel header file.
_INT_MIN and was equal to the negative of _INT_MAX minus 1.
For DOS it's 2 bytes or -32,768 to 32,767 and for Linux
it's 4 bytes, or -2,147,438,648 to 2,147,438,647.

That should be defined somewhere in the kernel headers I would imagine,
and will be different for each system.  If your compiler got it wrong and
assumed the size, every program you wrote using integers would be trying to
access memory not available to it.  Any DOS compiler would be written with
that hardcoded because MS will not let you access the source to change any
headers.  On Linux, nothing should be assumed as the source code is always
available.

I would assume that not installing the kernel source and headers as
default using the original version of linux that you installed with, and
the type and method of install that you used, is probably a business
decision by RedHat.  Who is the target audience?  When and how often would
the average user in this group use those packages?  What types of programs
require these?

Considering RH is dedicated to the RPM distribution method, any packages
can be easily added and removed, and the average user would likely use
that method to install binaries for their architecture and save some time.
(Although it would be nice if there was a better error msg so that you
don't spend all day trying to find the cause.)  Although you appeared to
have the RPMs installed, the links were missing for some reason.  If you
ever worked with a standard tarball kernel or similar, those links may
have been destroyed.  I know I've had to recreate mine once, but I don't
remember why...maybe it was the same problem.

Either way, I used MS for 7 years (and Solaris for 1) before trying BSD
and finally switching to Linux as my main development system for two
years.  The learning curve was horendous, and that's mostly due to the
power available with Linux.  I'd much rather be using Linux than the MS
systems again.

That's my overly-simplistic, under-funded lack-wit research and summary on
the matter :)

Rob

PS...for an actual account of how the compiler works, the redhat-devel list
may be able to help...


On Thu, 14 Sep 2000, you wrote:
> >On Thu, 14 Sep 2000, Vidiot wrote:
> >> Wrong.  No compiler building should require that kernel sources be installed.
> >> Many things can be compiled that do not require the kernel sources.  All of
> >> the necessary include files for getting ANYTHING to compile should be
> >> distributed as part of the system.  Only stuff required for the kernel itself
> >> should be part of the kernel sources.
> >> 
> >The kernel headers files are needed to do things like talk to the
> >operating system - things like file I/O, and knowing the size of things
> >like intigers for the system you are compiling for.  
> Exactly.  Which is why I am saying that they should be there as a default
> install, which they currently are not.
> 
> MB
> -- 

-- 
Since a politician never believes what he says, he is surprised
when others believe him.
                -- Charles DeGaulle

--------------------------------------------------------
 This mail proudly composed and transmitted without the  
 interference of any Micro$oft products or protocols. 
--------------------------------------------------------



_______________________________________________
Redhat-list mailing list
[EMAIL PROTECTED]
https://listman.redhat.com/mailman/listinfo/redhat-list

Reply via email to