summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2011-08-11 18:44:35 +0000
committerparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2011-08-11 18:44:35 +0000
commit8c7cc4d18ddf28a18a01fef53aaea68422b2fff2 (patch)
treebbe6518578480fb84993d4a7766eb3f6d4f7cc7d
parent46aa2cbd9587d5831712e93dbbef4331efb1266d (diff)
downloadATCD-8c7cc4d18ddf28a18a01fef53aaea68422b2fff2.tar.gz
ChangeLogTag: Thu Aug 11 18:40:36 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu>
-rw-r--r--ChangeLog61
-rw-r--r--TAO-INSTALL.html7
-rw-r--r--TAO_IDL/ast/ast_interface.cpp6
-rw-r--r--TAO_IDL/be/be_global.cpp18
-rw-r--r--TAO_IDL/be/be_util.cpp5
-rw-r--r--TAO_IDL/be/be_visitor_arg_traits.cpp13
-rw-r--r--TAO_IDL/be/be_visitor_array/array_cs.cpp8
-rw-r--r--TAO_IDL/be/be_visitor_interface/interface_cs.cpp8
-rw-r--r--TAO_IDL/be/be_visitor_root/root_ch.cpp15
-rw-r--r--TAO_IDL/be/be_visitor_root/root_cs.cpp15
-rw-r--r--TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp3
-rw-r--r--TAO_IDL/be/be_visitor_structure/cdr_op_cs.cpp10
-rw-r--r--TAO_IDL/be/be_visitor_structure/structure_cs.cpp16
-rw-r--r--TAO_IDL/be/be_visitor_traits.cpp43
-rw-r--r--TAO_IDL/be_include/be_global.h9
-rw-r--r--tao/IFR_Client/IFR_Client.mpc5
-rw-r--r--tao/Object_KeyC.h6
-rw-r--r--tests/Sequence_Unit_Tests/string_sequence_tester.hpp2
18 files changed, 171 insertions, 79 deletions
diff --git a/ChangeLog b/ChangeLog
index 9afc7f9266b..27c860120d9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,64 @@
+Thu Aug 11 18:40:36 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * Merged main trunk into the alt_mapping_SAIC branch again.
+
+ Mon Aug 8 14:26:30 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * TAO_IDL/be/be_visitor_interface/interface_cs.cpp:
+ Don't generate arg traits if they are disabled
+
+ Mon Aug 8 09:01:55 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * TAO_IDL/be/be_codegen.cpp:
+ * TAO_IDL/be/be_global.cpp:
+ * TAO_IDL/be/be_util.cpp:
+ * TAO_IDL/be/be_visitor_connector/connector_dds_exh.cpp:
+ * TAO_IDL/be/be_visitor_root/root_ch.cpp:
+ * TAO_IDL/be/be_visitor_root/root_cs.cpp:
+ * TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp:
+ * TAO_IDL/be/be_visitor_structure/cdr_op_cs.cpp:
+ * TAO_IDL/be/be_visitor_structure/structure_cs.cpp:
+ * TAO_IDL/be/be_visitor_traits.cpp:
+ * TAO_IDL/be_include/be_global.h:
+ Added support for -Scdr which suppresses the CDR streaming operations.
+ This safes footprint when we are using IDL defined types, but these
+ are not intended to be send through remote CORBA interfaces
+
+ Thu Aug 4 15:47:33 UTC 2011 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * TAO-INSTALL.html:
+
+ Added note about building for Android.
+
+ * tests/Sequence_Unit_Tests/string_sequence_tester.hpp:
+
+ Additional compiler macro added to build on Android.
+
+ Thanks to Trevor Fields of OCI for doing the heavy lifting
+ for porting TAO to Android.
+
+ Sat Jul 23 22:40:39 UTC 2011 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * TAO_IDL/be/be_visitor_arg_traits.cpp:
+
+ Fuzz fix.
+
+ Sat Jul 23 14:55:15 UTC 2011 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * TAO/tao/IFR_Client/IFR_Client.mpc
+
+ Fixed dependencies on new IFR_Client_Skel project so it
+ builds on windows.
+
+ Wed Jul 20 18:53:29 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * TAO_IDL/ast/ast_interface:
+
+ Removed an unnecessary 'seen' flag for arg traits, it was
+ not only unneeded, but also pulling in #includes in the
+ *S.h file that wouldn't compile if the IDL contains
+ valuetypes and no non-local interfaces.
+
Wed Jul 20 16:07:43 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu>
* Fixes to elimiate compile errors due to merge.
diff --git a/TAO-INSTALL.html b/TAO-INSTALL.html
index d8b5259f8c3..256d8dc5b61 100644
--- a/TAO-INSTALL.html
+++ b/TAO-INSTALL.html
@@ -203,11 +203,14 @@ must support implicit templates. <P>
With cross compilation you build on the so called host system for a certain
target system. The host system can for example be linux and the target
-can for example be VxWorks, LynxOS or Linux.
+can for example be VxWorks, LynxOS, or Linux.
If you are building TAO for a VxWorks target, please see the detailed
instructions for building and installing ACE and TAO in <a
-href="../ACE/ACE-INSTALL.html#vxworks">$ACE_ROOT/ACE-INSTALL.html</a>.<p>
+href="../ACE/ACE-INSTALL.html#vxworks">$ACE_ROOT/ACE-INSTALL.html</a>.</p>
+<p>If you are building TAO for an Android target, please see the notes
+for building and installing ACE and TAO in <a
+href="../ACE-INSTALL.html#android">$ACE_ROOT/ACE-INSTALL.html</a>.</p>
<P>Cross-compiling TAO is not much different than building it for a
self-host. The one major difference is that TAO's IDL compiler
diff --git a/TAO_IDL/ast/ast_interface.cpp b/TAO_IDL/ast/ast_interface.cpp
index a6bcd815c73..4aafc06dd89 100644
--- a/TAO_IDL/ast/ast_interface.cpp
+++ b/TAO_IDL/ast/ast_interface.cpp
@@ -131,12 +131,6 @@ AST_Interface::AST_Interface (UTL_ScopedName *n,
this->size_type (AST_Type::VARIABLE); // always the case
this->has_constructor (true); // always the case
- // Check for non-local and not a dummy for a fwd decl.
- if (! local && nih != -1)
- {
- idl_global->non_local_iface_seen_ = true;
- }
-
// Enqueue the param holders (if any) for later destruction.
// By the time our destroy() is called, it will be too late
// to iterate over pd_inherits.
diff --git a/TAO_IDL/be/be_global.cpp b/TAO_IDL/be/be_global.cpp
index 8d8a3e8c4a4..2234c0eb162 100644
--- a/TAO_IDL/be/be_global.cpp
+++ b/TAO_IDL/be/be_global.cpp
@@ -91,6 +91,7 @@ BE_GlobalData::BE_GlobalData (void)
skel_output_dir_ (0),
anyop_output_dir_ (0),
any_support_ (true),
+ cdr_support_ (true),
tc_support_ (true),
obv_opt_accessor_ (0),
gen_impl_files_ (false),
@@ -1522,6 +1523,18 @@ BE_GlobalData::any_support (void) const
}
void
+BE_GlobalData::cdr_support (bool val)
+{
+ this->cdr_support_ = val;
+}
+
+bool
+BE_GlobalData::cdr_support (void) const
+{
+ return this->cdr_support_;
+}
+
+void
BE_GlobalData::tc_support (bool val)
{
this->tc_support_ = val;
@@ -3351,6 +3364,11 @@ BE_GlobalData::parse_args (long &i, char **av)
// No stub inline.
be_global->gen_client_stub (false);
}
+ else if (av[i][3] == 'd' && av[i][4] == 'r')
+ {
+ // No cdr support.
+ be_global->cdr_support (false);
+ }
else
{
ACE_ERROR ((
diff --git a/TAO_IDL/be/be_util.cpp b/TAO_IDL/be/be_util.cpp
index 29b7ab2402b..7bce09bc700 100644
--- a/TAO_IDL/be/be_util.cpp
+++ b/TAO_IDL/be/be_util.cpp
@@ -793,6 +793,11 @@ be_util::usage (void)
));
ACE_DEBUG ((
LM_DEBUG,
+ ACE_TEXT (" -Scdr\t\t\tsuppress CDR support")
+ ACE_TEXT (" (support enabled by default)\n")
+ ));
+ ACE_DEBUG ((
+ LM_DEBUG,
ACE_TEXT (" -Sat\t\t\tsuppress arg traits")
ACE_TEXT (" generation")
ACE_TEXT (" (arg traits generated by default)\n")
diff --git a/TAO_IDL/be/be_visitor_arg_traits.cpp b/TAO_IDL/be/be_visitor_arg_traits.cpp
index 3f5dd300306..efd9a9cd6fd 100644
--- a/TAO_IDL/be/be_visitor_arg_traits.cpp
+++ b/TAO_IDL/be/be_visitor_arg_traits.cpp
@@ -678,17 +678,6 @@ be_visitor_arg_traits::visit_sequence (be_sequence *node)
*os << be_nl_2 << "// TAO_IDL - Generated from" << be_nl
<< "// " << __FILE__ << ":" << __LINE__;
- AST_Type *bt = node->base_type ()->unaliased_type ();
-
- std::string guard_suffix =
- std::string ("Seq_") + std::string (this->S_) + std::string ("arg_traits");
-
- // The guard should be generated to prevent multiple declarations,
- // since a sequence of a given element type may be typedef'd
- // more than once.
-
- os->gen_ifdef_macro (bt->flat_name (), guard_suffix.c_str (), false);
-
bool use_vec = (node->unbounded () && be_global->alt_mapping ());
UTL_ScopedName *sn = alias->name ();
@@ -705,8 +694,6 @@ be_visitor_arg_traits::visit_sequence (be_sequence *node)
<< "{" << be_nl
<< "};";
- os->gen_endif ();
-
return 0;
}
diff --git a/TAO_IDL/be/be_visitor_array/array_cs.cpp b/TAO_IDL/be/be_visitor_array/array_cs.cpp
index d1b40071784..70bcfd15cbb 100644
--- a/TAO_IDL/be/be_visitor_array/array_cs.cpp
+++ b/TAO_IDL/be/be_visitor_array/array_cs.cpp
@@ -147,8 +147,8 @@ int be_visitor_array_cs::visit_array (be_array *node)
// free method.
*os << "void" << be_nl
<< fname << "_free (" << be_idt << be_idt_nl
- << fname << "_slice *_tao_slice" << be_uidt_nl
- << ")" << be_uidt_nl;
+ << fname << "_slice *_tao_slice)" << be_uidt
+ << be_uidt_nl;
*os << "{" << be_idt_nl;
*os << "delete [] _tao_slice;" << be_uidt_nl;
*os << "}" << be_nl_2;
@@ -157,8 +157,8 @@ int be_visitor_array_cs::visit_array (be_array *node)
*os << "void " << be_nl;
*os << fname << "_copy (" << be_idt << be_idt_nl
<< fname << "_slice * _tao_to," << be_nl
- << "const " << fname << "_slice *_tao_from" << be_uidt_nl
- << ")" << be_uidt_nl;
+ << "const " << fname << "_slice *_tao_from)" << be_uidt
+ << be_uidt_nl;
*os << "{" << be_idt_nl;
*os << "// Copy each individual element." << be_nl;
diff --git a/TAO_IDL/be/be_visitor_interface/interface_cs.cpp b/TAO_IDL/be/be_visitor_interface/interface_cs.cpp
index 0cfcf428e3d..cd7b65a2499 100644
--- a/TAO_IDL/be/be_visitor_interface/interface_cs.cpp
+++ b/TAO_IDL/be/be_visitor_interface/interface_cs.cpp
@@ -47,11 +47,11 @@ be_visitor_interface_cs::visit_interface (be_interface *node)
AST_Component *c = AST_Component::narrow_from_decl (node);
TAO_OutStream *os = this->ctx_->stream ();
- *os << be_nl_2 << "// TAO_IDL - Generated from" << be_nl
- << "// " << __FILE__ << ":" << __LINE__;
-
- if (node->is_defined ())
+ if (node->is_defined () && be_global->gen_arg_traits ())
{
+ *os << be_nl_2 << "// TAO_IDL - Generated from" << be_nl
+ << "// " << __FILE__ << ":" << __LINE__;
+
*os << be_nl_2
<< "// Traits specializations for " << node->name () << ".";
diff --git a/TAO_IDL/be/be_visitor_root/root_ch.cpp b/TAO_IDL/be/be_visitor_root/root_ch.cpp
index 0a1dec62d25..ed167664904 100644
--- a/TAO_IDL/be/be_visitor_root/root_ch.cpp
+++ b/TAO_IDL/be/be_visitor_root/root_ch.cpp
@@ -370,9 +370,16 @@ be_visitor_root_ch::gen_any_ops (be_root *node)
int
be_visitor_root_ch::gen_cdr_ops (be_root *node)
{
- be_visitor_context ctx = *this->ctx_;
- ctx.state (TAO_CodeGen::TAO_ROOT_CDR_OP_CH);
- be_visitor_root_cdr_op visitor (&ctx);
- return node->accept (&visitor);
+ int status = 0;
+
+ if (be_global->cdr_support ())
+ {
+ be_visitor_context ctx = *this->ctx_;
+ ctx.state (TAO_CodeGen::TAO_ROOT_CDR_OP_CH);
+ be_visitor_root_cdr_op visitor (&ctx);
+ status = node->accept (&visitor);
+ }
+
+ return status;
}
diff --git a/TAO_IDL/be/be_visitor_root/root_cs.cpp b/TAO_IDL/be/be_visitor_root/root_cs.cpp
index 3a293267f84..8548f3fb939 100644
--- a/TAO_IDL/be/be_visitor_root/root_cs.cpp
+++ b/TAO_IDL/be/be_visitor_root/root_cs.cpp
@@ -136,10 +136,17 @@ be_visitor_root_cs::gen_any_ops (be_root *node)
int
be_visitor_root_cs::gen_cdr_ops (be_root *node)
{
- be_visitor_context ctx = *this->ctx_;
- ctx.state (TAO_CodeGen::TAO_ROOT_CDR_OP_CS);
- be_visitor_root_cdr_op visitor (&ctx);
- return node->accept (&visitor);
+ int status = 0;
+
+ if (be_global->cdr_support ())
+ {
+ be_visitor_context ctx = *this->ctx_;
+ ctx.state (TAO_CodeGen::TAO_ROOT_CDR_OP_CS);
+ be_visitor_root_cdr_op visitor (&ctx);
+ status = node->accept (&visitor);
+ }
+
+ return status;
}
diff --git a/TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp b/TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp
index 1aefe56d349..2e216463ee7 100644
--- a/TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp
+++ b/TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp
@@ -75,8 +75,7 @@ be_visitor_sequence_cdr_op_cs::visit_sequence (be_sequence *node)
int status =
this->gen_anonymous_base_type (
be_type::narrow_from_decl (bt),
- TAO_CodeGen::TAO_ROOT_CDR_OP_CS
- );
+ TAO_CodeGen::TAO_ROOT_CDR_OP_CS);
if (status == -1)
{
diff --git a/TAO_IDL/be/be_visitor_structure/cdr_op_cs.cpp b/TAO_IDL/be/be_visitor_structure/cdr_op_cs.cpp
index b294dfa6ca0..10e4fcad29b 100644
--- a/TAO_IDL/be/be_visitor_structure/cdr_op_cs.cpp
+++ b/TAO_IDL/be/be_visitor_structure/cdr_op_cs.cpp
@@ -49,7 +49,7 @@ be_visitor_structure_cdr_op_cs::visit_structure (be_structure *node)
TAO_OutStream *os = this->ctx_->stream ();
*os << be_nl_2 << "// TAO_IDL - Generated from" << be_nl
- << "// " << __FILE__ << ":" << __LINE__ << be_nl_2;
+ << "// " << __FILE__ << ":" << __LINE__ << be_nl;
*os << be_global->core_versioning_begin () << be_nl;
@@ -58,8 +58,8 @@ be_visitor_structure_cdr_op_cs::visit_structure (be_structure *node)
*os << "::CORBA::Boolean operator<< (" << be_idt << be_idt_nl
<< "TAO_OutputCDR &strm," << be_nl
- << "const " << node->name () << " &_tao_aggregate" << be_uidt_nl
- << ")" << be_uidt_nl
+ << "const " << node->name () << " &_tao_aggregate)" << be_uidt
+ << be_uidt_nl
<< "{" << be_idt_nl;
be_visitor_context new_ctx (*this->ctx_);
@@ -99,8 +99,7 @@ be_visitor_structure_cdr_op_cs::visit_structure (be_structure *node)
*os << "_tao_aggregate";
}
- *os << be_uidt_nl
- << ")" << be_uidt_nl
+ *os << ")" << be_uidt << be_uidt_nl
<< "{" << be_idt_nl;
if (node->is_local ())
@@ -144,6 +143,7 @@ be_visitor_structure_cdr_op_cs::visit_structure (be_structure *node)
*os << be_global->core_versioning_end () << be_nl;
node->cli_stub_cdr_op_gen (true);
+
return 0;
}
diff --git a/TAO_IDL/be/be_visitor_structure/structure_cs.cpp b/TAO_IDL/be/be_visitor_structure/structure_cs.cpp
index 403fe774109..2e8723d799c 100644
--- a/TAO_IDL/be/be_visitor_structure/structure_cs.cpp
+++ b/TAO_IDL/be/be_visitor_structure/structure_cs.cpp
@@ -49,19 +49,19 @@ be_visitor_structure_cs::visit_structure (be_structure *node)
}
}
- TAO_OutStream *os = this->ctx_->stream ();
-
- *os << be_nl_2;
- *os << "// TAO_IDL - Generated from " << be_nl
- << "// " << __FILE__ << ":" << __LINE__ << be_nl_2;
-
if (be_global->any_support ())
{
+ TAO_OutStream *os = this->ctx_->stream ();
+
+ *os << be_nl_2;
+ *os << "// TAO_IDL - Generated from " << be_nl
+ << "// " << __FILE__ << ":" << __LINE__ << be_nl_2;
+
*os << "void " << be_nl
<< node->name ()
<< "::_tao_any_destructor (" << be_idt << be_idt_nl
- << "void *_tao_void_pointer" << be_uidt_nl
- << ")" << be_uidt_nl
+ << "void *_tao_void_pointer)" << be_uidt
+ << be_uidt_nl
<< "{" << be_idt_nl
<< node->local_name () << " *_tao_tmp_pointer =" << be_idt_nl
<< "static_cast<" << node->local_name ()
diff --git a/TAO_IDL/be/be_visitor_traits.cpp b/TAO_IDL/be/be_visitor_traits.cpp
index 0f0fa5c33f2..cb2616c223c 100644
--- a/TAO_IDL/be/be_visitor_traits.cpp
+++ b/TAO_IDL/be/be_visitor_traits.cpp
@@ -53,32 +53,35 @@ be_visitor_traits::~be_visitor_traits (void)
int
be_visitor_traits::visit_root (be_root *node)
{
- TAO_OutStream *os = this->ctx_->stream ();
+ if (be_global->gen_arg_traits ())
+ {
+ TAO_OutStream *os = this->ctx_->stream ();
- *os << be_nl_2
- << "// TAO_IDL - Generated from" << be_nl
- << "// " << __FILE__ << ":" << __LINE__;
+ *os << be_nl_2
+ << "// TAO_IDL - Generated from" << be_nl
+ << "// " << __FILE__ << ":" << __LINE__;
- *os << be_nl
- << be_global->core_versioning_begin ();
+ *os << be_nl
+ << be_global->core_versioning_begin ();
- *os << be_nl
- << "// Traits specializations." << be_nl
- << "namespace TAO" << be_nl
- << "{" << be_idt;
+ *os << be_nl
+ << "// Traits specializations." << be_nl
+ << "namespace TAO" << be_nl
+ << "{" << be_idt;
- if (this->visit_scope (node) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_traits::"
- "visit_root - visit scope failed\n"),
- -1);
- }
+ if (this->visit_scope (node) == -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_traits::"
+ "visit_root - visit scope failed\n"),
+ -1);
+ }
- *os << be_uidt_nl
- << "}";
+ *os << be_uidt_nl
+ << "}";
- *os << be_global->core_versioning_end () << be_nl;
+ *os << be_global->core_versioning_end () << be_nl;
+ }
return 0;
}
diff --git a/TAO_IDL/be_include/be_global.h b/TAO_IDL/be_include/be_global.h
index 80c01149d15..a7c0397d4ed 100644
--- a/TAO_IDL/be_include/be_global.h
+++ b/TAO_IDL/be_include/be_global.h
@@ -593,6 +593,12 @@ public:
/// Check Any support.
bool any_support (void) const;
+ /// Set cdr support.
+ void cdr_support (bool);
+
+ /// Check cdr support.
+ bool cdr_support (void) const;
+
/// Set TypeCode support.
void tc_support (bool);
@@ -1028,6 +1034,9 @@ private:
/// do we support Any operators?
bool any_support_;
+ /// do we support cdr?
+ bool cdr_support_;
+
/// do we support typecodes?
bool tc_support_;
diff --git a/tao/IFR_Client/IFR_Client.mpc b/tao/IFR_Client/IFR_Client.mpc
index e6f5254ab15..1d50a825948 100644
--- a/tao/IFR_Client/IFR_Client.mpc
+++ b/tao/IFR_Client/IFR_Client.mpc
@@ -63,9 +63,8 @@ project(IFR_Client) : taolib, tao_output, install, anytypecode, taoidldefaults {
}
}
-project(IFR_Client_skel) : taolib, tao_output, install, taoidldefaults, portableserver {
- after += IFR_Client
- libs += TAO_IFR_Client
+project(IFR_Client_skel) : ifr_client, taolib, tao_output, install, anytypecode, taoidldefaults, portableserver{
+ after += *idl
sharedname = TAO_IFR_Client_skel
dynamicflags += TAO_IFR_CLIENT_SKEL_BUILD_DLL
diff --git a/tao/Object_KeyC.h b/tao/Object_KeyC.h
index 547fb6bf6f2..0bb3803c56a 100644
--- a/tao/Object_KeyC.h
+++ b/tao/Object_KeyC.h
@@ -28,8 +28,8 @@
// TAO_IDL - Generated from
// w:\tao\tao_idl\be\be_codegen.cpp:150
-#ifndef _TAO_PIDL_OBJECT_KEYC_13ALDY_H_
-#define _TAO_PIDL_OBJECT_KEYC_13ALDY_H_
+#ifndef _TAO_PIDL_OBJECT_KEYC_NYHQMR_H_
+#define _TAO_PIDL_OBJECT_KEYC_NYHQMR_H_
#include /**/ "ace/pre.h"
@@ -114,7 +114,7 @@ TAO_BEGIN_VERSIONED_NAMESPACE_DECL
// TAO_IDL - Generated from
-// w:\tao\tao_idl\be\be_visitor_traits.cpp:60
+// w:\tao\tao_idl\be\be_visitor_traits.cpp:62
TAO_END_VERSIONED_NAMESPACE_DECL
diff --git a/tests/Sequence_Unit_Tests/string_sequence_tester.hpp b/tests/Sequence_Unit_Tests/string_sequence_tester.hpp
index 6ebcf3d7018..cfe469708a5 100644
--- a/tests/Sequence_Unit_Tests/string_sequence_tester.hpp
+++ b/tests/Sequence_Unit_Tests/string_sequence_tester.hpp
@@ -62,7 +62,7 @@ struct string_sequence_test_helpers<char>
}
};
-#if defined(_GLIBCPP_VERSION) && !defined(_GLIBCPP_USE_WCHAR_T)
+#if defined(_GLIBCPP_VERSION) && !defined(_GLIBCPP_USE_WCHAR_T) && !defined(TAO_LACKS_WCHAR_CXX_STDLIB)
# define TAO_LACKS_WCHAR_CXX_STDLIB
#endif