2014-10-09 Sebastian Huber <sebastian.huber@embedded-brains.de>

* libc/include/stdint.h: Include <sys/_intsup.h>.
        (__STDINT_EXP): Delete.
        (__have_long32): Likewise.
        (__have_long64): Likewise.
        (__have_longlong64): Likewise.
        * libc/include/sys/_intsup.h: New file.
        (__STDINT_EXP): Move from libc/include/stdint.h.
        (__have_long32): Likewise.
        (__have_long64): Likewise.
        (__have_longlong64): Likewise.
        * libc/include/inttypes.h: Include <sys/_intsup.h>.
        (__INTTYPES_EXP): Delete and use __STDINT_EXP() instead.
This commit is contained in:
Jeff Johnston 2014-10-09 15:57:50 +00:00
parent 0613efefc7
commit 50f799240e
4 changed files with 55 additions and 34 deletions

View File

@ -1,3 +1,18 @@
2014-10-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
* libc/include/stdint.h: Include <sys/_intsup.h>.
(__STDINT_EXP): Delete.
(__have_long32): Likewise.
(__have_long64): Likewise.
(__have_longlong64): Likewise.
* libc/include/sys/_intsup.h: New file.
(__STDINT_EXP): Move from libc/include/stdint.h.
(__have_long32): Likewise.
(__have_long64): Likewise.
(__have_longlong64): Likewise.
* libc/include/inttypes.h: Include <sys/_intsup.h>.
(__INTTYPES_EXP): Delete and use __STDINT_EXP() instead.
2014-10-09 Freddie Chopin <freddie_chopin@op.pl>
* libc/string/memccpy.c (memccpy): Fix warning about signed-unsigned

View File

@ -13,20 +13,11 @@
#ifndef _INTTYPES_H
#define _INTTYPES_H
#include <sys/features.h>
#include <sys/_intsup.h>
#include <stdint.h>
#define __need_wchar_t
#include <stddef.h>
/* Don't use __STDINT_EXP test since GCC's stdint.h provides different
macros than newlib's stdint.h. */
#if __GNUC_PREREQ(3, 2)
#define __INTTYPES_EXP(x) __##x##__
#else
#define __INTTYPES_EXP(x) x
#include <limits.h>
#endif
#define __STRINGIFY(a) #a
/* 8-bit types */
@ -252,10 +243,10 @@
#define SCNxMAX __SCNMAX(x)
/* ptr types */
#if PTRDIFF_MAX <= __INTTYPES_EXP(INT_MAX)
#if PTRDIFF_MAX <= __STDINT_EXP(INT_MAX)
# define __PRIPTR(x) __STRINGIFY(x)
# define __SCNPTR(x) __STRINGIFY(x)
#elif PTRDIFF_MAX <= __INTTYPES_EXP(LONG_MAX) || !defined(__have_longlong64)
#elif PTRDIFF_MAX <= __STDINT_EXP(LONG_MAX) || !defined(__have_longlong64)
# define __PRIPTR(x) __STRINGIFY(l##x)
# define __SCNPTR(x) __STRINGIFY(l##x)
#else

View File

@ -10,33 +10,12 @@
#define _STDINT_H
#include <machine/_default_types.h>
#include <sys/_intsup.h>
#ifdef __cplusplus
extern "C" {
#endif
#if __GNUC_PREREQ (3, 2)
/* gcc > 3.2 implicitly defines the values we are interested */
#define __STDINT_EXP(x) __##x##__
#else
#define __STDINT_EXP(x) x
#include <limits.h>
#endif
/* Check if "long long" is 64bit wide */
/* Modern GCCs provide __LONG_LONG_MAX__, SUSv3 wants LLONG_MAX */
#if ( defined(__LONG_LONG_MAX__) && (__LONG_LONG_MAX__ > 0x7fffffff) ) \
|| ( defined(LLONG_MAX) && (LLONG_MAX > 0x7fffffff) )
#define __have_longlong64 1
#endif
/* Check if "long" is 64bit or 32bit wide */
#if __STDINT_EXP(LONG_MAX) > 0x7fffffff
#define __have_long64 1
#elif __STDINT_EXP(LONG_MAX) == 0x7fffffff && !defined(__SPU__)
#define __have_long32 1
#endif
#ifdef ___int8_t_defined
typedef __int8_t int8_t ;
typedef __uint8_t uint8_t ;

View File

@ -0,0 +1,36 @@
/*
* Copyright (c) 2004, 2005 by
* Ralf Corsepius, Ulm/Germany. All rights reserved.
*
* Permission to use, copy, modify, and distribute this software
* is freely granted, provided that this notice is preserved.
*/
#ifndef _SYS__INTSUP_H
#define _SYS__INTSUP_H
#include <sys/features.h>
#if __GNUC_PREREQ (3, 2)
/* gcc > 3.2 implicitly defines the values we are interested */
#define __STDINT_EXP(x) __##x##__
#else
#define __STDINT_EXP(x) x
#include <limits.h>
#endif
/* Check if "long long" is 64bit wide */
/* Modern GCCs provide __LONG_LONG_MAX__, SUSv3 wants LLONG_MAX */
#if ( defined(__LONG_LONG_MAX__) && (__LONG_LONG_MAX__ > 0x7fffffff) ) \
|| ( defined(LLONG_MAX) && (LLONG_MAX > 0x7fffffff) )
#define __have_longlong64 1
#endif
/* Check if "long" is 64bit or 32bit wide */
#if __STDINT_EXP(LONG_MAX) > 0x7fffffff
#define __have_long64 1
#elif __STDINT_EXP(LONG_MAX) == 0x7fffffff && !defined(__SPU__)
#define __have_long32 1
#endif
#endif /* _SYS__INTSUP_H */