This is the mail archive of the libc-alpha@cygnus.com mailing list for the glibc project.


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

Re: struct stat


>>>>> Thomas Bushnell, BSG writes:

Thomas> "David A. Greene" <greened@eecs.umich.edu> writes:
>> Umm...Wait a second.  dev_t is supposed to be an integral type.  It
>> isn't if you're not using gcc.  This is broken.

Thomas> It means that glibc is GCC specific.  I really don't think this is a
Thomas> problem.  I'm sorry if you want to compile it with some other
Thomas> compiler, but it's not our priority to support other compilers.
Thomas> Perhaps if you are doing compiler-related research, you can add this
Thomas> to the list of things that you are learning: that there are important
Thomas> reasons to support more than just minimal C in a compiler.

Thomas> glibc contains many other GNU toolchain specific things.  It requires
Thomas> the availability of weak bindings, something not part of the
Thomas> standard.  The Hurd code makes extensive use of nested functions, also
Thomas> most certainly not part of the standard.  We frequently use other
Thomas> minor GCC extensions, like zero-length and automatic arrays, inline
Thomas> functions, and so forth.  

I think we should differentiate.  You cannot compile glibc itself with
any other compiler except gcc because of the use of the mentioned gcc
extensions - and I don't think anybody really considers changing this.

But compiling glibc is different from compiling applications.  You
should be able to compile applications with other compilers beside
gcc.  This works in, let's say 99 per cent, but not in all cases.  It
works because the headers guard every gcc extension and offer another,
perhaps non optimal, solution.

Andreas
-- 
 Andreas Jaeger   aj@arthur.rhein-neckar.de    jaeger@informatik.uni-kl.de
  for pgp-key finger ajaeger@aixd1.rhrk.uni-kl.de


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