porting.texi (_GLIBCPP_USE_C99_CHECK): New macro.
* docs/html/17_intro/porting.texi (_GLIBCPP_USE_C99_CHECK): New macro. (_GLIBCPP_USE_C99_DYNAMIC): New macro. (_GLIBCPP_USE_C99_LONG_LONG_CHECK): New macro. (_GLIBCPP_USE_C99_LONG_LONG_DYNAMIC): New macro. * config/os/bsd/freebsd/os_defines.h (_GLIBCPP_USE_C99_CHECK): New macro. (_GLIBCPP_USE_C99_DYNAMIC): New macro. (_GLIBCPP_USE_C99_LONG_LONG_CHECK): New macro. (_GLIBCPP_USE_C99_LONG_LONG_DYNAMIC): New macro. * include/c_std/std_cstdlib.h: Use new macros. * include/c_std/std_cstdio.h: Use new macros. * include/c_std/std_cwchar.h: Use new macros. From-SVN: r65778
This commit is contained in:
parent
c04ec67ecd
commit
9c59483708
@ -3,6 +3,19 @@
|
||||
* include/c_std/std_cmath.h (C99 FP capture): Only undefine said
|
||||
C99 FP macros, if actually captured.
|
||||
|
||||
* docs/html/17_intro/porting.texi (_GLIBCPP_USE_C99_CHECK): New macro.
|
||||
(_GLIBCPP_USE_C99_DYNAMIC): New macro.
|
||||
(_GLIBCPP_USE_C99_LONG_LONG_CHECK): New macro.
|
||||
(_GLIBCPP_USE_C99_LONG_LONG_DYNAMIC): New macro.
|
||||
* config/os/bsd/freebsd/os_defines.h (_GLIBCPP_USE_C99_CHECK):
|
||||
New macro.
|
||||
(_GLIBCPP_USE_C99_DYNAMIC): New macro.
|
||||
(_GLIBCPP_USE_C99_LONG_LONG_CHECK): New macro.
|
||||
(_GLIBCPP_USE_C99_LONG_LONG_DYNAMIC): New macro.
|
||||
* include/c_std/std_cstdlib.h: Use new macros.
|
||||
* include/c_std/std_cstdio.h: Use new macros.
|
||||
* include/c_std/std_cwchar.h: Use new macros.
|
||||
|
||||
2003-04-17 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
PR libstdc++/9555
|
||||
|
@ -34,6 +34,10 @@
|
||||
// System-specific #define, typedefs, corrections, etc, go here. This
|
||||
// file will come before all others.
|
||||
|
||||
#define _GLIBCPP_USE_C99_CHECK 1
|
||||
#define _GLIBCPP_USE_C99_DYNAMIC (!(__ISO_C_VISIBLE >= 1999))
|
||||
#define _GLIBCPP_USE_C99_LONG_LONG_CHECK 1
|
||||
#define _GLIBCPP_USE_C99_LONG_LONG_DYNAMIC (_GLIBCPP_USE_C99_DYNAMIC || !defined __LONG_LONG_SUPPORTED)
|
||||
#define _GLIBCPP_USE_C99_FLOAT_TRANSCENDENTALS_CHECK 1
|
||||
#define _GLIBCPP_USE_C99_FLOAT_TRANSCENDENTALS_DYNAMIC defined _XOPEN_SOURCE
|
||||
|
||||
|
@ -156,6 +156,28 @@ port doesn't use thunks (although it is unclear that this is still
|
||||
useful since libio support isn't currently working and the g++ v3 ABI
|
||||
invalidates the assumption that some ports don't use thunks).
|
||||
|
||||
@code{_GLIBCPP_USE_C99_CHECK} may be defined to 1 to check C99
|
||||
function declarations (which are not covered by specialization below)
|
||||
found in system headers against versions found in the library headers
|
||||
derived from the standard.
|
||||
|
||||
@code{_GLIBCPP_USE_C99_DYNAMIC} may be defined to an expression that
|
||||
yields 0 if and only if the system headers are exposing proper support
|
||||
for C99 functions (which are not covered by specialization below). If
|
||||
defined, it must be 0 while bootstrapping the compiler/rebuilding the
|
||||
library.
|
||||
|
||||
@code{_GLIBCPP_USE_C99_LONG_LONG_CHECK} may be defined to 1 to check
|
||||
the set of C99 long long function declarations found in system headers
|
||||
against versions found in the library headers derived from the
|
||||
standard.
|
||||
|
||||
@code{_GLIBCPP_USE_C99_LONG_LONG_DYNAMIC} may be defined to an
|
||||
expression that yields 0 if and only if the system headers are
|
||||
exposing proper support for the set of C99 long long functions. If
|
||||
defined, it must be 0 while bootstrapping the compiler/rebuilding the
|
||||
library.
|
||||
|
||||
@code{_GLIBCPP_USE_C99_FP_MACROS_DYNAMIC} may be defined to an
|
||||
expression that yields 0 if and only if the system headers
|
||||
are exposing proper support for the related set of macros. If defined,
|
||||
|
@ -1,6 +1,6 @@
|
||||
// -*- C++ -*- forwarding header.
|
||||
|
||||
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
|
||||
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
|
||||
// Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
@ -152,11 +152,24 @@ namespace std
|
||||
|
||||
namespace __gnu_cxx
|
||||
{
|
||||
#if _GLIBCPP_USE_C99_CHECK || _GLIBCPP_USE_C99_DYNAMIC
|
||||
extern "C" int
|
||||
(snprintf)(char * restrict, size_t, const char * restrict, ...);
|
||||
extern "C" int
|
||||
(vfscanf)(FILE * restrict, const char * restrict, __gnuc_va_list);
|
||||
extern "C" int (vscanf)(const char * restrict, __gnuc_va_list);
|
||||
extern "C" int
|
||||
(vsnprintf)(char * restrict, size_t, const char * restrict, __gnuc_va_list);
|
||||
extern "C" int
|
||||
(vsscanf)(const char * restrict, const char * restrict, __gnuc_va_list);
|
||||
#endif
|
||||
#if !_GLIBCPP_USE_C99_DYNAMIC
|
||||
using ::snprintf;
|
||||
using ::vfscanf;
|
||||
using ::vscanf;
|
||||
using ::vsnprintf;
|
||||
using ::vsscanf;
|
||||
#endif
|
||||
}
|
||||
|
||||
namespace std
|
||||
|
@ -1,6 +1,6 @@
|
||||
// -*- C++ -*- forwarding header.
|
||||
|
||||
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
|
||||
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
|
||||
// Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
@ -135,8 +135,15 @@ namespace std
|
||||
|
||||
namespace __gnu_cxx
|
||||
{
|
||||
#if !_GLIBCPP_USE_C99_LONG_LONG_DYNAMIC
|
||||
using ::lldiv_t;
|
||||
#endif
|
||||
#if _GLIBCPP_USE_C99_CHECK || _GLIBCPP_USE_C99_DYNAMIC
|
||||
extern "C" void (_Exit)(int);
|
||||
#endif
|
||||
#if !_GLIBCPP_USE_C99_DYNAMIC
|
||||
using ::_Exit;
|
||||
#endif
|
||||
|
||||
inline long long
|
||||
abs(long long __x) { return __x >= 0 ? __x : -__x; }
|
||||
@ -144,6 +151,7 @@ namespace __gnu_cxx
|
||||
inline long long
|
||||
llabs(long long __x) { return __x >= 0 ? __x : -__x; }
|
||||
|
||||
#if !_GLIBCPP_USE_C99_LONG_LONG_DYNAMIC
|
||||
inline lldiv_t
|
||||
div(long long __n, long long __d)
|
||||
{ lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; }
|
||||
@ -151,22 +159,36 @@ namespace __gnu_cxx
|
||||
inline lldiv_t
|
||||
lldiv(long long __n, long long __d)
|
||||
{ lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; }
|
||||
#endif
|
||||
|
||||
#if _GLIBCPP_USE_C99_LONG_LONG_CHECK || _GLIBCPP_USE_C99_LONG_LONG_DYNAMIC
|
||||
extern "C" long long int (atoll)(const char *);
|
||||
extern "C" long long int
|
||||
(strtoll)(const char * restrict, char ** restrict, int);
|
||||
extern "C" unsigned long long int
|
||||
(strtoull)(const char * restrict, char ** restrict, int);
|
||||
#endif
|
||||
#if !_GLIBCPP_USE_C99_LONG_LONG_DYNAMIC
|
||||
using ::atoll;
|
||||
using ::strtof;
|
||||
using ::strtoll;
|
||||
using ::strtoull;
|
||||
#endif
|
||||
using ::strtof;
|
||||
using ::strtold;
|
||||
}
|
||||
|
||||
namespace std
|
||||
{
|
||||
#if !_GLIBCPP_USE_C99_LONG_LONG_DYNAMIC
|
||||
using __gnu_cxx::lldiv_t;
|
||||
#endif
|
||||
using __gnu_cxx::_Exit;
|
||||
using __gnu_cxx::abs;
|
||||
using __gnu_cxx::llabs;
|
||||
#if !_GLIBCPP_USE_C99_LONG_LONG_DYNAMIC
|
||||
using __gnu_cxx::div;
|
||||
using __gnu_cxx::lldiv;
|
||||
#endif
|
||||
using __gnu_cxx::atoll;
|
||||
using __gnu_cxx::strtof;
|
||||
using __gnu_cxx::strtoll;
|
||||
|
@ -1,6 +1,6 @@
|
||||
// -*- C++ -*- forwarding header.
|
||||
|
||||
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
|
||||
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
|
||||
// Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
@ -225,9 +225,23 @@ namespace std
|
||||
|
||||
namespace __gnu_cxx
|
||||
{
|
||||
#if _GLIBCPP_USE_C99_CHECK || _GLIBCPP_USE_C99_DYNAMIC
|
||||
extern "C" long double
|
||||
(wcstold)(const wchar_t * restrict, wchar_t ** restrict);
|
||||
#endif
|
||||
#if !_GLIBCPP_USE_C99_DYNAMIC
|
||||
using ::wcstold;
|
||||
#endif
|
||||
#if _GLIBCPP_USE_C99_LONG_LONG_CHECK || _GLIBCPP_USE_C99_LONG_LONG_DYNAMIC
|
||||
extern "C" long long int
|
||||
(wcstoll)(const wchar_t * restrict, wchar_t ** restrict, int);
|
||||
extern "C" unsigned long long int
|
||||
(wcstoull)(const wchar_t * restrict, wchar_t ** restrict, int);
|
||||
#endif
|
||||
#if !_GLIBCPP_USE_C99_LONG_LONG_DYNAMIC
|
||||
using ::wcstoll;
|
||||
using ::wcstoull;
|
||||
#endif
|
||||
}
|
||||
|
||||
namespace std
|
||||
|
Loading…
Reference in New Issue
Block a user