Mercurial > hg > octave-lyh > gnulib-hg
changeset 8646:27dec01819aa
Fix problem with Compaq (ex-DEC) Desktop C compiler on Tru64.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Fri, 06 Apr 2007 12:25:54 +0000 |
parents | 21f8505f12f3 |
children | 8493230fff95 |
files | ChangeLog lib/math_.h lib/stdio_.h lib/stdlib_.h lib/string_.h lib/time_.h lib/wchar_.h lib/wctype_.h |
diffstat | 8 files changed, 124 insertions(+), 55 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,17 @@ +2007-04-06 Bruno Haible <bruno@clisp.org> + + Fix problem with Compaq (ex-DEC) Desktop C compiler on Tru64. + * lib/math_.h [__DECC]: Include the overridden include file through + #include_next, outside the double-inclusion guard. + * lib/stdio_.h [__DECC]: Likewise. + * lib/stdlib_.h [__DECC]: Likewise. + * lib/string_.h [__DECC]: Likewise. + * lib/time_.h [__DECC]: Likewise. + * lib/wchar_.h [__DECC]: Likewise. + * lib/wctype_.h [__DECC]: Likewise. + Reported by Albert Chin <china@thewrittenword.com> in + <http://lists.gnu.org/archive/html/bug-gnulib/2007-04/msg00088.html>. + 2007-04-04 Eric Blake <ebb9@byu.net> * m4/stdint.m4 (gl_STDINT_H): Detect WINT_MAX bug in cygwin
--- a/lib/math_.h +++ b/lib/math_.h @@ -16,10 +16,16 @@ along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ +#ifdef __DECC +# include_next <math.h> +#endif + #ifndef _GL_MATH_H #define _GL_MATH_H -#include @ABSOLUTE_MATH_H@ +#ifndef __DECC +# include @ABSOLUTE_MATH_H@ +#endif /* The definition of GL_LINK_WARNING is copied here. */
--- a/lib/stdio_.h +++ b/lib/stdio_.h @@ -23,10 +23,17 @@ #else /* Normal invocation convention. */ + +#ifdef __DECC +# include_next <stdio.h> +#endif + #ifndef _GL_STDIO_H #define _GL_STDIO_H -#include @ABSOLUTE_STDIO_H@ +#ifndef __DECC +# include @ABSOLUTE_STDIO_H@ +#endif #include <stdarg.h> #include <stddef.h>
--- a/lib/stdlib_.h +++ b/lib/stdlib_.h @@ -30,6 +30,11 @@ #else /* Normal invocation convention. */ + +#ifdef __DECC +# include_next <stdlib.h> +#endif + #ifndef _GL_STDLIB_H #define _GL_STDLIB_H @@ -40,7 +45,9 @@ # pragma GCC system_header #endif -#include @ABSOLUTE_STDLIB_H@ +#ifndef __DECC +# include @ABSOLUTE_STDLIB_H@ +#endif /* The definition of GL_LINK_WARNING is copied here. */
--- a/lib/string_.h +++ b/lib/string_.h @@ -16,6 +16,10 @@ along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ +#ifdef __DECC +# include_next <string.h> +#endif + #ifndef _GL_STRING_H #define _GL_STRING_H @@ -25,7 +29,9 @@ # pragma GCC system_header #endif -#include @ABSOLUTE_STRING_H@ +#ifndef __DECC +# include @ABSOLUTE_STRING_H@ +#endif /* The definition of GL_LINK_WARNING is copied here. */
--- a/lib/time_.h +++ b/lib/time_.h @@ -22,86 +22,97 @@ #if defined __need_time_t || defined __need_clock_t || defined __need_timespec # include @ABSOLUTE_TIME_H@ -#elif ! defined _GL_TIME_H -# define _GL_TIME_H -# include @ABSOLUTE_TIME_H@ +#else +/* Normal invocation convention. */ + +# ifdef __DECC +# include_next <time.h> +# endif -# ifdef __cplusplus +# if ! defined _GL_TIME_H +# define _GL_TIME_H + +# ifndef __DECC +# include @ABSOLUTE_TIME_H@ +# endif + +# ifdef __cplusplus extern "C" { -# endif +# endif /* Some systems don't define struct timespec (e.g., AIX 4.1, Ultrix 4.3). Or they define it with the wrong member names or define it in <sys/time.h> (e.g., FreeBSD circa 1997). */ -# if ! @TIME_H_DEFINES_STRUCT_TIMESPEC@ -# if @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ -# include <sys/time.h> -# else -# undef timespec -# define timespec rpl_timespec +# if ! @TIME_H_DEFINES_STRUCT_TIMESPEC@ +# if @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ +# include <sys/time.h> +# else +# undef timespec +# define timespec rpl_timespec struct timespec { time_t tv_sec; long int tv_nsec; }; +# endif # endif -# endif /* Sleep for at least RQTP seconds unless interrupted, If interrupted, return -1 and store the remaining time into RMTP. See <http://www.opengroup.org/susv3xsh/nanosleep.html>. */ -# if @REPLACE_NANOSLEEP@ -# define nanosleep rpl_nanosleep +# if @REPLACE_NANOSLEEP@ +# define nanosleep rpl_nanosleep int nanosleep (struct timespec const *__rqtp, struct timespec *__rmtp); -# endif +# endif /* Convert TIMER to RESULT, assuming local time and UTC respectively. See <http://www.opengroup.org/susv3xsh/localtime_r.html> and <http://www.opengroup.org/susv3xsh/gmtime_r.html>. */ -# if @REPLACE_LOCALTIME_R@ -# undef localtime_r -# define localtime_r rpl_localtime_r -# undef gmtime_r -# define gmtime_r rpl_gmtime_r +# if @REPLACE_LOCALTIME_R@ +# undef localtime_r +# define localtime_r rpl_localtime_r +# undef gmtime_r +# define gmtime_r rpl_gmtime_r struct tm *localtime_r (time_t const *restrict __timer, struct tm *restrict __result); struct tm *gmtime_r (time_t const *restrict __timer, struct tm *restrict __result); -# endif +# endif /* Parse BUF as a time stamp, assuming FORMAT specifies its layout, and store the resulting broken-down time into TM. See <http://www.opengroup.org/susv3xsh/strptime.html>. */ -# if @REPLACE_STRPTIME@ -# undef strptime -# define strptime rpl_strptime +# if @REPLACE_STRPTIME@ +# undef strptime +# define strptime rpl_strptime char *strptime (char const *restrict __buf, char const *restrict __format, struct tm *restrict __tm); -# endif +# endif /* Convert TM to a time_t value, assuming UTC. */ -# if @REPLACE_TIMEGM@ -# undef timegm -# define timegm rpl_timegm +# if @REPLACE_TIMEGM@ +# undef timegm +# define timegm rpl_timegm time_t timegm (struct tm *__tm); -#endif +# endif /* Encourage applications to avoid unsafe functions that can overrun buffers when given outlandish struct tm values. Portable applications should use strftime (or even sprintf) instead. */ -# if GNULIB_PORTCHECK -# undef asctime -# define asctime eschew_asctime -# undef asctime_r -# define asctime_r eschew_asctime_r -# undef ctime -# define ctime eschew_ctime -# undef ctime_r -# define ctime_r eschew_ctime_r +# if GNULIB_PORTCHECK +# undef asctime +# define asctime eschew_asctime +# undef asctime_r +# define asctime_r eschew_asctime_r +# undef ctime +# define ctime eschew_ctime +# undef ctime_r +# define ctime_r eschew_ctime_r +# endif + +# ifdef __cplusplus +} +# endif + # endif - -# ifdef __cplusplus -} -# endif - #endif
--- a/lib/wchar_.h +++ b/lib/wchar_.h @@ -25,6 +25,11 @@ * For now, this just ensures proper prerequisite inclusion order. */ +#ifdef __DECC +# include <stdio.h> +# include_next <wchar.h> +#endif + #ifndef _GL_WCHAR_H #define _GL_WCHAR_H @@ -37,6 +42,8 @@ #include <time.h> /* Include the original <wchar.h>. */ -#include @ABSOLUTE_WCHAR_H@ +#ifndef __DECC +# include @ABSOLUTE_WCHAR_H@ +#endif #endif /* _GL_WCHAR_H */
--- a/lib/wctype_.h +++ b/lib/wctype_.h @@ -26,9 +26,6 @@ * wctrans_t, and wctype_t are not yet implemented. */ -#ifndef _GL_WCTYPE_H -#define _GL_WCTYPE_H - #if @HAVE_WINT_T@ /* Solaris 2.5 has a bug: <wchar.h> must be included before <wctype.h>. Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before @@ -39,15 +36,29 @@ # include <stdio.h> # include <time.h> # include <wchar.h> -typedef wint_t __wctype_wint_t; -#else -typedef int __wctype_wint_t; #endif +#if @HAVE_WCTYPE_H@ +# ifdef __DECC +# include_next <wctype.h> +# endif +#endif + +#ifndef _GL_WCTYPE_H +#define _GL_WCTYPE_H + /* Include the original <wctype.h> if it exists. BeOS 5 has the functions but no <wctype.h>. */ #if @HAVE_WCTYPE_H@ -# include @ABSOLUTE_WCTYPE_H@ +# ifndef __DECC +# include @ABSOLUTE_WCTYPE_H@ +# endif +#endif + +#if @HAVE_WINT_T@ +typedef wint_t __wctype_wint_t; +#else +typedef int __wctype_wint_t; #endif /* FreeBSD 4.4 to 4.11 has <wctype.h> but lacks the functions.