commit 624d3aebb6e6afadb4f35e894d11b5ebe290cd87 Author: christos Date: Thu May 28 11:47:03 2015 +0000 avoid gcc-5 optimization malloc + memset = calloc (Fridolin Pokorny) diff --git a/tc.alloc.c b/tc.alloc.c index b9aec63..c1cb330 100644 --- a/tc.alloc.c +++ b/tc.alloc.c @@ -348,10 +348,13 @@ calloc(size_t i, size_t j) { #ifndef lint char *cp; + size_t k; i *= j; cp = xmalloc(i); - memset(cp, 0, i); + /* Stop gcc 5.x from optimizing malloc+memset = calloc */ + k = i; + memset(cp, 0, k); return ((memalign_t) cp); #else commit 05e7406049bd2686dee0ee8d819dcd38eb131f6f Author: christos Date: Tue Jul 7 12:24:54 2015 +0000 make k volatile to prevent gcc-5 memset() optimization (Fridolin Pokorny) diff --git a/tc.alloc.c b/tc.alloc.c index c1cb330..f68a8c5 100644 --- a/tc.alloc.c +++ b/tc.alloc.c @@ -348,7 +348,7 @@ calloc(size_t i, size_t j) { #ifndef lint char *cp; - size_t k; + volatile size_t k; i *= j; cp = xmalloc(i); commit c43b072b89f19e9b41d45bdf3946593ae9bc6e5e Author: christos Date: Mon Aug 24 07:08:42 2015 +0000 restrict BSDWAIT to __GLIBC__ because other linux libraries (muslc) don't have the macros. diff --git a/sh.proc.c b/sh.proc.c index 76eca3b..ad07250 100644 --- a/sh.proc.c +++ b/sh.proc.c @@ -47,7 +47,7 @@ RCSID("$tcsh$") # define HZ 16 #endif /* aiws */ -#if defined(_BSD) || (defined(IRIS4D) && __STDC__) || defined(__lucid) || defined(__linux__) || defined(__GNU__) || defined(__GLIBC__) +#if defined(_BSD) || (defined(IRIS4D) && __STDC__) || defined(__lucid) || defined(__GLIBC__) # if !defined(__ANDROID__) # define BSDWAIT # endif commit eab72f9797ec4faaf1fb4de491c357f194b84dd6 Author: christos Date: Thu Apr 14 11:09:09 2016 +0000 GLIBC is getting rid of union wait. diff --git a/sh.proc.c b/sh.proc.c index ad07250..5c68409 100644 --- a/sh.proc.c +++ b/sh.proc.c @@ -47,11 +47,11 @@ RCSID("$tcsh$") # define HZ 16 #endif /* aiws */ -#if defined(_BSD) || (defined(IRIS4D) && __STDC__) || defined(__lucid) || defined(__GLIBC__) -# if !defined(__ANDROID__) +#if defined(_BSD) || (defined(IRIS4D) && __STDC__) || defined(__lucid) || defined(__linux__) || defined(__GNU__) +# if !defined(__ANDROID__) && !defined(__GLIBC__) # define BSDWAIT # endif -#endif /* _BSD || (IRIS4D && __STDC__) || __lucid || glibc */ +#endif /* _BSD || (IRIS4D && __STDC__) || __lucid || gnu-linux */ #ifndef WTERMSIG # define WTERMSIG(w) (((union wait *) &(w))->w_termsig) # ifndef BSDWAIT diff -Nru tcsh-6.19.00.orig/config/linux tcsh-6.19.00/config/linux --- tcsh-6.19.00.orig/config/linux 2016-09-22 17:51:43.086924218 +0200 +++ tcsh-6.19.00/config/linux 2016-09-22 17:54:16.123662001 +0200 @@ -86,11 +86,11 @@ */ #define __STRICT_ANSI__ -#ifndef _BSD_SOURCE -# define _BSD_SOURCE +#ifndef _DEFAULT_SOURCE +# define _DEFAULT_SOURCE #endif -#ifndef _SVID_SOURCE -# define _SVID_SOURCE +#ifndef _DEFAULT_SOURCE +# define _DEFAULT_SOURCE #endif #ifndef _POSIX_SOURCE # define _POSIX_SOURCE