From: Martin Str|mberg Message-Id: <200106082135.XAA13989@mother.ludd.luth.se> Subject: Re: Compiler options for djdev build To: djgpp-workers AT delorie DOT com Date: Fri, 8 Jun 2001 23:35:39 +0200 (MEST) In-Reply-To: <4331-Fri08Jun2001133527+0300-eliz@is.elta.co.il> from "Eli Zaretskii" at Jun 08, 2001 01:35:27 PM X-Mailer: ELM [version 2.5 PL2] MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Reply-To: djgpp-workers AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: djgpp-workers AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk According to Eli Zaretskii: > > Per past discussions, here are the compiler options I suggest to add > to gcc.opt and gcc-l.opt: > > -Wundef > -Wcast-align > -Wconversion > -Wsign-compare > > I didn't yet try to build the library with these; perhaps someone > could try that. I did. We get a lot of warnings. Here's some diffs reflecting changes necessary (hand-pasted in): Index: src/libc/ansi/locale/mbstowcs.c =================================================================== RCS file: /cvs/djgpp/djgpp/src/libc/ansi/locale/mbstowcs.c,v retrieving revision 1.1 diff -p -u -r1.1 mbstowcs.c --- src/libc/ansi/locale/mbstowcs.c 1994/11/29 09:18:20 1.1 +++ src/libc/ansi/locale/mbstowcs.c 2001/06/08 21:19:36 @@ -4,8 +4,8 @@ size_t mbstowcs(wchar_t *wcs, const char *s, size_t n) { - int i; - for (i=0; s[i] && (i prec) Index: src/libc/ansi/stdio/doscan.c =================================================================== RCS file: /cvs/djgpp/djgpp/src/libc/ansi/stdio/doscan.c,v retrieving revision 1.9 diff -p -u -r1.9 doscan.c --- src/libc/ansi/stdio/doscan.c 1999/08/03 08:49:23 1.9 +++ src/libc/ansi/stdio/doscan.c 2001/06/08 21:19:45 @@ -366,7 +366,8 @@ _instr(char *ptr, int type, int len, FIL static const char * _getccl(const unsigned char *s) { - register int c, t; + register int t; + size_t c; t = 0; if (*s == '^') { > Finally, do we still need -fno-strength-reduce? I'd think we could > remove that now. If we are not sure, perhaps someone could ask on the > GCC mailing list. I'm trying with that one removed. Some warnings I don't understand and can't get to go away (I only tried to remove the todigit ones and gave up): make -C ansi/stdio gcc ... -c doprnt.c cc1.exe: warnings being treated as errors doprnt.c: In function `_doprnt': doprnt.c:167: warning: passing arg 1 of `todigit' with different width due to prototype doprnt.c:184: warning: passing arg 1 of `todigit' with different width due to prototype doprnt.c:277: warning: passing arg 5 of `cvtl' with different width due to prototype doprnt.c: In function `cvtl': doprnt.c:597: warning: passing arg 5 of `roundl' with different width due to prototype doprnt.c:621: warning: passing arg 5 of `roundl' with different width due to prototype doprnt.c:683: warning: passing arg 5 of `roundl' with different width due to prototype doprnt.c:696: warning: passing arg 3 of `exponentl' with different width due to prototype doprnt.c:763: warning: passing arg 5 of `roundl' with different width due to prototype doprnt.c: In function `roundl': doprnt.c:800: warning: passing arg 1 of `todigit' with different width due to prototype make.exe[3]: *** [doprnt.o] Error 1 make.exe[2]: *** [all_subs] Error 2 make.exe[1]: *** [all] Error 2 make.exe: *** [subs] Error 2 Finally an observation. Look at doscan.c above. We have variables declared as register. As I understand this this make optimisation by the compiler difficult. Shouldn't we change to not use "register"? Right, MartinS