diff -r -U3 a/src/libc/ansi/locale/makefile b/src/libc/ansi/locale/makefile --- a/src/libc/ansi/locale/makefile 1994-11-23 09:07:42.000000000 +0200 +++ b/src/libc/ansi/locale/makefile 2020-05-08 16:52:34.299944368 +0300 @@ -10,4 +10,6 @@ SRC += wcstombs.c SRC += wctomb.c +setlocal.o: EXTRA_CFLAGS += -Wno-stringop-truncation + include $(TOP)/../makefile.inc diff -r -U3 a/src/libc/ansi/string/makefile b/src/libc/ansi/string/makefile --- a/src/libc/ansi/string/makefile 1995-06-16 08:03:22.000000000 +0300 +++ b/src/libc/ansi/string/makefile 2020-05-08 16:52:34.299944368 +0300 @@ -28,3 +28,5 @@ SRC += syserr3.c include $(TOP)/../makefile.inc + +strlen.o: EXTRA_CFLAGS += -fno-builtin-strlen diff -r -U3 a/src/libc/c99/math/makefile b/src/libc/c99/math/makefile --- a/src/libc/c99/math/makefile 2013-10-20 13:57:11.000000000 +0300 +++ b/src/libc/c99/math/makefile 2020-05-08 16:52:34.299944368 +0300 @@ -36,3 +36,7 @@ clean:: $(MISC) rm fp-asm.h + +nan.o: EXTRA_CFLAGS += -fno-builtin-nan +nanf.o: EXTRA_CFLAGS += -fno-builtin-nanf +nanl.o: EXTRA_CFLAGS += -fno-builtin-nanl diff -r -U3 a/src/libc/compat/stdio/makefile b/src/libc/compat/stdio/makefile --- a/src/libc/compat/stdio/makefile 2015-05-02 07:32:17.000000000 +0300 +++ b/src/libc/compat/stdio/makefile 2020-05-08 16:52:34.299944368 +0300 @@ -19,4 +19,6 @@ SRC += vfscanf.S SRC += vsscanf.c +tempnam.o: EXTRA_CFLAGS += -Wno-stringop-truncation + include $(TOP)/../makefile.inc diff -r -U3 a/src/libc/compat/string/makefile b/src/libc/compat/string/makefile --- a/src/libc/compat/string/makefile 2003-01-19 13:03:56.000000000 +0200 +++ b/src/libc/compat/string/makefile 2020-05-08 16:52:34.299944368 +0300 @@ -22,3 +22,7 @@ SRC += strupr.c include $(TOP)/../makefile.inc + +stpcpy.o: EXTRA_CFLAGS += -fno-builtin-stpcpy +stpncpy.o: EXTRA_CFLAGS += -fno-builtin-stpncpy +strdup.o: EXTRA_CFLAGS += -fno-builtin-strdup diff -r -U3 a/src/libc/compat/unistd/makefile b/src/libc/compat/unistd/makefile --- a/src/libc/compat/unistd/makefile 2002-04-13 07:43:29.000000000 +0300 +++ b/src/libc/compat/unistd/makefile 2020-05-08 16:52:34.299944368 +0300 @@ -27,4 +27,6 @@ SRC += vfork.c SRC += xsymlink.c +dirname.o: EXTRA_CFLAGS += -Wno-stringop-truncation + include $(TOP)/../makefile.inc diff -r -U3 a/src/libc/dos/process/dosexec.c b/src/libc/dos/process/dosexec.c --- a/src/libc/dos/process/dosexec.c 2015-05-02 07:32:23.000000000 +0300 +++ b/src/libc/dos/process/dosexec.c 2020-05-08 16:52:34.299944368 +0300 @@ -406,7 +406,7 @@ if ((initial_tbuf_selector != tbuf_selector) && proxy_off) { char temp[65], *s, t2[5]; - sprintf (t2, "%04lX", tbuf_beg>>4); + sprintf (t2, "%04X", (unsigned short)(tbuf_beg>>4)); dosmemget (tbuf_beg+proxy_off, 64, temp); temp[64] = 0; s = strchr(temp,'\r'); @@ -1107,9 +1107,9 @@ proxy_cmdline = (char *)alloca (34); sprintf(proxy_cmdline, "%s=%04x %04x %04x %04x %04x", - __PROXY, argc, - (unsigned)(tbuf_beg >> 4), rm_off & 0xffff, - (unsigned)(tbuf_beg >> 4), si_off & 0xffff); + __PROXY, (unsigned short)argc, + (unsigned short)(tbuf_beg >> 4), (unsigned short)(rm_off & 0xffff), + (unsigned short)(tbuf_beg >> 4), (unsigned short)(si_off & 0xffff)); if (!found_si) proxy_cmdline[22] = 0; /* remove stubinfo information */ diff -r -U3 a/src/libc/dos/process/makefile b/src/libc/dos/process/makefile --- a/src/libc/dos/process/makefile 1997-10-09 22:29:16.000000000 +0300 +++ b/src/libc/dos/process/makefile 2020-05-08 16:52:34.313277702 +0300 @@ -12,4 +12,6 @@ SRC += spawnvp.c SRC += spawnvpe.c include $(TOP)/../makefile.inc + +dosexec.o: EXTRA_CFLAGS += -Wno-stringop-overflow diff -r -U3 a/src/libc/posix/string/makefile b/src/libc/posix/string/makefile --- a/src/libc/posix/string/makefile 2013-11-14 20:00:17.000000000 +0200 +++ b/src/libc/posix/string/makefile 2020-05-08 16:52:34.313277702 +0300 @@ -8,3 +8,6 @@ SRC += strnlen.c include $(TOP)/../makefile.inc + +strndup.o: EXTRA_CFLAGS += -fno-builtin-strndup +strnlen.o: EXTRA_CFLAGS += -Wno-nonnull-compare diff -r -U3 a/src/libm/math/e_asin.c b/src/libm/math/e_asin.c --- a/src/libm/math/e_asin.c 1998-02-07 13:18:28.000000000 +0200 +++ b/src/libm/math/e_asin.c 2020-05-08 16:52:34.313277702 +0300 @@ -91,10 +91,10 @@ if(huge+x>one) return x;/* return x with inexact if x!=0*/ } else t = x*x; - p = t*(pS0+t*(pS1+t*(pS2+t*(pS3+t*(pS4+t*pS5))))); - q = one+t*(qS1+t*(qS2+t*(qS3+t*qS4))); - w = p/q; - return x+x*w; + p = t*(pS0+t*(pS1+t*(pS2+t*(pS3+t*(pS4+t*pS5))))); + q = one+t*(qS1+t*(qS2+t*(qS3+t*qS4))); + w = p/q; + return x+x*w; } /* 1> |x|>= 0.5 */ w = one-fabs(x); diff -r -U3 a/src/libm/math/ef_asin.c b/src/libm/math/ef_asin.c --- a/src/libm/math/ef_asin.c 1998-02-07 14:13:26.000000000 +0200 +++ b/src/libm/math/ef_asin.c 2020-05-08 16:52:34.313277702 +0300 @@ -58,10 +58,10 @@ if(huge+x>one) return x;/* return x with inexact if x!=0*/ } else t = x*x; - p = t*(pS0+t*(pS1+t*(pS2+t*(pS3+t*(pS4+t*pS5))))); - q = one+t*(qS1+t*(qS2+t*(qS3+t*qS4))); - w = p/q; - return x+x*w; + p = t*(pS0+t*(pS1+t*(pS2+t*(pS3+t*(pS4+t*pS5))))); + q = one+t*(qS1+t*(qS2+t*(qS3+t*qS4))); + w = p/q; + return x+x*w; } /* 1> |x|>= 0.5 */ w = one-fabsf(x); diff -r -U3 a/src/libm/math/ef_jn.c b/src/libm/math/ef_jn.c --- a/src/libm/math/ef_jn.c 2002-03-16 13:32:53.000000000 +0200 +++ b/src/libm/math/ef_jn.c 2020-05-08 16:52:34.313277702 +0300 @@ -20,7 +20,6 @@ #else static float #endif -invsqrtpi= 5.6418961287e-01, /* 0x3f106ebb */ two = 2.0000000000e+00, /* 0x40000000 */ one = 1.0000000000e+00; /* 0x3F800000 */ diff -r -U3 a/src/libm/math/kf_rem_pio2.c b/src/libm/math/kf_rem_pio2.c --- a/src/libm/math/kf_rem_pio2.c 1997-04-15 08:39:48.000000000 +0300 +++ b/src/libm/math/kf_rem_pio2.c 2020-05-08 16:52:34.313277702 +0300 @@ -77,7 +77,8 @@ /* compute q[0],q[1],...q[jk] */ for (i=0;i<=jk;i++) { - for(j=0,fw=0.0;j<=jx;j++) fw += x[j]*f[jx+i-j]; q[i] = fw; + for(j=0,fw=0.0;j<=jx;j++) fw += x[j]*f[jx+i-j]; + q[i] = fw; } jz = jk; diff -r -U3 a/src/libm/math/k_rem_pio2.c b/src/libm/math/k_rem_pio2.c --- a/src/libm/math/k_rem_pio2.c 1997-04-15 08:39:48.000000000 +0300 +++ b/src/libm/math/k_rem_pio2.c 2020-05-08 16:52:34.313277702 +0300 @@ -187,7 +187,8 @@ /* compute q[0],q[1],...q[jk] */ for (i=0;i<=jk;i++) { - for(j=0,fw=0.0;j<=jx;j++) fw += x[j]*f[jx+i-j]; q[i] = fw; + for(j=0,fw=0.0;j<=jx;j++) fw += x[j]*f[jx+i-j]; + q[i] = fw; } jz = jk; diff -r -U3 a/src/libm/math/s_scalbn.c b/src/libm/math/s_scalbn.c --- a/src/libm/math/s_scalbn.c 1998-10-04 10:48:42.000000000 +0300 +++ b/src/libm/math/s_scalbn.c 2020-05-08 16:52:34.313277702 +0300 @@ -66,7 +66,6 @@ #endif two54 = 1.80143985094819840000e+16, /* 0x43500000, 0x00000000 */ twom54 = 5.55111512312578270212e-17, /* 0x3C900000, 0x00000000 */ -huge = 1.0e+300, tiny = 1.0e-300; #ifdef __STDC__ diff -r -U3 a/src/libm/math/sf_scalbn.c b/src/libm/math/sf_scalbn.c --- a/src/libm/math/sf_scalbn.c 1998-10-04 10:48:42.000000000 +0300 +++ b/src/libm/math/sf_scalbn.c 2020-05-08 16:52:34.313277702 +0300 @@ -29,7 +29,6 @@ #endif two25 = 3.355443200e+07, /* 0x4c000000 */ twom25 = 2.9802322388e-08, /* 0x33000000 */ -huge = 1.0e+30, tiny = 1.0e-30; #ifdef __STDC__ diff -r -U3 a/src/utils/djtar/unlzh.c b/src/utils/djtar/unlzh.c --- a/src/utils/djtar/unlzh.c 2015-05-02 07:32:38.000000000 +0300 +++ b/src/utils/djtar/unlzh.c 2020-05-08 16:52:34.316611036 +0300 @@ -236,7 +236,8 @@ { mask = (unsigned) 1 << (BITBUFSIZ - 1 - 3); while (mask & bitbuf) - mask >>= 1; c++; + mask >>= 1; + c++; } fillbuf((c < 7) ? 3 : c - 3); pt_len[i++] = c; diff -r -U3 a/src/debug/common/makefile b/src/debug/common/makefile --- a/src/debug/common/makefile 1999-06-03 17:27:33.000000000 +0300 +++ b/src/debug/common/makefile 2020-05-08 17:01:49.029943584 +0300 @@ -21,3 +21,5 @@ $(BIN)/symify.exe : $C symify.o $(LIB)/libdbg.a $L $(LINK) $(EXE) + +dbgcom.o: EXTRA_CFLAGS := -fno-inline diff -r -U3 a/src/debug/fsdb/ed.c b/src/debug/fsdb/ed.c --- a/src/debug/fsdb/ed.c 2015-05-02 07:32:01.000000000 +0300 +++ b/src/debug/fsdb/ed.c 2020-05-08 17:15:31.516609088 +0300 @@ -17,7 +17,7 @@ #include #include /* Workaround for stderr bug below */ -extern char *source_path; +char *source_path; extern char *setupfilename; /* ------------------------------------------------------------------------- */ static void diff -r -U3 a/src/debug/fsdb/fullscr.c b/src/debug/fsdb/fullscr.c --- a/src/debug/fsdb/fullscr.c 2015-05-14 14:21:04.000000000 +0300 +++ b/src/debug/fsdb/fullscr.c 2020-05-08 17:11:47.606609404 +0300 @@ -66,6 +66,26 @@ PANE_SOURCE = 14, PANE_WATCH = 15}; +int debug_screen_p; +int dual_monitor_p; +char *user_screen_save, *debug_screen_save; +unsigned char screen_attr; +unsigned char screen_attr_normal; +unsigned char screen_attr_source; +unsigned char screen_attr_focus; +unsigned char screen_attr_break; +unsigned char screen_attr_message; +unsigned char screen_attr_error; +unsigned char screen_attr_menu; +unsigned char screen_attr_menufocus; +unsigned char screen_attr_editframe; +unsigned char screen_attr_edittxt; +unsigned char screen_attr_editfield; +unsigned char screen_attr_editfocus; +int cols, rows; +int toplines, bottomlines; +char *read_buffer; + static int pane, ulpane, dlpane, pane_positions[PANECOUNT], pane_pos; static word32 code_dump_origin, code_dump_last; static word32 *code_pane_pos; diff -r -U3 a/src/debug/fsdb/screen.h b/src/debug/fsdb/screen.h --- a/src/debug/fsdb/screen.h 2015-05-02 07:32:02.000000000 +0300 +++ b/src/debug/fsdb/screen.h 2020-05-08 17:10:03.466609551 +0300 @@ -16,25 +16,25 @@ char *data; } EDIT_ITEM; /* ------------------------------------------------------------------------- */ -int debug_screen_p; -int dual_monitor_p; -char *user_screen_save, *debug_screen_save; -unsigned char screen_attr; -unsigned char screen_attr_normal; -unsigned char screen_attr_source; -unsigned char screen_attr_focus; -unsigned char screen_attr_break; -unsigned char screen_attr_message; -unsigned char screen_attr_error; -unsigned char screen_attr_menu; -unsigned char screen_attr_menufocus; -unsigned char screen_attr_editframe; -unsigned char screen_attr_edittxt; -unsigned char screen_attr_editfield; -unsigned char screen_attr_editfocus; -int cols, rows; -int toplines, bottomlines; -char *read_buffer; +extern int debug_screen_p; +extern int dual_monitor_p; +extern char *user_screen_save, *debug_screen_save; +extern unsigned char screen_attr; +extern unsigned char screen_attr_normal; +extern unsigned char screen_attr_source; +extern unsigned char screen_attr_focus; +extern unsigned char screen_attr_break; +extern unsigned char screen_attr_message; +extern unsigned char screen_attr_error; +extern unsigned char screen_attr_menu; +extern unsigned char screen_attr_menufocus; +extern unsigned char screen_attr_editframe; +extern unsigned char screen_attr_edittxt; +extern unsigned char screen_attr_editfield; +extern unsigned char screen_attr_editfocus; +extern int cols, rows; +extern int toplines, bottomlines; +extern char *read_buffer; /* ------------------------------------------------------------------------- */ void put (int x, int y, char *txt); void putl (int x, int y, int l, char *txt); diff -r -U3 a/src/debug/fsdb/unassmbl.h b/src/debug/fsdb/unassmbl.h --- a/src/debug/fsdb/unassmbl.h 2002-04-16 21:14:17.000000000 +0300 +++ b/src/debug/fsdb/unassmbl.h 2020-05-08 17:13:21.123275938 +0300 @@ -25,7 +25,7 @@ void put_source_line(int, char *, int, char *); int file_line_count (char *); FILE *cache_fopen(char *name); -char *source_path; +extern char *source_path; #else word32 unassemble(word32 v, int showregs); #endif diff -r -U3 a/src/libc/ansi/stdlib/exit.c b/src/libc/ansi/stdlib/exit.c --- a/src/libc/ansi/stdlib/exit.c 2015-05-02 07:32:10.000000000 +0300 +++ b/src/libc/ansi/stdlib/exit.c 2020-05-08 17:05:04.683276641 +0300 @@ -15,7 +15,7 @@ struct __atexit *__atexit_ptr = 0; -void (*__stdio_cleanup_hook)(void); +extern void (*__stdio_cleanup_hook)(void); /* A hook to close down the file system extensions if any where opened. This does not force them to be linked in. */ diff -r -U3 a/src/libc/ansi/time/makefile b/src/libc/ansi/time/makefile --- a/src/libc/ansi/time/makefile 1995-08-27 06:00:46.000000000 +0300 +++ b/src/libc/ansi/time/makefile 2020-05-08 16:54:23.636610881 +0300 @@ -7,3 +7,5 @@ SRC += time.c include $(TOP)/../makefile.inc + +EXTRA_CFLAGS := -Wno-format-overflow diff -r -U3 a/src/libc/crt0/makefile b/src/libc/crt0/makefile --- a/src/libc/crt0/makefile 2015-05-02 07:32:20.000000000 +0300 +++ b/src/libc/crt0/makefile 2020-05-08 16:57:53.933277249 +0300 @@ -41,4 +41,4 @@ sed 's@gcrt0.o@$(LIB)/gcrt0.o@' gcrt0.d > gcrt02.d mcount.o : mcount.c - $(XNOPGGCC) -c $< + $(XNOPGGCC) -Wno-array-bounds -c $< diff -r -U3 a/src/libc/dos/io/makefile b/src/libc/dos/io/makefile --- a/src/libc/dos/io/makefile 2001-03-07 05:34:26.000000000 +0200 +++ b/src/libc/dos/io/makefile 2020-05-08 16:59:27.886610451 +0300 @@ -29,3 +29,5 @@ SRC += flushdc.c include $(TOP)/../makefile.inc + +_chmod.o: EXTRA_CFLAGS := -Wno-array-bounds diff -r -U3 a/src/libc/emu387/npxsetup.c b/src/libc/emu387/npxsetup.c --- a/src/libc/emu387/npxsetup.c 1999-12-24 20:52:59.000000000 +0200 +++ b/src/libc/emu387/npxsetup.c 2020-05-08 16:52:34.323277703 +0300 @@ -16,7 +16,7 @@ #include #include #include -#include +#include #include /* for _8087 */ #ifndef IMBED_EMU387 #include diff -r -U3 a/src/libc/go32/dpmiexcp.c b/src/libc/go32/dpmiexcp.c --- a/src/libc/go32/dpmiexcp.c 2003-09-09 12:24:36.000000000 +0300 +++ b/src/libc/go32/dpmiexcp.c 2020-05-08 16:52:34.336611036 +0300 @@ -6,7 +6,7 @@ #include #include #include -#include +#include #include #include #include diff -r -U3 a/src/libc/posix/fcntl/makefile b/src/libc/posix/fcntl/makefile --- a/src/libc/posix/fcntl/makefile 2015-05-08 16:48:11.000000000 +0300 +++ b/src/libc/posix/fcntl/makefile 2020-05-08 17:00:38.073277018 +0300 @@ -8,3 +8,5 @@ SRC += open.c include $(TOP)/../makefile.inc + +open.o: EXTRA_CFLAGS := -Wno-array-bounds diff -r -U3 a/src/libm/math/k_standard.c b/src/libm/math/k_standard.c --- a/src/libm/math/k_standard.c 1998-10-04 10:48:42.000000000 +0300 +++ b/src/libm/math/k_standard.c 2020-05-08 17:20:23.633275341 +0300 @@ -86,6 +86,7 @@ #endif { struct exception exc; + exc.retval = nan(); #ifndef HUGE_VAL /* this is the only routine that uses HUGE_VAL */ #define HUGE_VAL inf double inf = 0.0; diff -r -U3 a/src/libm/math/sf_cos.c b/src/libm/math/sf_cos.c --- a/src/libm/math/sf_cos.c 1997-04-15 08:39:52.000000000 +0300 +++ b/src/libm/math/sf_cos.c 2020-05-08 16:52:34.313277702 +0300 @@ -16,12 +16,6 @@ #include "fdlibm.h" #ifdef __STDC__ -static const float one=1.0; -#else -static float one=1.0; -#endif - -#ifdef __STDC__ float cosf(float x) #else float cosf(x) diff -r -U3 a/src/utils/djtar/zread.h b/src/utils/djtar/zread.h --- a/src/utils/djtar/zread.h 2015-05-02 07:32:38.000000000 +0300 +++ b/src/utils/djtar/zread.h 2020-05-08 17:22:14.129941850 +0300 @@ -162,7 +162,7 @@ #define WARN(msg) {if (v_switch) fprintf msg ; \ if (exit_code == OK) exit_code = WARNING;} -int (*decompressor)(void *); +extern int (*decompressor)(void *); typedef enum { DOS_BINARY, DOS_TEXT, UNIX_TEXT } File_type; diff -r -U3 a/src/utils/redir.c b/src/utils/redir.c --- a/src/utils/redir.c 2015-05-02 07:32:36.000000000 +0300 +++ b/src/utils/redir.c 2020-05-08 16:52:34.323277703 +0300 @@ -21,7 +21,7 @@ */ #include -#include +#include #include #include #include