]> gcc.gnu.org Git - gcc.git/blame - libstdc++-v3/config/os/hpux/os_defines.h
Move from CPP to CXX.
[gcc.git] / libstdc++-v3 / config / os / hpux / os_defines.h
CommitLineData
0e20c0b5 1// Specific definitions for HPUX -*- C++ -*-
598730fe 2
0e20c0b5 3// Copyright (C) 2000, 2002 Free Software Foundation, Inc.
598730fe
JL
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
3d7c150e
BK
30#ifndef _GLIBCXX_OS_DEFINES
31#define _GLIBCXX_OS_DEFINES 1
598730fe 32
f295ecef
BK
33// System-specific #define, typedefs, corrections, etc, go here. This
34// file will come before all others.
598730fe
JL
35
36#define __off_t off_t
37#define __off64_t off64_t
38#define __ssize_t ssize_t
39
888d5eaa
JDA
40// Use macro form of ctype functions to ensure __SB_masks is defined.
41#define _SB_CTYPE_MACROS 1
42
4585ae3d
JL
43/* HP-UX, for reasons unknown choose to use a different name for
44 the string to [unsigned] long long conversion routines.
45
46 Furthermore, instead of having the prototypes in stdlib.h like
47 everyone else, they put them into a non-standard header
48 <inttypes.h>. Ugh.
49
50 <inttypes.h> defines a variety of things, some of which we
b6e22016 51 probably do not want. So we don't want to include it here.
4585ae3d 52
b6e22016
JL
53 Luckily we can just declare strtoll and strtoull with the
54 __asm extension which effectively renames calls at the
55 source level without namespace pollution.
56
57 Also note that the compiler defines _INCLUDE_LONGLONG for C++
58 unconditionally, which makes intmax_t and uintmax_t long long
59 types.
4585ae3d 60
3d7c150e 61 We also force _GLIBCXX_USE_LONG_LONG here so that we don't have
4585ae3d 62 to bastardize configure to deal with this sillyness. */
0e20c0b5
JH
63namespace std
64{
ef290537 65#ifndef __LP64__
0487b51c 66 __extension__ extern "C" long long strtoll (const char *, char **, int)
d599b3fc 67 __asm ("__strtoll");
0487b51c 68 __extension__ extern "C" unsigned long long strtoull (const char *, char **, int)
d599b3fc 69 __asm ("__strtoull");
ef290537
SE
70#else
71 __extension__ extern "C" long long strtoll (const char *, char **, int)
72 __asm ("strtol");
73 __extension__ extern "C" unsigned long long strtoull (const char *, char **, int)
74 __asm ("strtoul");
75#endif
d599b3fc 76}
0e20c0b5 77
3d7c150e 78#define _GLIBCXX_USE_LONG_LONG 1
0e20c0b5
JH
79
80// HPUX on IA64 requires vtable to be 64 bit aligned even at 32 bit
81// mode. We need to pad the vtable structure to achieve this.
82#if !defined(_LP64) && defined (__ia64__)
3d7c150e 83#define _GLIBCXX_VTABLE_PADDING 8
0e20c0b5
JH
84typedef long int __padding_type;
85#endif
86
ed0d100f
SE
87// GCC on IA64 HP-UX uses the HP-UX system unwind library,
88// it does not have the _Unwind_Resume_or_Rethrow entry point
89// because that is not part of the standard IA64 Unwind ABI.
90#if defined (__ia64__)
91#define _LIBUNWIND_STD_ABI 1
92#endif
93
b6ef3ef6
JDA
94/* We need explicit instantiation of the atomicity lock on HPPA if
95 there is no weak support. */
3d7c150e
BK
96#if !defined(_GLIBCXX_SUPPORTS_WEAK) && defined (__hppa__)
97#define _GLIBCXX_INST_ATOMICITY_LOCK 1
fa3d9f57 98#endif
4af6a063
JDA
99
100/* Don't use pragma weak in gthread headers. */
101#ifdef __hppa__
3d7c150e 102#define _GLIBCXX_GTHREAD_USE_WEAK 0
4af6a063 103#endif
3b87de3d 104#endif
This page took 0.220278 seconds and 5 git commands to generate.