X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f X-Recipient: djgpp AT delorie DOT com Date: Mon, 18 May 2015 21:56:20 +0300 From: "Eli Zaretskii (eliz AT gnu DOT org)" Subject: Re: ANNOUNCE: DJGPP 2.05 beta 1 In-reply-to: <555A0DD5.1010607@iki.fi> X-012-Sender: halo1 AT inter DOT net DOT il To: djgpp AT delorie DOT com Message-id: <83r3qdemuj.fsf@gnu.org> References: <201505042003 DOT t44K3odg011007 AT delorie DOT com> <554DF584 DOT 4020309 AT iki DOT fi> <55501DAD DOT 1080604 AT iki DOT fi> <55579278 DOT 8090301 AT iki DOT fi> <555829A6 DOT 8010502 AT iki DOT fi> <555870E8 DOT 7040302 AT iki DOT fi> <201505180114 DOT t4I1EiaX017288 AT envy DOT delorie DOT com> <201505181216 DOT t4ICGaKO014123 AT envy DOT delorie DOT com> <83zj52dkns DOT fsf AT gnu DOT org> <555A0DD5 DOT 1010607 AT iki DOT fi> Reply-To: djgpp AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: djgpp AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk > Date: Mon, 18 May 2015 19:05:41 +0300 > From: "Andris Pavenis (andris DOT pavenis AT iki DOT fi)" > > On 05/18/2015 06:22 PM, Ozkan Sezer (sezeroz AT gmail DOT com) wrote: > > On 5/18/15, Eli Zaretskii (eliz AT gnu DOT org) wrote: > >>> Date: Mon, 18 May 2015 16:06:19 +0300 > >>> From: "Ozkan Sezer (sezeroz AT gmail DOT com)" > >>> > >>> The discussion is about we are pointing to gcc's headers directory > >>> for allowed includes when building djgpp itself, whereas > >>> > >>> (i) we don't need that at all anymore (it was done only to work around > >>> a gcc builtin problem and it got solved without needing this hack), > >>> > >>> (ii) we are building with -nostdinc which means we are self- > >>> sufficient, and that hack is against this, > >>> > >>> (iii) since our DBL_MAX, etc are not compile time constants but symbols, > >>> and gcc ones are, the binary output of several djgpp functions such as > >>> strtod, etc, are different with and without gcc-headers hack. > >>> > >>> Those are the reasons I am against allowing gcc's headers in djgpp > >>> build. > >> AFAIR, -nostdinc means without library headers, but it does not > >> preclude the headers that are internal to the compiler. Actually, I think we use -nostdinc to make sure that the header files come from the library being compiled, not from the installed production environment. IOW, if you have DJGPP v2.03 installed and want to build a v2.05 library, you don't want to include, say, stdio.h that came with v2.03. Which means... > >> [...] > Including GCC own headers at first is expected behavior. ...that including GCC headers is fine, provided that it's needed. But why is it needed? Andris, you installed the change that added that 2 years ago; do you remember what was the reason for that? > There is however one other thing: > > Unmodified GCC float.h does NOT include next float.h. See > https://github.com/gcc-mirror/gcc/blob/master/gcc/ginclude/float.h > > For example in my Linux installation there is no float.h in /usr/include. > > Including next float.h is an additional hack. I modified GCC float.h and put there > #ifdef __DJGPP__ > #include_next > #endif > near the begin of GCC float.h. As far I verified there is no float.h in gcc-3.2, but it appears > in gcc-3.3. The oldest 3.3 DJGPP port deleted/v2gnu/gcc331b.zip already includes DJGPP float.h > in the begin. > > I verified now that for MINGW cross-compiler (I have it installed) "#include_next " is at end of GCC float.h. In my native MinGW installation, there's no such include_next, FWIW.