OpenCores
URL https://opencores.org/ocsvn/scarts/scarts/trunk

Subversion Repositories scarts

[/] [scarts/] [trunk/] [toolchain/] [scarts-gcc/] [gcc-4.1.1/] [libstdc++-v3/] [config/] [os/] [hpux/] [os_defines.h] - Blame information for rev 20

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 20 jlechner
// Specific definitions for HPUX  -*- C++ -*-
2
 
3
// Copyright (C) 2000, 2002, 2004, 2005 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, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
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 _GLIBCXX_OS_DEFINES
31
#define _GLIBCXX_OS_DEFINES 1
32
 
33
// System-specific #define, typedefs, corrections, etc, go here.  This
34
// file will come before all others.
35
 
36
// Use macro form of ctype functions to ensure __SB_masks is defined.
37
#define _SB_CTYPE_MACROS 1
38
 
39
/* HP-UX, for reasons unknown choose to use a different name for
40
   the string to [unsigned] long long conversion routines.
41
 
42
   Furthermore, instead of having the prototypes in stdlib.h like
43
   everyone else, they put them into a non-standard header
44
   <inttypes.h>.  Ugh.
45
 
46
   <inttypes.h> defines a variety of things, some of which we
47
   probably do not want.  So we don't want to include it here.
48
 
49
   Luckily we can just declare strtoll and strtoull with the
50
   __asm extension which effectively renames calls at the
51
   source level without namespace pollution.
52
 
53
   Also note that the compiler defines _INCLUDE_LONGLONG for C++
54
   unconditionally, which makes intmax_t and uintmax_t long long
55
   types.
56
 
57
   We also force _GLIBCXX_USE_LONG_LONG here so that we don't have
58
   to bastardize configure to deal with this sillyness.  */
59
namespace std
60
{
61
#ifndef __LP64__
62
  __extension__ extern "C" long long strtoll (const char *, char **, int)
63
    __asm  ("__strtoll");
64
  __extension__ extern "C" unsigned long long strtoull (const char *, char **, int)
65
    __asm  ("__strtoull");
66
#else
67
  __extension__ extern "C" long long strtoll (const char *, char **, int)
68
    __asm  ("strtol");
69
  __extension__ extern "C" unsigned long long strtoull (const char *, char **, int)
70
    __asm  ("strtoul");
71
#endif
72
}
73
 
74
#define _GLIBCXX_USE_LONG_LONG 1
75
 
76
// HPUX on IA64 requires vtable to be 64 bit aligned even at 32 bit
77
// mode.  We need to pad the vtable structure to achieve this.  
78
#if !defined(_LP64) && defined (__ia64__)
79
#define _GLIBCXX_VTABLE_PADDING 8
80
typedef long int __padding_type;
81
#endif
82
 
83
// GCC on IA64 HP-UX uses the HP-UX system unwind library,
84
// it does not have the _Unwind_Resume_or_Rethrow entry point
85
// because that is not part of the standard IA64 Unwind ABI.
86
#if defined (__ia64__)
87
#define _LIBUNWIND_STD_ABI 1
88
#endif
89
 
90
/* Don't use pragma weak in gthread headers.  HP-UX rejects programs
91
   with unsatisfied external references even if all of those references
92
   are weak; gthread relies on such unsatisfied references being resolved
93
   to null pointers when weak symbol support is on.  */
94
#define _GLIBCXX_GTHREAD_USE_WEAK 0
95
#endif

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.