Message-ID: <39741C06.D246F354@softhome.net> Date: Tue, 18 Jul 2000 10:57:42 +0200 From: Laurynas Biveinis X-Mailer: Mozilla 4.73 [en] (Win98; U) X-Accept-Language: lt,en MIME-Version: 1.0 To: Eli Zaretskii CC: martin AT loewis DOT home DOT cs DOT tu-berlin DOT de, mrs AT windriver DOT com, gcc AT gcc DOT gnu DOT org, djgpp-workers AT delorie DOT com Subject: Re: GCC headers and DJGPP port References: <200007171736 DOT KAA29313 AT kankakee DOT wrs DOT com> <200007171834 DOT OAA06211 AT indy DOT delorie DOT com> <200007172102 DOT XAA07817 AT loewis DOT home DOT cs DOT tu-berlin DOT de> <200007180810 DOT EAA06916 AT indy DOT delorie DOT com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Reply-To: djgpp-workers AT delorie DOT com Eli Zaretskii wrote: > > GCC needs to know exactly what size_t and wchar_t is > > This knowledge is accessible to GCC at build time, in the system > headers. What about build system != target system? > > NULL is defined as __null on all platforms now > > Not in DJGPP. __null causes trouble in C programs. I have trouble understanding why, if __null is a builtin. (And why does it cause trouble on DJGPP, but not on other systems?) > > there is no question *that* gcc must know about > > these types even without seeing a single target header file. > > Why does it need to know that without seeing target header files? We > are talking about a native build, not a cross build. Eli, is it a big difference for us, does GCC get definition from djgpp header, or from GCC target description one with Mark's patch? + #undef SIZE_TYPE + #define SIZE_TYPE "long unsigned int" [and so on] > And yes, we did read all the threads in GCC archives that appear to be > relevant, and we did discuss them at length. But we still do not > understand the technical considerations that caused GCC to insist on > installing its own headers. Please help us understand this. Uhm, how would you qualify following response: > Wrong. GCC needs to know exactly what size_t and wchar_t is, and it > must also provide the definition of NULL. size_t must be known so the > builtin functions can be declared properly. wchar_t must be known so > wide string literals can be emitted correctly. NULL is defined as > __null on all platforms now, so that overloading works correctly in > C++ (for C, it is something different). Laurynas