This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: 2.95.2 missing files?


> All I really needed to hear was that there was someone out there that had
> used this version of the compiler with sockets on a 2.5.1 system.

I use it with C, C++, and sockets on several different platforms including
Solaris 2.5.1 x86 and SPARC.  No problems.

> It just seems to make sense to me for a new compiler to come complete with
> all the standard header files, if for no other reason than that the ones
> present may be incompatible or corrupted in some way.

A compiler merely acts as a translator from a human understandable form to
a machine understandable form.  It knows surprisingly little about what
it's translating.  Consider:

  main () { fred(1, 2, 3); }

The compiler will produce code for calling fred with the supplied arguments
according to the ABI in question.  However it hasn't a clue what fred does.
What the various functions such as fred, recv, send, select, socket, etc.
do is defined by the operating system / libraries and you'll find that
different operating systems / libraries define them (even so called standard
functions such as those pertaining to sockets) differently.

> I guess I expected installing a new compiler on a UNIX system would
> work the same way rather than relying on previously installed files.

Nope.  It's very difficult for a compiler to supply headers and libraries
since what they mean and how they work is outside of the compiler vendor's
control and forever changing.

BTW, during installation GCC makes a private copy of the headers which are
part of the operating system and then mucks the copy in order to fix various
known problems.  When you compile a program with GCC it will use the private
(fixed) version of a header instead of what's in /usr/include.  These private
headers are (of course) GCC and operating system specific.  A problem
sometimes occurs when GCC mucks the header due to a buggy version of sed or
various other utilities which GCC uses.  Another problem occurs when you
build GCC on a network mounted drive on one operating system and then
try to use it on a different operating system.  A third problem occurs when
you (or your local administrator) applies an operating system patch (or
update) after installing GCC.

-- John
-------------------------------------------------------------------------
|   Feith Systems  |   Voice: 1-215-646-8000  |  Email: john@feith.com  |
|    John Wehle    |     Fax: 1-215-540-5495  |                         |
-------------------------------------------------------------------------


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]