* Re: RFA: v3 PATCH to add on_quick_exit/quick_exit to std
@ 2013-02-12 11:26 Dominique Dhumieres
2013-02-12 11:32 ` Paolo Carlini
0 siblings, 1 reply; 20+ messages in thread
From: Dominique Dhumieres @ 2013-02-12 11:26 UTC (permalink / raw)
To: gcc-patches; +Cc: libstdc++, bkoz, jason, paolo.carlini
The test fails on x86_64-apple-darwin10 with
FAIL: 18_support/quick_exit/quick_exit.cc (test for excess errors)
Excess errors:
/opt/gcc/work/libstdc++-v3/testsuite/18_support/quick_exit/quick_exit.cc:36:3: error: 'at_quick_exit' is not a member of 'std'
/opt/gcc/work/libstdc++-v3/testsuite/18_support/quick_exit/quick_exit.cc:38:3: error: 'quick_exit' is not a member of 'std'
UNRESOLVED: 18_support/quick_exit/quick_exit.cc compilation failed to produce executable
TIA
Dominique
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: RFA: v3 PATCH to add on_quick_exit/quick_exit to std
2013-02-12 11:26 RFA: v3 PATCH to add on_quick_exit/quick_exit to std Dominique Dhumieres
@ 2013-02-12 11:32 ` Paolo Carlini
2013-02-12 11:40 ` Paolo Carlini
2013-02-12 11:40 ` Dominique Dhumieres
0 siblings, 2 replies; 20+ messages in thread
From: Paolo Carlini @ 2013-02-12 11:32 UTC (permalink / raw)
To: dominiq; +Cc: gcc-patches, libstdc++, bkoz, jason
On 02/12/2013 12:26 PM, dominiq@lps.ens.fr wrote:
> The test fails on x86_64-apple-darwin10 with
>
> FAIL: 18_support/quick_exit/quick_exit.cc (test for excess errors)
> Excess errors:
> /opt/gcc/work/libstdc++-v3/testsuite/18_support/quick_exit/quick_exit.cc:36:3: error: 'at_quick_exit' is not a member of 'std'
> /opt/gcc/work/libstdc++-v3/testsuite/18_support/quick_exit/quick_exit.cc:38:3: error: 'quick_exit' is not a member of 'std'
>
> UNRESOLVED: 18_support/quick_exit/quick_exit.cc compilation failed to produce executable
Looks like the configure test isn't strict enough and ends up defining
the macros when the darwin libc actually doesn't provide the functions.
Jason may want to review it...
Paolo.
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: RFA: v3 PATCH to add on_quick_exit/quick_exit to std
2013-02-12 11:32 ` Paolo Carlini
2013-02-12 11:40 ` Paolo Carlini
@ 2013-02-12 11:40 ` Dominique Dhumieres
2013-02-12 11:58 ` Paolo Carlini
1 sibling, 1 reply; 20+ messages in thread
From: Dominique Dhumieres @ 2013-02-12 11:40 UTC (permalink / raw)
To: paolo.carlini, dominiq; +Cc: libstdc++, jason, gcc-patches, bkoz
IIRC I have already asked a similar question about atan2, erf, ...
which don't appear in the std namespace on darwin.
Dominique
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: RFA: v3 PATCH to add on_quick_exit/quick_exit to std
2013-02-12 11:32 ` Paolo Carlini
@ 2013-02-12 11:40 ` Paolo Carlini
2013-02-12 11:40 ` Dominique Dhumieres
1 sibling, 0 replies; 20+ messages in thread
From: Paolo Carlini @ 2013-02-12 11:40 UTC (permalink / raw)
To: dominiq; +Cc: gcc-patches, libstdc++, bkoz, jason
On 02/12/2013 12:32 PM, Paolo Carlini wrote:
> On 02/12/2013 12:26 PM, dominiq@lps.ens.fr wrote:
>> The test fails on x86_64-apple-darwin10 with
>>
>> FAIL: 18_support/quick_exit/quick_exit.cc (test for excess errors)
>> Excess errors:
>> /opt/gcc/work/libstdc++-v3/testsuite/18_support/quick_exit/quick_exit.cc:36:3:
>> error: 'at_quick_exit' is not a member of 'std'
>> /opt/gcc/work/libstdc++-v3/testsuite/18_support/quick_exit/quick_exit.cc:38:3:
>> error: 'quick_exit' is not a member of 'std'
>>
>> UNRESOLVED: 18_support/quick_exit/quick_exit.cc compilation failed to
>> produce executable
> Looks like the configure test isn't strict enough and ends up defining
> the macros when the darwin libc actually doesn't provide the
> functions. Jason may want to review it...
An alternate explanation would be that darwin provides the functions but
uses c_std instead of c_global. I can add back the functions to
c_std/cstdlib too, but that seems wrong, because, as I said, normally we
don't provide C++11 facilities in c_std.
Paolo.
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: RFA: v3 PATCH to add on_quick_exit/quick_exit to std
2013-02-12 11:40 ` Dominique Dhumieres
@ 2013-02-12 11:58 ` Paolo Carlini
2013-02-12 12:47 ` Dominique Dhumieres
0 siblings, 1 reply; 20+ messages in thread
From: Paolo Carlini @ 2013-02-12 11:58 UTC (permalink / raw)
To: dominiq; +Cc: libstdc++, jason, gcc-patches, bkoz
[-- Attachment #1: Type: text/plain, Size: 925 bytes --]
On 02/12/2013 12:40 PM, dominiq@lps.ens.fr wrote:
> IIRC I have already asked a similar question about atan2, erf, ...
> which don't appear in the std namespace on darwin.
You should check whether darwin by chance uses by default c_std instead
of c_global. The former doesn't provide C++11 facilities. If, on the
other hand, it uses c_global, it means _GLIBCXX_USE_C99_MATH_TR1 is
undefined because a configure test fails on that specific darwin release
you are using. But the last time I checked, modern darwin defined
_GLIBCXX_USE_C99_MATH_TR1, no problems.
Anyway, about the cstdlib issue the below makes available the new
functions in c_std/cstdlib too, and I'm going to commit it, it's close
to what Jason originally committed. But, as I said already we don't
normally provide C++11 functions in c_std, Benjamin may want to review
what we are doing in c_std vs c_global, he designed the split.
Paolo.
//////
[-- Attachment #2: patchlet --]
[-- Type: text/plain, Size: 1526 bytes --]
Index: include/c_std/cstdlib
===================================================================
--- include/c_std/cstdlib (revision 195968)
+++ include/c_std/cstdlib (working copy)
@@ -57,6 +57,14 @@
extern "C" void abort(void) throw () _GLIBCXX_NORETURN;
extern "C" int atexit(void (*)()) throw ();
extern "C" void exit(int) throw () _GLIBCXX_NORETURN;
+#if __cplusplus >= 201103L
+# ifdef _GLIBCXX_HAVE_AT_QUICK_EXIT
+ extern "C" int at_quick_exit(void (*)()) throw ();
+# endif
+# ifdef _GLIBCXX_HAVE_QUICK_EXIT
+ extern "C" void quick_exit(int) throw() _GLIBCXX_NORETURN;
+# endif
+#endif
} // namespace
#else
@@ -67,6 +75,11 @@
#undef abort
#undef abs
#undef atexit
+#if __cplusplus >= 201103L
+# ifdef _GLIBCXX_HAVE_AT_QUICK_EXIT
+# undef at_quick_exit
+# endif
+#endif
#undef atof
#undef atoi
#undef atol
@@ -83,6 +96,11 @@
#undef mbstowcs
#undef mbtowc
#undef qsort
+#if __cplusplus >= 201103L
+# ifdef _GLIBCXX_HAVE_QUICK_EXIT
+# undef quick_exit
+# endif
+#endif
#undef rand
#undef realloc
#undef srand
@@ -103,6 +121,11 @@
using ::abort;
using ::abs;
using ::atexit;
+#if __cplusplus >= 201103L
+# ifdef _GLIBCXX_HAVE_AT_QUICK_EXIT
+ using ::at_quick_exit;
+# endif
+#endif
using ::atof;
using ::atoi;
using ::atol;
@@ -121,6 +144,11 @@
using ::mbtowc;
#endif // _GLIBCXX_HAVE_MBSTATE_T
using ::qsort;
+#if __cplusplus >= 201103L
+# ifdef _GLIBCXX_HAVE_QUICK_EXIT
+ using ::quick_exit;
+# endif
+#endif
using ::rand;
using ::realloc;
using ::srand;
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: RFA: v3 PATCH to add on_quick_exit/quick_exit to std
2013-02-12 11:58 ` Paolo Carlini
@ 2013-02-12 12:47 ` Dominique Dhumieres
2013-02-12 12:56 ` Paolo Carlini
0 siblings, 1 reply; 20+ messages in thread
From: Dominique Dhumieres @ 2013-02-12 12:47 UTC (permalink / raw)
To: paolo.carlini, dominiq; +Cc: libstdc++, jason, gcc-patches, bkoz
> But the last time I checked, modern darwin defined
> _GLIBCXX_USE_C99_MATH_TR1, no problems.
AFAICT this is true, but I think darwin10 was released in 2011
so I doubt it has any support for c++11.
> Anyway, about the cstdlib issue the below makes available the new
> functions in c_std/cstdlib too, and I'm going to commit it, it's close
> to what Jason originally committed. ...
It works, thanks,
Dominique
PS any chance to use this machinery for other missing items:
hypot, erf, ..., i.e., the c++11 additions?
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: RFA: v3 PATCH to add on_quick_exit/quick_exit to std
2013-02-12 12:47 ` Dominique Dhumieres
@ 2013-02-12 12:56 ` Paolo Carlini
2013-02-13 14:38 ` Jason Merrill
0 siblings, 1 reply; 20+ messages in thread
From: Paolo Carlini @ 2013-02-12 12:56 UTC (permalink / raw)
To: dominiq; +Cc: libstdc++, jason, gcc-patches, bkoz
On 02/12/2013 01:47 PM, dominiq@lps.ens.fr wrote:
>> But the last time I checked, modern darwin defined
>> _GLIBCXX_USE_C99_MATH_TR1, no problems.
> AFAICT this is true, but I think darwin10 was released in 2011
> so I doubt it has any support for c++11.
>
>> Anyway, about the cstdlib issue the below makes available the new
>> functions in c_std/cstdlib too, and I'm going to commit it, it's close
>> to what Jason originally committed. ...
> It works, thanks,
Good, thus looks like you are using c_std on your machine?!? Because I
just tried, and on a Darwin 12.2.0 machine the build uses c_global by
default and everything was fine even before my last patchlet
(_GLIBCXX_USE_C99_MATH_TR1 defined of course).
I think current Darwin is already fine, in general, in these areas.
Again, the current status is in a sense good because when the
_GLIBCXX_HAVE_AT_QUICK_EXIT and _GLIBCXX_HAVE_QUICK_EXIT are defined,
thus the system has the functions in its c library, including <cstdlib>
makes available the functions in namespace std irrespective of the
configury. But then why having c_std in the first place? I'll leave this
to Benjamin...
Paolo.
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: RFA: v3 PATCH to add on_quick_exit/quick_exit to std
2013-02-12 12:56 ` Paolo Carlini
@ 2013-02-13 14:38 ` Jason Merrill
2013-02-13 15:08 ` Paolo Carlini
0 siblings, 1 reply; 20+ messages in thread
From: Jason Merrill @ 2013-02-13 14:38 UTC (permalink / raw)
To: Paolo Carlini, dominiq; +Cc: libstdc++, gcc-patches, bkoz
On 02/12/2013 07:55 AM, Paolo Carlini wrote:
> Again, the current status is in a sense good because when the
> _GLIBCXX_HAVE_AT_QUICK_EXIT and _GLIBCXX_HAVE_QUICK_EXIT are defined,
> thus the system has the functions in its c library, including <cstdlib>
> makes available the functions in namespace std irrespective of the
> configury. But then why having c_std in the first place? I'll leave this
> to Benjamin...
As I understand it, the difference between c_std and c_global is
supposed to be that c_std keeps the C library in std, whereas c_global
has it in both std and the global namespace. All the other differences
that have arisen between them seem unintended and wrong.
There is, however, a question whether we need c_std at all now that the
standard allows the C library to be in the global namespace as well.
Jason
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: RFA: v3 PATCH to add on_quick_exit/quick_exit to std
2013-02-13 14:38 ` Jason Merrill
@ 2013-02-13 15:08 ` Paolo Carlini
0 siblings, 0 replies; 20+ messages in thread
From: Paolo Carlini @ 2013-02-13 15:08 UTC (permalink / raw)
To: Jason Merrill; +Cc: dominiq, libstdc++, gcc-patches, bkoz
Hi,
On 02/13/2013 03:38 PM, Jason Merrill wrote:
> On 02/12/2013 07:55 AM, Paolo Carlini wrote:
>> Again, the current status is in a sense good because when the
>> _GLIBCXX_HAVE_AT_QUICK_EXIT and _GLIBCXX_HAVE_QUICK_EXIT are defined,
>> thus the system has the functions in its c library, including <cstdlib>
>> makes available the functions in namespace std irrespective of the
>> configury. But then why having c_std in the first place? I'll leave this
>> to Benjamin...
> As I understand it, the difference between c_std and c_global is
> supposed to be that c_std keeps the C library in std, whereas c_global
> has it in both std and the global namespace. All the other
> differences that have arisen between them seem unintended and wrong.
The fact is, for many, many years we didn't even try to keep the C
library in std only. On the other hand the split c_std / c_global is
relatively recent (was born in 4.3). Yes, I'm quite confused ;)
> There is, however, a question whether we need c_std at all now that
> the standard allows the C library to be in the global namespace as well.
Indeed. We could maybe imagine do away with c_std in 4.9...
Paolo.
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: RFA: v3 PATCH to add on_quick_exit/quick_exit to std
2013-02-14 19:17 ` Paolo Carlini
@ 2013-02-15 1:26 ` Jason Merrill
0 siblings, 0 replies; 20+ messages in thread
From: Jason Merrill @ 2013-02-15 1:26 UTC (permalink / raw)
To: Paolo Carlini, Rainer Orth; +Cc: gcc-patches List, libstdc++
[-- Attachment #1: Type: text/plain, Size: 375 bytes --]
On 02/14/2013 02:16 PM, Paolo Carlini wrote:
> ... or the below, just in case an interesting system provides the
> *quick_exit functions but doesn't define _GLIBCXX_USE_C99.
It seems rather unlikely that the system would provide some C11
functions without the corresponding C99 ones. I'm just going to #if out
the whole test if the relevant functions aren't available:
[-- Attachment #2: quick_exit2.patch --]
[-- Type: text/x-patch, Size: 954 bytes --]
commit e203f2dcdf077fcf61b4d6b3f8e399c25cc44dfb
Author: Jason Merrill <jason@redhat.com>
Date: Thu Feb 14 11:15:28 2013 -0500
* testsuite/18_support/quick_exit/quick_exit.cc: #if out the whole
test if unsupported.
diff --git a/libstdc++-v3/testsuite/18_support/quick_exit/quick_exit.cc b/libstdc++-v3/testsuite/18_support/quick_exit/quick_exit.cc
index 8e55890..b91cbe2 100644
--- a/libstdc++-v3/testsuite/18_support/quick_exit/quick_exit.cc
+++ b/libstdc++-v3/testsuite/18_support/quick_exit/quick_exit.cc
@@ -21,6 +21,7 @@
// 18.5 - Start and termination
+#if defined(_GLIBCXX_HAVE_AT_QUICK_EXIT) && defined(_GLIBCXX_HAVE_QUICK_EXIT)
#include <cstdlib>
void handler()
@@ -35,9 +36,10 @@ void wrong_handler()
int main()
{
-#if defined(_GLIBCXX_HAVE_AT_QUICK_EXIT) && defined(_GLIBCXX_HAVE_QUICK_EXIT)
std::at_quick_exit (handler);
std::atexit (wrong_handler);
std::quick_exit (1);
+}
+#else
+int main() {}
#endif
-}
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: RFA: v3 PATCH to add on_quick_exit/quick_exit to std
2013-02-14 17:46 ` Paolo Carlini
@ 2013-02-14 19:17 ` Paolo Carlini
2013-02-15 1:26 ` Jason Merrill
0 siblings, 1 reply; 20+ messages in thread
From: Paolo Carlini @ 2013-02-14 19:17 UTC (permalink / raw)
To: Rainer Orth; +Cc: Jason Merrill, gcc-patches List, libstdc++
[-- Attachment #1: Type: text/plain, Size: 159 bytes --]
... or the below, just in case an interesting system provides the
*quick_exit functions but doesn't define _GLIBCXX_USE_C99.
Paolo.
///////////////////////
[-- Attachment #2: patchlet2 --]
[-- Type: text/plain, Size: 613 bytes --]
Index: testsuite/18_support/quick_exit/quick_exit.cc
===================================================================
--- testsuite/18_support/quick_exit/quick_exit.cc (revision 196056)
+++ testsuite/18_support/quick_exit/quick_exit.cc (working copy)
@@ -25,7 +25,9 @@
void handler()
{
+#if _GLIBCXX_USE_C99
std::_Exit(0);
+#endif
}
void wrong_handler()
@@ -35,9 +37,11 @@
int main()
{
+#if _GLIBCXX_USE_C99
#if defined(_GLIBCXX_HAVE_AT_QUICK_EXIT) && defined(_GLIBCXX_HAVE_QUICK_EXIT)
std::at_quick_exit (handler);
std::atexit (wrong_handler);
std::quick_exit (1);
#endif
+#endif
}
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: RFA: v3 PATCH to add on_quick_exit/quick_exit to std
2013-02-14 15:46 ` Rainer Orth
@ 2013-02-14 17:46 ` Paolo Carlini
2013-02-14 19:17 ` Paolo Carlini
0 siblings, 1 reply; 20+ messages in thread
From: Paolo Carlini @ 2013-02-14 17:46 UTC (permalink / raw)
To: Rainer Orth; +Cc: Jason Merrill, gcc-patches List, libstdc++
[-- Attachment #1: Type: text/plain, Size: 968 bytes --]
Hi Rainer,
On 02/14/2013 04:45 PM, Rainer Orth wrote:
> Jason Merrill <jason@redhat.com> writes:
>
>> While I was going over the C++11 status page, I noticed that quick_exit is
>> implemented by glibc, it just needed to be added to the libstdc++ cstdlib
>> header.
> The test fails on Solaris 9:
>
> FAIL: 18_support/quick_exit/quick_exit.cc (test for excess errors)
> Excess errors:
> /vol/gcc/src/hg/trunk/local/libstdc++-v3/testsuite/18_support/quick_exit/quick_e
> xit.cc:28:3: error: '_Exit' is not a member of 'std'
>
> WARNING: 18_support/quick_exit/quick_exit.cc compilation failed to produce execu
> table
> extra_tool_flags are:
> -std=gnu++11
>
> _Exit seems to be a C99 addition, only present since Solaris 10.
Indeed. Given the very simple nature of the testcase, I think something
like the below can do, at least for 4.8.0, if Jason has no objections.
Can you double check it on Solaris and in case commit it?
Thanks,
Paolo.
/////////////////////
[-- Attachment #2: patchlet --]
[-- Type: text/plain, Size: 368 bytes --]
Index: testsuite/18_support/quick_exit/quick_exit.cc
===================================================================
--- testsuite/18_support/quick_exit/quick_exit.cc (revision 196056)
+++ testsuite/18_support/quick_exit/quick_exit.cc (working copy)
@@ -25,7 +25,9 @@
void handler()
{
+#if _GLIBCXX_USE_C99
std::_Exit(0);
+#endif
}
void wrong_handler()
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: RFA: v3 PATCH to add on_quick_exit/quick_exit to std
2013-02-11 17:33 Jason Merrill
2013-02-11 17:46 ` Benjamin De Kosnik
2013-02-11 17:57 ` Paolo Carlini
@ 2013-02-14 15:46 ` Rainer Orth
2013-02-14 17:46 ` Paolo Carlini
2 siblings, 1 reply; 20+ messages in thread
From: Rainer Orth @ 2013-02-14 15:46 UTC (permalink / raw)
To: Jason Merrill; +Cc: gcc-patches List, libstdc++
Jason Merrill <jason@redhat.com> writes:
> While I was going over the C++11 status page, I noticed that quick_exit is
> implemented by glibc, it just needed to be added to the libstdc++ cstdlib
> header.
The test fails on Solaris 9:
FAIL: 18_support/quick_exit/quick_exit.cc (test for excess errors)
Excess errors:
/vol/gcc/src/hg/trunk/local/libstdc++-v3/testsuite/18_support/quick_exit/quick_e
xit.cc:28:3: error: '_Exit' is not a member of 'std'
WARNING: 18_support/quick_exit/quick_exit.cc compilation failed to produce execu
table
extra_tool_flags are:
-std=gnu++11
_Exit seems to be a C99 addition, only present since Solaris 10.
Rainer
--
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: RFA: v3 PATCH to add on_quick_exit/quick_exit to std
2013-02-11 19:01 ` Paolo Carlini
@ 2013-02-11 23:44 ` Paolo Carlini
0 siblings, 0 replies; 20+ messages in thread
From: Paolo Carlini @ 2013-02-11 23:44 UTC (permalink / raw)
To: Benjamin De Kosnik; +Cc: Jason Merrill, gcc-patches List, libstdc++
[-- Attachment #1: Type: text/plain, Size: 69 bytes --]
... this is what I committed.
Thanks,
Paolo.
/////////////////////
[-- Attachment #2: CL --]
[-- Type: text/plain, Size: 399 bytes --]
2013-02-11 Paolo Carlini <paolo.carlini@oracle.com>
* include/c_std/cstdlib (at_quick_exit, quick_exit): Do not declare.
* include/c_global/cstdlib (at_quick_exit, quick_exit): Declare only
in C++11 mode and if available in the underlying C library.
* testsuite/18_support/quick_exit/quick_exit.cc: Compile with
-std=gnu++11; check _GLIBCXX_HAVE_AT_QUICK_EXIT and
_GLIBCXX_HAVE_QUICK_EXIT.
[-- Attachment #3: patchlet --]
[-- Type: text/plain, Size: 3487 bytes --]
Index: include/c_global/cstdlib
===================================================================
--- include/c_global/cstdlib (revision 195952)
+++ include/c_global/cstdlib (working copy)
@@ -57,8 +57,14 @@
extern "C" void abort(void) throw () _GLIBCXX_NORETURN;
extern "C" int atexit(void (*)()) throw ();
extern "C" void exit(int) throw () _GLIBCXX_NORETURN;
+#if __cplusplus >= 201103L
+# ifdef _GLIBCXX_HAVE_AT_QUICK_EXIT
extern "C" int at_quick_exit(void (*)()) throw ();
+# endif
+# ifdef _GLIBCXX_HAVE_QUICK_EXIT
extern "C" void quick_exit(int) throw() _GLIBCXX_NORETURN;
+# endif
+#endif
} // namespace std
#else
@@ -69,7 +75,11 @@
#undef abort
#undef abs
#undef atexit
-#undef at_quick_exit
+#if __cplusplus >= 201103L
+# ifdef _GLIBCXX_HAVE_AT_QUICK_EXIT
+# undef at_quick_exit
+# endif
+#endif
#undef atof
#undef atoi
#undef atol
@@ -86,7 +96,11 @@
#undef mbstowcs
#undef mbtowc
#undef qsort
-#undef quick_exit
+#if __cplusplus >= 201103L
+# ifdef _GLIBCXX_HAVE_QUICK_EXIT
+# undef quick_exit
+# endif
+#endif
#undef rand
#undef realloc
#undef srand
@@ -107,8 +121,10 @@
using ::abort;
using ::abs;
using ::atexit;
-#ifdef _GLIBCXX_HAVE_AT_QUICK_EXIT
+#if __cplusplus >= 201103L
+# ifdef _GLIBCXX_HAVE_AT_QUICK_EXIT
using ::at_quick_exit;
+# endif
#endif
using ::atof;
using ::atoi;
@@ -128,8 +144,10 @@
using ::mbtowc;
#endif // _GLIBCXX_HAVE_MBSTATE_T
using ::qsort;
-#ifdef _GLIBCXX_HAVE_QUICK_EXIT
+#if __cplusplus >= 201103L
+# ifdef _GLIBCXX_HAVE_QUICK_EXIT
using ::quick_exit;
+# endif
#endif
using ::rand;
using ::realloc;
Index: include/c_std/cstdlib
===================================================================
--- include/c_std/cstdlib (revision 195952)
+++ include/c_std/cstdlib (working copy)
@@ -57,8 +57,6 @@
extern "C" void abort(void) throw () _GLIBCXX_NORETURN;
extern "C" int atexit(void (*)()) throw ();
extern "C" void exit(int) throw () _GLIBCXX_NORETURN;
- extern "C" int at_quick_exit(void (*)()) throw ();
- extern "C" void quick_exit(int) throw() _GLIBCXX_NORETURN;
} // namespace
#else
@@ -69,7 +67,6 @@
#undef abort
#undef abs
#undef atexit
-#undef at_quick_exit
#undef atof
#undef atoi
#undef atol
@@ -86,7 +83,6 @@
#undef mbstowcs
#undef mbtowc
#undef qsort
-#undef quick_exit
#undef rand
#undef realloc
#undef srand
@@ -107,9 +103,6 @@
using ::abort;
using ::abs;
using ::atexit;
-#ifdef _GLIBCXX_HAVE_AT_QUICK_EXIT
- using ::at_quick_exit;
-#endif
using ::atof;
using ::atoi;
using ::atol;
@@ -128,9 +121,6 @@
using ::mbtowc;
#endif // _GLIBCXX_HAVE_MBSTATE_T
using ::qsort;
-#ifdef _GLIBCXX_HAVE_QUICK_EXIT
- using ::quick_exit;
-#endif
using ::rand;
using ::realloc;
using ::srand;
Index: testsuite/18_support/quick_exit/quick_exit.cc
===================================================================
--- testsuite/18_support/quick_exit/quick_exit.cc (revision 195952)
+++ testsuite/18_support/quick_exit/quick_exit.cc (working copy)
@@ -1,5 +1,7 @@
-// 2013-02-11 Jason Merrill
-
+// { dg-options "-std=gnu++11" }
+//
+// 2013-02-11 Jason Merrill
+//
// Copyright (C) 2013 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -33,7 +35,9 @@
int main()
{
+#if defined(_GLIBCXX_HAVE_AT_QUICK_EXIT) && defined(_GLIBCXX_HAVE_QUICK_EXIT)
std::at_quick_exit (handler);
std::atexit (wrong_handler);
std::quick_exit (1);
+#endif
}
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: RFA: v3 PATCH to add on_quick_exit/quick_exit to std
2013-02-11 18:54 ` Benjamin De Kosnik
@ 2013-02-11 19:01 ` Paolo Carlini
2013-02-11 23:44 ` Paolo Carlini
0 siblings, 1 reply; 20+ messages in thread
From: Paolo Carlini @ 2013-02-11 19:01 UTC (permalink / raw)
To: Benjamin De Kosnik; +Cc: Jason Merrill, gcc-patches List, libstdc++
On 02/11/2013 07:54 PM, Benjamin De Kosnik wrote:
>> I can tweak things for the two issues I noticed.
> Thanks.
>
> It seems like this is still 4.8 material to me.
Great. I'll take care of that later today. I'm also going to make sure
the new testcase doesn't spuriously fail if the functions aren't
actually available.
Paolo.
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: RFA: v3 PATCH to add on_quick_exit/quick_exit to std
2013-02-11 18:35 ` Paolo Carlini
@ 2013-02-11 18:54 ` Benjamin De Kosnik
2013-02-11 19:01 ` Paolo Carlini
0 siblings, 1 reply; 20+ messages in thread
From: Benjamin De Kosnik @ 2013-02-11 18:54 UTC (permalink / raw)
To: Paolo Carlini; +Cc: Jason Merrill, gcc-patches List, libstdc++
> .. also, I think we should have #if __cplusplus >= 201103L protecting
> these functions too, exactly like all the other C++11 bits. Eg, I
> don't think we should unconditionally, ie in C++03 mode too, declare
> at_quick_exit and quick_exit in namespace std.
Yeah.
> I can tweak things for the two issues I noticed.
Thanks.
It seems like this is still 4.8 material to me.
-benjamin
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: RFA: v3 PATCH to add on_quick_exit/quick_exit to std
2013-02-11 17:57 ` Paolo Carlini
@ 2013-02-11 18:35 ` Paolo Carlini
2013-02-11 18:54 ` Benjamin De Kosnik
0 siblings, 1 reply; 20+ messages in thread
From: Paolo Carlini @ 2013-02-11 18:35 UTC (permalink / raw)
To: Jason Merrill; +Cc: gcc-patches List, libstdc++, Benjamin Kosnik
.. also, I think we should have #if __cplusplus >= 201103L protecting
these functions too, exactly like all the other C++11 bits. Eg, I don't
think we should unconditionally, ie in C++03 mode too, declare
at_quick_exit and quick_exit in namespace std.
I can tweak things for the two issues I noticed.
Paolo.
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: RFA: v3 PATCH to add on_quick_exit/quick_exit to std
2013-02-11 17:33 Jason Merrill
2013-02-11 17:46 ` Benjamin De Kosnik
@ 2013-02-11 17:57 ` Paolo Carlini
2013-02-11 18:35 ` Paolo Carlini
2013-02-14 15:46 ` Rainer Orth
2 siblings, 1 reply; 20+ messages in thread
From: Paolo Carlini @ 2013-02-11 17:57 UTC (permalink / raw)
To: Jason Merrill; +Cc: gcc-patches List, libstdc++, Benjamin Kosnik
Hi,
On 02/11/2013 06:33 PM, Jason Merrill wrote:
> While I was going over the C++11 status page, I noticed that
> quick_exit is implemented by glibc, it just needed to be added to the
> libstdc++ cstdlib header.
>
> Does this configury/feature macro handling look right? Is this enough
> testcase? Is this small/safe enough to go in for 4.8?
I'm only not sure we want to add the new C++11 functions to c_std too,
besides c_global, because normally we don't, AFAIK. But Benjamin
invented the split c_std / c_global, I'm only raising a trivial
consistency issue.
Thanks!
Paolo.
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: RFA: v3 PATCH to add on_quick_exit/quick_exit to std
2013-02-11 17:33 Jason Merrill
@ 2013-02-11 17:46 ` Benjamin De Kosnik
2013-02-11 17:57 ` Paolo Carlini
2013-02-14 15:46 ` Rainer Orth
2 siblings, 0 replies; 20+ messages in thread
From: Benjamin De Kosnik @ 2013-02-11 17:46 UTC (permalink / raw)
To: Jason Merrill; +Cc: gcc-patches List, libstdc++
> Does this configury/feature macro handling look right?
yes.
> Is this enough testcase?
yes.
> Is this small/safe enough to go in for 4.8?
yes.
> commit 884a2a7815a95bade9d23f01b4c64a16808c7f05
> Author: Jason Merrill <jason@redhat.com>
> Date: Mon Feb 11 11:23:30 2013 -0500
>
> * linkage.m4 (GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE): New.
> (GLIBCXX_CHECK_STDLIB_SUPPORT): Check for atexit and
> at_quick_exit.
> * include/c_std/cstdlib: Add atexit and at_quick_exit.
> * include/c_global/cstdlib: Add atexit and at_quick_exit.
> * testsuite/18_support/quick_exit/quick_exit.cc: New.
thanks Jason
-benjamin
^ permalink raw reply [flat|nested] 20+ messages in thread
* RFA: v3 PATCH to add on_quick_exit/quick_exit to std
@ 2013-02-11 17:33 Jason Merrill
2013-02-11 17:46 ` Benjamin De Kosnik
` (2 more replies)
0 siblings, 3 replies; 20+ messages in thread
From: Jason Merrill @ 2013-02-11 17:33 UTC (permalink / raw)
To: gcc-patches List, libstdc++
[-- Attachment #1: Type: text/plain, Size: 287 bytes --]
While I was going over the C++11 status page, I noticed that quick_exit
is implemented by glibc, it just needed to be added to the libstdc++
cstdlib header.
Does this configury/feature macro handling look right? Is this enough
testcase? Is this small/safe enough to go in for 4.8?
[-- Attachment #2: quick_exit.patch --]
[-- Type: text/x-patch, Size: 35046 bytes --]
commit 884a2a7815a95bade9d23f01b4c64a16808c7f05
Author: Jason Merrill <jason@redhat.com>
Date: Mon Feb 11 11:23:30 2013 -0500
* linkage.m4 (GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE): New.
(GLIBCXX_CHECK_STDLIB_SUPPORT): Check for atexit and at_quick_exit.
* include/c_std/cstdlib: Add atexit and at_quick_exit.
* include/c_global/cstdlib: Add atexit and at_quick_exit.
* testsuite/18_support/quick_exit/quick_exit.cc: New.
diff --git a/libstdc++-v3/include/c_global/cstdlib b/libstdc++-v3/include/c_global/cstdlib
index c249c78..0eb0129 100644
--- a/libstdc++-v3/include/c_global/cstdlib
+++ b/libstdc++-v3/include/c_global/cstdlib
@@ -57,6 +57,8 @@ namespace std
extern "C" void abort(void) throw () _GLIBCXX_NORETURN;
extern "C" int atexit(void (*)()) throw ();
extern "C" void exit(int) throw () _GLIBCXX_NORETURN;
+ extern "C" int at_quick_exit(void (*)()) throw ();
+ extern "C" void quick_exit(int) throw() _GLIBCXX_NORETURN;
} // namespace std
#else
@@ -67,6 +69,7 @@ namespace std
#undef abort
#undef abs
#undef atexit
+#undef at_quick_exit
#undef atof
#undef atoi
#undef atol
@@ -83,6 +86,7 @@ namespace std
#undef mbstowcs
#undef mbtowc
#undef qsort
+#undef quick_exit
#undef rand
#undef realloc
#undef srand
@@ -103,6 +107,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
using ::abort;
using ::abs;
using ::atexit;
+#ifdef _GLIBCXX_HAVE_AT_QUICK_EXIT
+ using ::at_quick_exit;
+#endif
using ::atof;
using ::atoi;
using ::atol;
@@ -121,6 +128,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
using ::mbtowc;
#endif // _GLIBCXX_HAVE_MBSTATE_T
using ::qsort;
+#ifdef _GLIBCXX_HAVE_QUICK_EXIT
+ using ::quick_exit;
+#endif
using ::rand;
using ::realloc;
using ::srand;
diff --git a/libstdc++-v3/linkage.m4 b/libstdc++-v3/linkage.m4
index b24f455..45a09cd 100644
--- a/libstdc++-v3/linkage.m4
+++ b/libstdc++-v3/linkage.m4
@@ -239,6 +239,35 @@ dnl 2) has "C" linkage
dnl
dnl argument 1 is name of function to check
dnl
+dnl ASSUMES argument is a stdlib function with ONE parameter
+dnl
+dnl GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_1
+AC_DEFUN([GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_1], [
+ AC_MSG_CHECKING([for $1 declaration])
+ if test x${glibcxx_cv_func_$1_use+set} != xset; then
+ AC_CACHE_VAL(glibcxx_cv_func_$1_use, [
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+ AC_TRY_COMPILE([#include <stdlib.h>],
+ [ $1(0);],
+ [glibcxx_cv_func_$1_use=yes], [glibcxx_cv_func_$1_use=no])
+ AC_LANG_RESTORE
+ ])
+ fi
+ AC_MSG_RESULT($glibcxx_cv_func_$1_use)
+ if test x$glibcxx_cv_func_$1_use = x"yes"; then
+ AC_CHECK_FUNCS($1)
+ fi
+])
+
+
+dnl
+dnl Check to see if the (stdlib function) argument passed is
+dnl 1) declared when using the c++ compiler
+dnl 2) has "C" linkage
+dnl
+dnl argument 1 is name of function to check
+dnl
dnl ASSUMES argument is a stdlib function with TWO parameters
dnl
dnl GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_2
@@ -306,6 +335,8 @@ AC_DEFUN([GLIBCXX_CHECK_STDLIB_SUPPORT], [
ac_save_CXXFLAGS="$CXXFLAGS"
CXXFLAGS='-fno-builtin -D_GNU_SOURCE'
+ GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_1(at_quick_exit)
+ GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_1(quick_exit)
GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_2(strtold)
GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_2(strtof)
diff --git a/libstdc++-v3/testsuite/18_support/quick_exit/quick_exit.cc b/libstdc++-v3/testsuite/18_support/quick_exit/quick_exit.cc
new file mode 100644
index 0000000..54ee41e
--- /dev/null
+++ b/libstdc++-v3/testsuite/18_support/quick_exit/quick_exit.cc
@@ -0,0 +1,39 @@
+// 2013-02-11 Jason Merrill
+
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+// 18.5 - Start and termination
+
+#include <cstdlib>
+
+void handler()
+{
+ std::_Exit(0);
+}
+
+void wrong_handler()
+{
+ std::abort();
+}
+
+int main()
+{
+ std::at_quick_exit (handler);
+ std::atexit (wrong_handler);
+ std::quick_exit (1);
+}
diff --git a/libstdc++-v3/config.h.in b/libstdc++-v3/config.h.in
index dd14b91..59a7fae 100644
--- a/libstdc++-v3/config.h.in
+++ b/libstdc++-v3/config.h.in
@@ -27,6 +27,9 @@
/* Define to 1 if you have the `atanl' function. */
#undef HAVE_ATANL
+/* Define to 1 if you have the `at_quick_exit' function. */
+#undef HAVE_AT_QUICK_EXIT
+
/* Define to 1 if the target assembler supports thread-local storage. */
#undef HAVE_CC_TLS
@@ -303,6 +306,9 @@
/* Define to 1 if you have the `qfpclass' function. */
#undef HAVE_QFPCLASS
+/* Define to 1 if you have the `quick_exit' function. */
+#undef HAVE_QUICK_EXIT
+
/* Define to 1 if you have the `setenv' function. */
#undef HAVE_SETENV
diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
index a4cf5c9..008ccbf 100755
--- a/libstdc++-v3/configure
+++ b/libstdc++-v3/configure
@@ -26223,6 +26223,122 @@ done
CXXFLAGS='-fno-builtin -D_GNU_SOURCE'
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for at_quick_exit declaration" >&5
+$as_echo_n "checking for at_quick_exit declaration... " >&6; }
+ if test x${glibcxx_cv_func_at_quick_exit_use+set} != xset; then
+ if test "${glibcxx_cv_func_at_quick_exit_use+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+
+
+ ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+int
+main ()
+{
+ at_quick_exit(0);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ glibcxx_cv_func_at_quick_exit_use=yes
+else
+ glibcxx_cv_func_at_quick_exit_use=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_at_quick_exit_use" >&5
+$as_echo "$glibcxx_cv_func_at_quick_exit_use" >&6; }
+ if test x$glibcxx_cv_func_at_quick_exit_use = x"yes"; then
+ for ac_func in at_quick_exit
+do :
+ ac_fn_c_check_func "$LINENO" "at_quick_exit" "ac_cv_func_at_quick_exit"
+if test "x$ac_cv_func_at_quick_exit" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_AT_QUICK_EXIT 1
+_ACEOF
+
+fi
+done
+
+ fi
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for quick_exit declaration" >&5
+$as_echo_n "checking for quick_exit declaration... " >&6; }
+ if test x${glibcxx_cv_func_quick_exit_use+set} != xset; then
+ if test "${glibcxx_cv_func_quick_exit_use+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+
+
+ ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+int
+main ()
+{
+ quick_exit(0);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ glibcxx_cv_func_quick_exit_use=yes
+else
+ glibcxx_cv_func_quick_exit_use=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_quick_exit_use" >&5
+$as_echo "$glibcxx_cv_func_quick_exit_use" >&6; }
+ if test x$glibcxx_cv_func_quick_exit_use = x"yes"; then
+ for ac_func in quick_exit
+do :
+ ac_fn_c_check_func "$LINENO" "quick_exit" "ac_cv_func_quick_exit"
+if test "x$ac_cv_func_quick_exit" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_QUICK_EXIT 1
+_ACEOF
+
+fi
+done
+
+ fi
+
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for strtold declaration" >&5
$as_echo_n "checking for strtold declaration... " >&6; }
if test x${glibcxx_cv_func_strtold_use+set} != xset; then
@@ -33125,6 +33241,122 @@ done
CXXFLAGS='-fno-builtin -D_GNU_SOURCE'
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for at_quick_exit declaration" >&5
+$as_echo_n "checking for at_quick_exit declaration... " >&6; }
+ if test x${glibcxx_cv_func_at_quick_exit_use+set} != xset; then
+ if test "${glibcxx_cv_func_at_quick_exit_use+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+
+
+ ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+int
+main ()
+{
+ at_quick_exit(0);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ glibcxx_cv_func_at_quick_exit_use=yes
+else
+ glibcxx_cv_func_at_quick_exit_use=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_at_quick_exit_use" >&5
+$as_echo "$glibcxx_cv_func_at_quick_exit_use" >&6; }
+ if test x$glibcxx_cv_func_at_quick_exit_use = x"yes"; then
+ for ac_func in at_quick_exit
+do :
+ ac_fn_c_check_func "$LINENO" "at_quick_exit" "ac_cv_func_at_quick_exit"
+if test "x$ac_cv_func_at_quick_exit" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_AT_QUICK_EXIT 1
+_ACEOF
+
+fi
+done
+
+ fi
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for quick_exit declaration" >&5
+$as_echo_n "checking for quick_exit declaration... " >&6; }
+ if test x${glibcxx_cv_func_quick_exit_use+set} != xset; then
+ if test "${glibcxx_cv_func_quick_exit_use+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+
+
+ ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+int
+main ()
+{
+ quick_exit(0);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ glibcxx_cv_func_quick_exit_use=yes
+else
+ glibcxx_cv_func_quick_exit_use=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_quick_exit_use" >&5
+$as_echo "$glibcxx_cv_func_quick_exit_use" >&6; }
+ if test x$glibcxx_cv_func_quick_exit_use = x"yes"; then
+ for ac_func in quick_exit
+do :
+ ac_fn_c_check_func "$LINENO" "quick_exit" "ac_cv_func_quick_exit"
+if test "x$ac_cv_func_quick_exit" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_QUICK_EXIT 1
+_ACEOF
+
+fi
+done
+
+ fi
+
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for strtold declaration" >&5
$as_echo_n "checking for strtold declaration... " >&6; }
if test x${glibcxx_cv_func_strtold_use+set} != xset; then
@@ -38940,6 +39172,122 @@ done
CXXFLAGS='-fno-builtin -D_GNU_SOURCE'
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for at_quick_exit declaration" >&5
+$as_echo_n "checking for at_quick_exit declaration... " >&6; }
+ if test x${glibcxx_cv_func_at_quick_exit_use+set} != xset; then
+ if test "${glibcxx_cv_func_at_quick_exit_use+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+
+
+ ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+int
+main ()
+{
+ at_quick_exit(0);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ glibcxx_cv_func_at_quick_exit_use=yes
+else
+ glibcxx_cv_func_at_quick_exit_use=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_at_quick_exit_use" >&5
+$as_echo "$glibcxx_cv_func_at_quick_exit_use" >&6; }
+ if test x$glibcxx_cv_func_at_quick_exit_use = x"yes"; then
+ for ac_func in at_quick_exit
+do :
+ ac_fn_c_check_func "$LINENO" "at_quick_exit" "ac_cv_func_at_quick_exit"
+if test "x$ac_cv_func_at_quick_exit" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_AT_QUICK_EXIT 1
+_ACEOF
+
+fi
+done
+
+ fi
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for quick_exit declaration" >&5
+$as_echo_n "checking for quick_exit declaration... " >&6; }
+ if test x${glibcxx_cv_func_quick_exit_use+set} != xset; then
+ if test "${glibcxx_cv_func_quick_exit_use+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+
+
+ ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+int
+main ()
+{
+ quick_exit(0);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ glibcxx_cv_func_quick_exit_use=yes
+else
+ glibcxx_cv_func_quick_exit_use=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_quick_exit_use" >&5
+$as_echo "$glibcxx_cv_func_quick_exit_use" >&6; }
+ if test x$glibcxx_cv_func_quick_exit_use = x"yes"; then
+ for ac_func in quick_exit
+do :
+ ac_fn_c_check_func "$LINENO" "quick_exit" "ac_cv_func_quick_exit"
+if test "x$ac_cv_func_quick_exit" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_QUICK_EXIT 1
+_ACEOF
+
+fi
+done
+
+ fi
+
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for strtold declaration" >&5
$as_echo_n "checking for strtold declaration... " >&6; }
if test x${glibcxx_cv_func_strtold_use+set} != xset; then
@@ -44770,6 +45118,122 @@ done
CXXFLAGS='-fno-builtin -D_GNU_SOURCE'
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for at_quick_exit declaration" >&5
+$as_echo_n "checking for at_quick_exit declaration... " >&6; }
+ if test x${glibcxx_cv_func_at_quick_exit_use+set} != xset; then
+ if test "${glibcxx_cv_func_at_quick_exit_use+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+
+
+ ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+int
+main ()
+{
+ at_quick_exit(0);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ glibcxx_cv_func_at_quick_exit_use=yes
+else
+ glibcxx_cv_func_at_quick_exit_use=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_at_quick_exit_use" >&5
+$as_echo "$glibcxx_cv_func_at_quick_exit_use" >&6; }
+ if test x$glibcxx_cv_func_at_quick_exit_use = x"yes"; then
+ for ac_func in at_quick_exit
+do :
+ ac_fn_c_check_func "$LINENO" "at_quick_exit" "ac_cv_func_at_quick_exit"
+if test "x$ac_cv_func_at_quick_exit" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_AT_QUICK_EXIT 1
+_ACEOF
+
+fi
+done
+
+ fi
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for quick_exit declaration" >&5
+$as_echo_n "checking for quick_exit declaration... " >&6; }
+ if test x${glibcxx_cv_func_quick_exit_use+set} != xset; then
+ if test "${glibcxx_cv_func_quick_exit_use+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+
+
+ ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+int
+main ()
+{
+ quick_exit(0);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ glibcxx_cv_func_quick_exit_use=yes
+else
+ glibcxx_cv_func_quick_exit_use=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_quick_exit_use" >&5
+$as_echo "$glibcxx_cv_func_quick_exit_use" >&6; }
+ if test x$glibcxx_cv_func_quick_exit_use = x"yes"; then
+ for ac_func in quick_exit
+do :
+ ac_fn_c_check_func "$LINENO" "quick_exit" "ac_cv_func_quick_exit"
+if test "x$ac_cv_func_quick_exit" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_QUICK_EXIT 1
+_ACEOF
+
+fi
+done
+
+ fi
+
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for strtold declaration" >&5
$as_echo_n "checking for strtold declaration... " >&6; }
if test x${glibcxx_cv_func_strtold_use+set} != xset; then
@@ -51274,6 +51738,122 @@ done
CXXFLAGS='-fno-builtin -D_GNU_SOURCE'
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for at_quick_exit declaration" >&5
+$as_echo_n "checking for at_quick_exit declaration... " >&6; }
+ if test x${glibcxx_cv_func_at_quick_exit_use+set} != xset; then
+ if test "${glibcxx_cv_func_at_quick_exit_use+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+
+
+ ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+int
+main ()
+{
+ at_quick_exit(0);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ glibcxx_cv_func_at_quick_exit_use=yes
+else
+ glibcxx_cv_func_at_quick_exit_use=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_at_quick_exit_use" >&5
+$as_echo "$glibcxx_cv_func_at_quick_exit_use" >&6; }
+ if test x$glibcxx_cv_func_at_quick_exit_use = x"yes"; then
+ for ac_func in at_quick_exit
+do :
+ ac_fn_c_check_func "$LINENO" "at_quick_exit" "ac_cv_func_at_quick_exit"
+if test "x$ac_cv_func_at_quick_exit" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_AT_QUICK_EXIT 1
+_ACEOF
+
+fi
+done
+
+ fi
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for quick_exit declaration" >&5
+$as_echo_n "checking for quick_exit declaration... " >&6; }
+ if test x${glibcxx_cv_func_quick_exit_use+set} != xset; then
+ if test "${glibcxx_cv_func_quick_exit_use+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+
+
+ ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+int
+main ()
+{
+ quick_exit(0);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ glibcxx_cv_func_quick_exit_use=yes
+else
+ glibcxx_cv_func_quick_exit_use=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_quick_exit_use" >&5
+$as_echo "$glibcxx_cv_func_quick_exit_use" >&6; }
+ if test x$glibcxx_cv_func_quick_exit_use = x"yes"; then
+ for ac_func in quick_exit
+do :
+ ac_fn_c_check_func "$LINENO" "quick_exit" "ac_cv_func_quick_exit"
+if test "x$ac_cv_func_quick_exit" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_QUICK_EXIT 1
+_ACEOF
+
+fi
+done
+
+ fi
+
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for strtold declaration" >&5
$as_echo_n "checking for strtold declaration... " >&6; }
if test x${glibcxx_cv_func_strtold_use+set} != xset; then
@@ -57443,6 +58023,122 @@ done
CXXFLAGS='-fno-builtin -D_GNU_SOURCE'
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for at_quick_exit declaration" >&5
+$as_echo_n "checking for at_quick_exit declaration... " >&6; }
+ if test x${glibcxx_cv_func_at_quick_exit_use+set} != xset; then
+ if test "${glibcxx_cv_func_at_quick_exit_use+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+
+
+ ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+int
+main ()
+{
+ at_quick_exit(0);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ glibcxx_cv_func_at_quick_exit_use=yes
+else
+ glibcxx_cv_func_at_quick_exit_use=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_at_quick_exit_use" >&5
+$as_echo "$glibcxx_cv_func_at_quick_exit_use" >&6; }
+ if test x$glibcxx_cv_func_at_quick_exit_use = x"yes"; then
+ for ac_func in at_quick_exit
+do :
+ ac_fn_c_check_func "$LINENO" "at_quick_exit" "ac_cv_func_at_quick_exit"
+if test "x$ac_cv_func_at_quick_exit" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_AT_QUICK_EXIT 1
+_ACEOF
+
+fi
+done
+
+ fi
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for quick_exit declaration" >&5
+$as_echo_n "checking for quick_exit declaration... " >&6; }
+ if test x${glibcxx_cv_func_quick_exit_use+set} != xset; then
+ if test "${glibcxx_cv_func_quick_exit_use+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+
+
+ ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+int
+main ()
+{
+ quick_exit(0);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ glibcxx_cv_func_quick_exit_use=yes
+else
+ glibcxx_cv_func_quick_exit_use=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_quick_exit_use" >&5
+$as_echo "$glibcxx_cv_func_quick_exit_use" >&6; }
+ if test x$glibcxx_cv_func_quick_exit_use = x"yes"; then
+ for ac_func in quick_exit
+do :
+ ac_fn_c_check_func "$LINENO" "quick_exit" "ac_cv_func_quick_exit"
+if test "x$ac_cv_func_quick_exit" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_QUICK_EXIT 1
+_ACEOF
+
+fi
+done
+
+ fi
+
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for strtold declaration" >&5
$as_echo_n "checking for strtold declaration... " >&6; }
if test x${glibcxx_cv_func_strtold_use+set} != xset; then
@@ -63638,6 +64334,122 @@ done
CXXFLAGS='-fno-builtin -D_GNU_SOURCE'
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for at_quick_exit declaration" >&5
+$as_echo_n "checking for at_quick_exit declaration... " >&6; }
+ if test x${glibcxx_cv_func_at_quick_exit_use+set} != xset; then
+ if test "${glibcxx_cv_func_at_quick_exit_use+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+
+
+ ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+int
+main ()
+{
+ at_quick_exit(0);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ glibcxx_cv_func_at_quick_exit_use=yes
+else
+ glibcxx_cv_func_at_quick_exit_use=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_at_quick_exit_use" >&5
+$as_echo "$glibcxx_cv_func_at_quick_exit_use" >&6; }
+ if test x$glibcxx_cv_func_at_quick_exit_use = x"yes"; then
+ for ac_func in at_quick_exit
+do :
+ ac_fn_c_check_func "$LINENO" "at_quick_exit" "ac_cv_func_at_quick_exit"
+if test "x$ac_cv_func_at_quick_exit" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_AT_QUICK_EXIT 1
+_ACEOF
+
+fi
+done
+
+ fi
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for quick_exit declaration" >&5
+$as_echo_n "checking for quick_exit declaration... " >&6; }
+ if test x${glibcxx_cv_func_quick_exit_use+set} != xset; then
+ if test "${glibcxx_cv_func_quick_exit_use+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+
+
+ ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+int
+main ()
+{
+ quick_exit(0);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ glibcxx_cv_func_quick_exit_use=yes
+else
+ glibcxx_cv_func_quick_exit_use=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_quick_exit_use" >&5
+$as_echo "$glibcxx_cv_func_quick_exit_use" >&6; }
+ if test x$glibcxx_cv_func_quick_exit_use = x"yes"; then
+ for ac_func in quick_exit
+do :
+ ac_fn_c_check_func "$LINENO" "quick_exit" "ac_cv_func_quick_exit"
+if test "x$ac_cv_func_quick_exit" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_QUICK_EXIT 1
+_ACEOF
+
+fi
+done
+
+ fi
+
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for strtold declaration" >&5
$as_echo_n "checking for strtold declaration... " >&6; }
if test x${glibcxx_cv_func_strtold_use+set} != xset; then
@@ -69506,6 +70318,122 @@ done
CXXFLAGS='-fno-builtin -D_GNU_SOURCE'
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for at_quick_exit declaration" >&5
+$as_echo_n "checking for at_quick_exit declaration... " >&6; }
+ if test x${glibcxx_cv_func_at_quick_exit_use+set} != xset; then
+ if test "${glibcxx_cv_func_at_quick_exit_use+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+
+
+ ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+int
+main ()
+{
+ at_quick_exit(0);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ glibcxx_cv_func_at_quick_exit_use=yes
+else
+ glibcxx_cv_func_at_quick_exit_use=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_at_quick_exit_use" >&5
+$as_echo "$glibcxx_cv_func_at_quick_exit_use" >&6; }
+ if test x$glibcxx_cv_func_at_quick_exit_use = x"yes"; then
+ for ac_func in at_quick_exit
+do :
+ ac_fn_c_check_func "$LINENO" "at_quick_exit" "ac_cv_func_at_quick_exit"
+if test "x$ac_cv_func_at_quick_exit" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_AT_QUICK_EXIT 1
+_ACEOF
+
+fi
+done
+
+ fi
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for quick_exit declaration" >&5
+$as_echo_n "checking for quick_exit declaration... " >&6; }
+ if test x${glibcxx_cv_func_quick_exit_use+set} != xset; then
+ if test "${glibcxx_cv_func_quick_exit_use+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+
+
+ ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+int
+main ()
+{
+ quick_exit(0);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ glibcxx_cv_func_quick_exit_use=yes
+else
+ glibcxx_cv_func_quick_exit_use=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_func_quick_exit_use" >&5
+$as_echo "$glibcxx_cv_func_quick_exit_use" >&6; }
+ if test x$glibcxx_cv_func_quick_exit_use = x"yes"; then
+ for ac_func in quick_exit
+do :
+ ac_fn_c_check_func "$LINENO" "quick_exit" "ac_cv_func_quick_exit"
+if test "x$ac_cv_func_quick_exit" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_QUICK_EXIT 1
+_ACEOF
+
+fi
+done
+
+ fi
+
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for strtold declaration" >&5
$as_echo_n "checking for strtold declaration... " >&6; }
if test x${glibcxx_cv_func_strtold_use+set} != xset; then
diff --git a/libstdc++-v3/include/c_std/cstdlib b/libstdc++-v3/include/c_std/cstdlib
index 224fccf..9d2f51e 100644
--- a/libstdc++-v3/include/c_std/cstdlib
+++ b/libstdc++-v3/include/c_std/cstdlib
@@ -57,6 +57,8 @@ namespace std
extern "C" void abort(void) throw () _GLIBCXX_NORETURN;
extern "C" int atexit(void (*)()) throw ();
extern "C" void exit(int) throw () _GLIBCXX_NORETURN;
+ extern "C" int at_quick_exit(void (*)()) throw ();
+ extern "C" void quick_exit(int) throw() _GLIBCXX_NORETURN;
} // namespace
#else
@@ -67,6 +69,7 @@ namespace std
#undef abort
#undef abs
#undef atexit
+#undef at_quick_exit
#undef atof
#undef atoi
#undef atol
@@ -83,6 +86,7 @@ namespace std
#undef mbstowcs
#undef mbtowc
#undef qsort
+#undef quick_exit
#undef rand
#undef realloc
#undef srand
@@ -103,6 +107,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
using ::abort;
using ::abs;
using ::atexit;
+#ifdef _GLIBCXX_HAVE_AT_QUICK_EXIT
+ using ::at_quick_exit;
+#endif
using ::atof;
using ::atoi;
using ::atol;
@@ -121,6 +128,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
using ::mbtowc;
#endif // _GLIBCXX_HAVE_MBSTATE_T
using ::qsort;
+#ifdef _GLIBCXX_HAVE_QUICK_EXIT
+ using ::quick_exit;
+#endif
using ::rand;
using ::realloc;
using ::srand;
^ permalink raw reply [flat|nested] 20+ messages in thread
end of thread, other threads:[~2013-02-15 1:26 UTC | newest]
Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-02-12 11:26 RFA: v3 PATCH to add on_quick_exit/quick_exit to std Dominique Dhumieres
2013-02-12 11:32 ` Paolo Carlini
2013-02-12 11:40 ` Paolo Carlini
2013-02-12 11:40 ` Dominique Dhumieres
2013-02-12 11:58 ` Paolo Carlini
2013-02-12 12:47 ` Dominique Dhumieres
2013-02-12 12:56 ` Paolo Carlini
2013-02-13 14:38 ` Jason Merrill
2013-02-13 15:08 ` Paolo Carlini
-- strict thread matches above, loose matches on Subject: below --
2013-02-11 17:33 Jason Merrill
2013-02-11 17:46 ` Benjamin De Kosnik
2013-02-11 17:57 ` Paolo Carlini
2013-02-11 18:35 ` Paolo Carlini
2013-02-11 18:54 ` Benjamin De Kosnik
2013-02-11 19:01 ` Paolo Carlini
2013-02-11 23:44 ` Paolo Carlini
2013-02-14 15:46 ` Rainer Orth
2013-02-14 17:46 ` Paolo Carlini
2013-02-14 19:17 ` Paolo Carlini
2013-02-15 1:26 ` Jason Merrill
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).