> Date: Sun, 28 Apr 2013 11:52:47 +0200 (CEST)
> From: Stefan Fritsch <s...@sfritsch.de>
> 
> On Sun, 21 Apr 2013, Stefan Fritsch wrote:
> > On Sunday 21 April 2013, Philip Guenther wrote:
> >> Maybe this should be handled the bool bits in <sys/types.h>,
> >> wrapping them in #ifdef _KERNEL ?
> >
> > #ifdef _KERNEL is fine with me.
> 
> OK for the patch below?

Just drop the <sys/types.h> ptrdiff_t bit completely please.  I don't
think it should be used in the kernel; there always is a more
appropriate kernel type to use.

> --- a/gnu/gcc/gcc/c-format.c
> +++ b/gnu/gcc/gcc/c-format.c
> @@ -325,6 +325,7 @@ static const format_length_info kprintf_length_specs[] =
>     { "l", FMT_LEN_l, STD_C89, "ll", FMT_LEN_ll, STD_C9L },
>     { "q", FMT_LEN_ll, STD_EXT, NULL, 0, 0 },
>     { "z", FMT_LEN_z, STD_C99, NULL, 0, 0 },
> +  { "t", FMT_LEN_t, STD_C99, NULL, 0, 0 },
>     { NULL, 0, 0, NULL, 0, 0 }
>   };
> 
> @@ -552,9 +553,9 @@ static const format_char_info asm_fprintf_char_table[] =
>   static const format_char_info kprint_char_table[] =
>   {
>     /* C89 conversion specifiers.  */ 
> -  { "di",  0, STD_C89, { T89_I,   BADLEN, T89_S,   T89_L,   T9L_LL,  BADLEN, 
>  T99_SST, BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN }, "-wp0 +'I", "i", NULL 
> }, 
> -  { "oxX", 0, STD_C89, { T89_UI,  BADLEN, T89_US,  T89_UL,  T9L_ULL, BADLEN, 
>  T99_ST,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN }, "-wp0#",    "i", NULL 
> }, 
> -  { "u",   0, STD_C89, { T89_UI,  BADLEN, T89_US,  T89_UL,  T9L_ULL, BADLEN, 
>  T99_ST,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN }, "-wp0'I",   "i", NULL 
> }, 
> +  { "di",  0, STD_C89, { T89_I,   BADLEN, T89_S,   T89_L,   T9L_LL,  BADLEN, 
>  T99_SST, T99_PD,  BADLEN,  BADLEN,  BADLEN,  BADLEN }, "-wp0 +'I", "i", NULL 
> }, 
> +  { "oxX", 0, STD_C89, { T89_UI,  BADLEN, T89_US,  T89_UL,  T9L_ULL, BADLEN, 
>  T99_ST,  T99_UPD,  BADLEN,  BADLEN,  BADLEN,  BADLEN }, "-wp0#",    "i", 
> NULL }, 
> +  { "u",   0, STD_C89, { T89_UI,  BADLEN, T89_US,  T89_UL,  T9L_ULL, BADLEN, 
>  T99_ST,  T99_UPD,  BADLEN,  BADLEN,  BADLEN,  BADLEN }, "-wp0'I",   "i", 
> NULL },
>     { "c",   0, STD_C89, { T89_I,   BADLEN, BADLEN,  BADLEN,  BADLEN,  
> BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN }, "-w",       
> "", NULL },
>     { "s",   1, STD_C89, { T89_C,   BADLEN, BADLEN,  BADLEN,  BADLEN,  
> BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN }, "-wp",      
> "cR", NULL },
>     { "p",   1, STD_C89, { T89_V,   BADLEN, BADLEN,  T89_UL,  T9L_LL,  
> BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN }, "-wp0",     
> "c", NULL }, 
> --- a/sys/kern/subr_prf.c
> +++ b/sys/kern/subr_prf.c
> @@ -842,6 +842,9 @@ reswitch: switch (ch) {
>                       size = 1;
>                       sign = '\0';
>                       break;
> +             case 't':
> +                     /* assume ptrdiff_t is long */
> +                     /* FALLTHROUGH */
>               case 'D':
>                       flags |= LONGINT;
>                       /*FALLTHROUGH*/
> --- a/sys/sys/types.h
> +++ b/sys/sys/types.h
> @@ -177,6 +177,13 @@ typedef  __clockid_t     clockid_t;
>   typedef     __size_t        size_t;
>   #endif
> 
> +#ifdef _KERNEL
> +#ifndef      _PTRDIFF_T_DEFINED_
> +#define      _PTRDIFF_T_DEFINED_
> +typedef      __ptrdiff_t     ptrdiff_t;
> +#endif
> +#endif
> +
>   #ifndef     _SSIZE_T_DEFINED_
>   #define     _SSIZE_T_DEFINED_
>   typedef     __ssize_t       ssize_t;
> 

Reply via email to