1 // Specific definitions for GNU/Linux -*- C++ -*- 2 3 // Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. 4 // 5 // This file is part of the GNU ISO C++ Library. This library is free 6 // software; you can redistribute it and/or modify it under the 7 // terms of the GNU General Public License as published by the 8 // Free Software Foundation; either version 2, or (at your option) 9 // any later version. 10 11 // This library is distributed in the hope that it will be useful, 12 // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 // GNU General Public License for more details. 15 16 // You should have received a copy of the GNU General Public License along 17 // with this library; see the file COPYING. If not, write to the Free 18 // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, 19 // USA. 20 21 // As a special exception, you may use this file as part of a free software 22 // library without restriction. Specifically, if other files instantiate 23 // templates or use macros or inline functions from this file, or you compile 24 // this file and link it with other files to produce an executable, this 25 // file does not by itself cause the resulting executable to be covered by 26 // the GNU General Public License. This exception does not however 27 // invalidate any other reasons why the executable file might be covered by 28 // the GNU General Public License. 29 30 #ifndef _GLIBCPP_OS_DEFINES 31 #define _GLIBCPP_OS_DEFINES 1 32 33 // System-specific #define, typedefs, corrections, etc, go here. This 34 // file will come before all others. 35 36 // This keeps isanum, et al from being propagated as macros. 37 #define __NO_CTYPE 1 38 39 #include <features.h> 40 41 #if !defined (__GLIBC__) || (__GLIBC__ == 2 && __GLIBC_MINOR__+ 0 == 0) 42 43 // The types __off_t and __off64_t are not defined through <sys/types.h> 44 // as _G_config assumes. For libc5 and glibc 2.0 instead use 45 // <gnu/types.h> and the old name for __off64_t. 46 #include <gnu/types.h> 47 typedef __loff_t __off64_t; 48 49 // These systems have declarations mismatching those in libio.h by 50 // omitting throw qualifiers. Cleanest way out is to not provide 51 // throw-qualifiers at all. Defining it as empty here will make libio.h 52 // not define it. 53 #undef __THROW 54 #define __THROW 55 56 // Tell Glibc not to try to provide its own inline versions of 57 // some math functions. Those cause assembly-time clashes with 58 // our definitions. 59 #define __NO_MATH_INLINES 60 61 #endif 62 63 #if defined __GLIBC__ && __GLIBC__ >= 2 64 // We must not see the optimized string functions GNU libc defines. 65 #define __NO_STRING_INLINES 66 #endif 67 68 #endif 69