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: GCC's <assert.h> and C99


> Date: Fri, 22 Sep 2000 09:31:14 +0900 (JST)
> From: Martin Buchholz <martin@xemacs.org>
> To: Kamil Iskra <kamil@wins.uva.nl>
> Cc: gcc@gcc.gnu.org

> Imagine if the authors of *other* compilers insisted on using their
> compilers to link their object code.  You'd never be able to use gcc
> on commercial Unix systems.

?  They do have libraries and files that they do require one to link
with.  Yet, that doesn't mean that we can't link in those files.

> That's why you want assert() not to depend on libgcc.

Just as other systems have various support libraries and files that
support their compiler, we have some files and libraries to support
ours.  The situation is actually symmetric.

People are free to prelink and resolve those dependencies, if they
wish.  If they should, and choose not to, that is their fault.  In
this case, it would be B's fault for being incompetent, and yes,
incompetent people like B should be fired, or at least re-educated.

> I'd be happy with a GCC that creates libgcc-independent code for most
> real-world libraries on most popular Unices, most prominently Solaris.
> Far from being a lot of work, fixing assert() will cause most of the
> problems to go away.

:-) Well, no, not really.  It will just hack-around one example of a
requirement the compiler has.  That requirement is that you expose
libgcc.a to the linker in some fashion.  Failure to do that, is using
the tools in a way that we don't intent.

> I am concerned not with my own build problems, but with the fate of my
> friend B above...

If you are concerned, help us re-educate him.

One can include all those .o files from libgcc.a that have symbols
that any of their .o files in their library depend upon, in they
library.  When one builds a shared library, one can link two versions
of it, one with libgcc.a and one with out, and advise people that are
going to use other compilers to link to use the prelinked version, and
those that will use gcc to link, can just use the normal version.

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