summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOssama Othman <ossama-othman@users.noreply.github.com>1999-11-08 23:14:12 +0000
committerOssama Othman <ossama-othman@users.noreply.github.com>1999-11-08 23:14:12 +0000
commite21d160c18b23667bfb71eeff0f8cdf539cc424f (patch)
tree9903b9929c20e2c6ad4784ec201e46d722fe51cd
parent17fdf35ade1cada525abe35463d26cdb71c5f785 (diff)
downloadATCD-e21d160c18b23667bfb71eeff0f8cdf539cc424f.tar.gz
ChangeLogTag:Mon Nov 8 16:34:27 1999 Ossama Othman <othman@cs.wustl.edu>
-rw-r--r--acconfig.h12
-rw-r--r--configure.in64
2 files changed, 76 insertions, 0 deletions
diff --git a/acconfig.h b/acconfig.h
index 1b80a300928..a5c92ba7a51 100644
--- a/acconfig.h
+++ b/acconfig.h
@@ -815,6 +815,9 @@
/* Platform/compiler lacks strdup() (e.g., VxWorks, Chorus, WinCE) */
#undef ACE_HAS_STRDUP_EMULATION
+/* Compile ACE_OS::strptime() wrapper into ACE. */
+#undef ACE_HAS_STRPTIME
+
/* Platform supports STREAMS */
#undef ACE_HAS_STREAMS
@@ -1128,6 +1131,9 @@
/* Platform lacks named POSIX semaphores (e.g., Chorus) */
#undef ACE_LACKS_NAMED_POSIX_SEM
+/* Platform lacks native strptime() implementation. */
+#undef ACE_LACKS_NATIVE_STRPTIME
+
/* Platform/compiler lacks {get,set}rlimit() function (e.g., VxWorks, Chorus,
and SCO UNIX) */
#undef ACE_LACKS_RLIMIT
@@ -1143,6 +1149,12 @@
memory and message queues. */
#undef ACE_LACKS_SOME_POSIX_PROTOTYPES
+/* Compiler doesn't support placement operator new(size_t, void *). */
+#undef ACE_LACKS_PLACEMENT_OPERATOR_NEW
+
+/* Compiler doesn't support placement operator delete(void *, void *). */
+#undef ACE_LACKS_PLACEMENT_OPERATOR_DELETE
+
/* Compiler complains about use of obsolete "#pragma once" */
#undef ACE_LACKS_PRAGMA_ONCE
diff --git a/configure.in b/configure.in
index 6eecb9ac4de..e8b0080e57b 100644
--- a/configure.in
+++ b/configure.in
@@ -2912,6 +2912,66 @@ ACE_CACHE_CHECK(for C++ typename keyword,
])
], AC_DEFINE(ACE_HAS_TYPENAME_KEYWORD),)
+dnl Check if platform supports placement new operator
+ACE_CACHE_CHECK(for C++ placement new operator,
+ ace_cv_feature_placement_new,[
+ AC_TRY_COMPILE([
+#if defined (ACE_HAS_NEW_NO_H)
+# include <new>
+#elif defined (ACE_HAS_NEW_H)
+# include <new.h>
+#endif
+
+class foo
+{
+public:
+ void *operator new (size_t, void *p) { return p; }
+};
+ ],
+ [
+int *x = 0;
+foo *f = new (x) foo;
+ ],
+ [
+ ace_cv_feature_placement_new=yes
+ ],
+ [
+ ace_cv_feature_placement_new=no
+ ])
+ ], , AC_DEFINE(ACE_LACKS_PLACEMENT_OPERATOR_NEW))
+
+dnl Check if platform supports placement delete operator
+ACE_CACHE_CHECK(for C++ placement delete operator,
+ ace_cv_feature_placement_delete,[
+ AC_TRY_COMPILE([
+#if defined (ACE_HAS_NEW_NO_H)
+# include <new>
+#elif defined (ACE_HAS_NEW_H)
+# include <new.h>
+#endif
+
+class foo
+{
+public:
+ void *operator new (size_t, void *p) { return p; }
+ void operator delete (void *p, void *) {}
+};
+ ],
+ [
+int *x = 0;
+foo *f = new (x) foo;
+
+// delete f; // Don't call delete for this test!
+ ],
+ [
+ ace_cv_feature_placement_delete=yes
+ ],
+ [
+ ace_cv_feature_placement_delete=no
+ ])
+ ], , AC_DEFINE(ACE_LACKS_PLACEMENT_OPERATOR_DELETE))
+
+
dnl Check if const char * can be rvalue in conditional operator
ACE_CACHE_CHECK(if const char * can be rvalue in conditional operator,
ace_cv_feature_conditional_str_cast,
@@ -3686,6 +3746,10 @@ AC_CHECK_FUNC(strrchr, dnl
,
AC_DEFINE(ACE_LACKS_STRRCHR))
+AC_CHECK_FUNC(strptime, dnl
+ AC_DEFINE(ACE_HAS_STRPTIME),
+ AC_DEFINE(ACE_LACKS_NATIVE_STRPTIME))
+
AC_CHECK_FUNC(memchr, dnl
AC_DEFINE(ACE_HAS_MEMCHR),)