[PATCH 05/18] Add BSD guard for clock_t

Craig Howland howland@LGSInnovations.com
Thu Apr 14 15:18:00 GMT 2016


On 04/14/2016 07:54 AM, Sebastian Huber wrote:
> Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
> ---
>   newlib/libc/include/sys/_types.h | 4 +++-
>   newlib/libc/include/sys/times.h  | 7 ++++---
>   newlib/libc/include/sys/types.h  | 7 ++++---
>   3 files changed, 11 insertions(+), 7 deletions(-)
>
> diff --git a/newlib/libc/include/sys/_types.h b/newlib/libc/include/sys/_types.h
> index af32bcb..0f5cb9d 100644
> --- a/newlib/libc/include/sys/_types.h
> +++ b/newlib/libc/include/sys/_types.h
> @@ -145,7 +145,9 @@ typedef _LOCK_RECURSIVE_T _flock_t;
>   typedef void *_iconv_t;
>   #endif
>   
> -#define	_CLOCK_T_	unsigned long		/* clock() */
> +#define	_CLOCK_T_	unsigned long	/* clock() */
> +typedef	_CLOCK_T_	__clock_t;
> +
>   #define	_TIME_T_	long			/* time() */
>   #define _CLOCKID_T_ 	unsigned long
>   #define _TIMER_T_   	unsigned long
> diff --git a/newlib/libc/include/sys/times.h b/newlib/libc/include/sys/times.h
> index dc072f4..b1f1dc6 100644
> --- a/newlib/libc/include/sys/times.h
> +++ b/newlib/libc/include/sys/times.h
> @@ -7,9 +7,10 @@ extern "C" {
>   #include <_ansi.h>
>   #include <sys/_types.h>
>   
> -#ifndef __clock_t_defined
> -typedef _CLOCK_T_ clock_t;
> -#define __clock_t_defined
> +#if !defined(__clock_t_defined) && !defined(_CLOCK_T_DECLARED)
> +typedef	_CLOCK_T_	clock_t;
> +#define	__clock_t_defined
> +#define	_CLOCK_T_DECLARED
>   #endif
>   
>   /*  Get Process Times, P1003.1b-1993, p. 92 */
> diff --git a/newlib/libc/include/sys/types.h b/newlib/libc/include/sys/types.h
> index e48c2f2..f17821b 100644
> --- a/newlib/libc/include/sys/types.h
> +++ b/newlib/libc/include/sys/types.h
> @@ -96,9 +96,10 @@ typedef	unsigned int	uint;		/* System V compatibility */
>   typedef	unsigned long	ulong;		/* System V compatibility */
>   #endif
>   
> -#ifndef __clock_t_defined
> -typedef _CLOCK_T_ clock_t;
> -#define __clock_t_defined
> +#if !defined(__clock_t_defined) && !defined(_CLOCK_T_DECLARED)
> +typedef	_CLOCK_T_	clock_t;
> +#define	__clock_t_defined
> +#define	_CLOCK_T_DECLARED
>   #endif
>   
>   #ifndef __time_t_defined
While this is not something that is being introduced by this patch, as long as 
it is being done and making the fact obvious, it sure would be nice if a comment 
could be added to point out that these definitions are in two places and need to 
be kept identical. Perhaps something along the lines of
/* Both sys/times.h and sys/types.h contain this clock_t definition.  They must 
be kept identical.  */
(Even better would be a single place that gets included.  But again, this is not 
an issue created by this patch.)
Craig



More information about the Newlib mailing list