]>
Commit | Line | Data |
---|---|---|
f9686024 GK |
1 | // Specific definitions for Darwin -*- C++ -*- |
2 | ||
7adcbafe | 3 | // Copyright (C) 2004-2022 Free Software Foundation, Inc. |
f9686024 GK |
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 | |
748086b7 | 8 | // Free Software Foundation; either version 3, or (at your option) |
f9686024 GK |
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 | ||
748086b7 JJ |
16 | // Under Section 7 of GPL version 3, you are granted additional |
17 | // permissions described in the GCC Runtime Library Exception, version | |
18 | // 3.1, as published by the Free Software Foundation. | |
19 | ||
20 | // You should have received a copy of the GNU General Public License and | |
21 | // a copy of the GCC Runtime Library Exception along with this program; | |
22 | // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see | |
23 | // <http://www.gnu.org/licenses/>. | |
f9686024 GK |
24 | |
25 | ||
26 | #ifndef _GLIBCXX_OS_DEFINES | |
27 | #define _GLIBCXX_OS_DEFINES 1 | |
28 | ||
29 | // System-specific #define, typedefs, corrections, etc, go here. This | |
30 | // file will come before all others. | |
31 | ||
32 | /* Darwin has the pthread routines in libSystem, which every program | |
33 | links to, so there's no need for weak-ness for that. */ | |
34 | #define _GLIBCXX_GTHREAD_USE_WEAK 0 | |
35 | ||
5cc78150 AL |
36 | // On Darwin, in order to enable overriding of operator new and delete, |
37 | // GCC makes the definition of these functions weak, relies on the | |
38 | // loader to implement weak semantics properly, and uses | |
39 | // -flat_namespace to work around the way that it doesn't. | |
40 | #define _GLIBCXX_WEAK_DEFINITION __attribute__ ((weak)) | |
41 | ||
b59cbd50 JW |
42 | // Static initializer macro is buggy in darwin, see libstdc++/51906 |
43 | #define _GTHREAD_USE_RECURSIVE_MUTEX_INIT_FUNC | |
44 | ||
0d184995 JH |
45 | // Configure checks for nanosleep fail on Darwin, but nanosleep and |
46 | // sched_yield are always available, so use them. | |
47 | #define _GLIBCXX_USE_NANOSLEEP 1 | |
48 | #define _GLIBCXX_USE_SCHED_YIELD 1 | |
49 | ||
7e10bcfa TR |
50 | // No support for referencing weak symbols without a definition. |
51 | #define _GLIBCXX_USE_WEAK_REF 0 | |
52 | ||
f9686024 | 53 | #endif |