summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorelliott_c <ocielliottc@users.noreply.github.com>2005-02-16 13:04:43 +0000
committerelliott_c <ocielliottc@users.noreply.github.com>2005-02-16 13:04:43 +0000
commitbe61fb01d50281848e744387a4c9144b0bdb698f (patch)
treeea5b8e9fbd474a3f0960f32398bda8cdaec8b52d
parent7a895554b01e6b42522013aea336261c6f21a915 (diff)
downloadATCD-be61fb01d50281848e744387a4c9144b0bdb698f.tar.gz
ChangeLogTag: Wed Feb 16 07:02:15 2005 Chad Elliott <elliott_c@ociweb.com>
-rw-r--r--ChangeLog164
-rw-r--r--ace/OS_NS_stdlib.inl12
-rw-r--r--ace/config-sunos5.7.h3
-rw-r--r--ace/config-sunos5.8.h2
-rw-r--r--bin/PerlACE/Process_Unix.pm8
-rw-r--r--bin/PerlACE/Process_Win32.pm9
-rw-r--r--examples/C++NPv2/C++NPv2.mpc32
-rw-r--r--examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFCDlg.cpp4
-rw-r--r--include/makeinclude/platform_g++_common.GNU2
-rw-r--r--include/makeinclude/platform_sunos5_sunc++.GNU10
10 files changed, 164 insertions, 82 deletions
diff --git a/ChangeLog b/ChangeLog
index f19a7f24bee..e79e64c33e3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,39 @@
+Wed Feb 16 07:02:15 2005 Chad Elliott <elliott_c@ociweb.com>
+
+ * ace/OS_NS_stdlib.inl:
+ * ace/config-sunos5.7.h:
+ * ace/config-sunos5.8.h:
+
+ On SunOS 5.7, some wchar_t related methods are always in the std
+ namespace when building with SunCC 5.3.
+
+ * bin/PerlACE/Process_Unix.pm:
+ * bin/PerlACE/Process_Win32.pm:
+
+ Added a ACE_TEST_WINDOW environment variable which can be used to
+ start each process in a separate window by setting it to
+ something like 'rxvt -e' and ACE_TEST_VERBOSE which causes the
+ command line of each process to be printed out as it is started.
+
+ * examples/C++NPv2/C++NPv2.mpc:
+
+ Added additional project ordering for the gnuace type to avoid
+ build problems with parallel builds.
+
+ * examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFCDlg.cpp:
+
+ Simple modifications to allow this to build with EVC 4.
+
+ * include/makeinclude/platform_g++_common.GNU:
+
+ Changed a grep command to something compatible with Solaris as
+ well as Linux.
+
+ * include/makeinclude/platform_sunos5_sunc++.GNU:
+
+ Set the default template instantiation mode to automatic for every
+ version except SunCC 4.2.
+
Wed Feb 16 12:56:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
* etc/ace_rmcast.doxygen:
@@ -5,99 +41,99 @@ Wed Feb 16 12:56:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
Tue Feb 15 18:10:56 2005 J.T. Conklin <jtc@acorntoolworks.com>
- * m4/ace.m4:
+ * m4/ace.m4:
- Removed ACE_ENABLE_RMCAST macro. Building RMCast library is now
- unconditional.
+ Removed ACE_ENABLE_RMCAST macro. Building RMCast library is now
+ unconditional.
Tue Feb 15 18:45:26 2005 Steve Huston <shuston@riverace.com>
- * ace/POSIX_Asynch_IO.{h cpp}:
- * ace/POSIX_Proactor.cpp: Fixed compile errors resulting from
- Proxy_Ptr changes, below.
+ * ace/POSIX_Asynch_IO.{h cpp}:
+ * ace/POSIX_Proactor.cpp: Fixed compile errors resulting from
+ Proxy_Ptr changes, below.
Tue Feb 15 18:19:25 2005 Steve Huston <shuston@riverace.com>
- * ace/Asynch_IO.{h cpp}:
- * ace/Asynch_IO_Impl.h:
- * ace/POSIX_Asynch_IO.{h cpp}:
- * ace/POSIX_Proactor.{h cpp}:
- * ace/Proactor.{h cpp}:
- * ace/Proactor_Impl.h:
- * ace/WIN32_Asynch_IO.{h cpp}:
- * ace/WIN32_Proactor.{h cpp}: All methods that accepted an ACE_Handler
- below the user-accessed methods were changed to accept an
- ACE_Handler::Proxy_Ptr instead. The ACE_Handler class has a new
- Proxy_Ptr typedef which is an ACE_Refcounted_Auto_Ptr for
- a Proxy class. When an ACE_Handler is created, it allocates a
- Proxy to refer to itself. The Proxy carries a pointer to the
- ACE_Handler it proxies for in lower levels of the framework.
- When the ACE_Handler is destroyed, it clears the ACE_Handler
- pointer in the proxy.
- Any part of the framework that dispatches completions gets the
- ACE_Handler pointer from the proxy and only dispatches if the
- pointer is not 0. This allows ACE_Handlers to be deleted while
- operations may be outstanding, a previously vexing issue since one
- can never be sure how many operations are outstanding at any given
- time. The Proxy remains valid until all references to it are
- released.
-
- * ace/config-win32-common.h: Removed NOMINMAX define. The min/max
- stuff is needed for MFC and CString classes and, since we require
- ACE includes to come before system includes, adding NOMINMAX in all
- cases makes life very hard for these users.
-
- * ace/OS_NS_stdlib.cpp (mkstemp_emulation): Don't try the
- std::numeric_limits<char>::max() call if 'max' is a macro. Use the
- older hard-coded 127 instead.
+ * ace/Asynch_IO.{h cpp}:
+ * ace/Asynch_IO_Impl.h:
+ * ace/POSIX_Asynch_IO.{h cpp}:
+ * ace/POSIX_Proactor.{h cpp}:
+ * ace/Proactor.{h cpp}:
+ * ace/Proactor_Impl.h:
+ * ace/WIN32_Asynch_IO.{h cpp}:
+ * ace/WIN32_Proactor.{h cpp}: All methods that accepted an ACE_Handler
+ below the user-accessed methods were changed to accept an
+ ACE_Handler::Proxy_Ptr instead. The ACE_Handler class has a new
+ Proxy_Ptr typedef which is an ACE_Refcounted_Auto_Ptr for
+ a Proxy class. When an ACE_Handler is created, it allocates a
+ Proxy to refer to itself. The Proxy carries a pointer to the
+ ACE_Handler it proxies for in lower levels of the framework.
+ When the ACE_Handler is destroyed, it clears the ACE_Handler
+ pointer in the proxy.
+ Any part of the framework that dispatches completions gets the
+ ACE_Handler pointer from the proxy and only dispatches if the
+ pointer is not 0. This allows ACE_Handlers to be deleted while
+ operations may be outstanding, a previously vexing issue since one
+ can never be sure how many operations are outstanding at any given
+ time. The Proxy remains valid until all references to it are
+ released.
+
+ * ace/config-win32-common.h: Removed NOMINMAX define. The min/max
+ stuff is needed for MFC and CString classes and, since we require
+ ACE includes to come before system includes, adding NOMINMAX in all
+ cases makes life very hard for these users.
+
+ * ace/OS_NS_stdlib.cpp (mkstemp_emulation): Don't try the
+ std::numeric_limits<char>::max() call if 'max' is a macro. Use the
+ older hard-coded 127 instead.
Tue Feb 15 14:33:18 2005 J.T. Conklin <jtc@acorntoolworks.com>
- * examples/RMCast/Send_Msg/Makefile.am:
- * examples/TMCast/Member/Makefile.am:
+ * examples/RMCast/Send_Msg/Makefile.am:
+ * examples/TMCast/Member/Makefile.am:
- Regenerated.
+ Regenerated.
- * examples/RMCast/Send_Msg/Receiver.cpp:
- * examples/RMCast/Send_Msg/Sender.cpp:
- * examples/TMCast/Member/member.cpp:
+ * examples/RMCast/Send_Msg/Receiver.cpp:
+ * examples/RMCast/Send_Msg/Sender.cpp:
+ * examples/TMCast/Member/member.cpp:
- Changed <protocols/ace/*.h> to <ace/*.h> so headers are
- #included the same regardless of whether they're in the
- source tree or installed.
+ Changed <protocols/ace/*.h> to <ace/*.h> so headers are
+ #included the same regardless of whether they're in the
+ source tree or installed.
- * examples/TMCast/Member/Member.mpc:
+ * examples/TMCast/Member/Member.mpc:
- Add exename definition so executable is actually built.
+ Add exename definition so executable is actually built.
Tue Feb 15 16:15:28 2005 Steve Huston <shuston@riverace.com>
- * examples/RMCast/Receiver.cpp:
- * examples/RMCast/Sender.cpp:
- * examples/TMCast/Member/member.cpp: Corrected location of includes
- after they moved.
+ * examples/RMCast/Receiver.cpp:
+ * examples/RMCast/Sender.cpp:
+ * examples/TMCast/Member/member.cpp: Corrected location of includes
+ after they moved.
Tue Feb 15 13:34:42 2005 J.T. Conklin <jtc@acorntoolworks.com>
- * Makefile.am:
+ * Makefile.am:
- Move examples until after protocols in SUBDIRS.
+ Move examples until after protocols in SUBDIRS.
Tue Feb 15 13:32:15 2005 J.T. Conklin <jtc@acorntoolworks.com>
- * configure.ac:
+ * configure.ac:
- Configure moved RMCast and TMCast libraries.
+ Configure moved RMCast and TMCast libraries.
- * bin/MakeProjectCreator/config/rmcast.mpb:
+ * bin/MakeProjectCreator/config/rmcast.mpb:
- Removed "requires += rmcast". The RMCast library is now built
- unconditionally.
+ Removed "requires += rmcast". The RMCast library is now built
+ unconditionally.
- * bin/MakeProjectCreator/config/rmcast.mpb:
- * bin/MakeProjectCreator/config/tmcast.mpb:
+ * bin/MakeProjectCreator/config/rmcast.mpb:
+ * bin/MakeProjectCreator/config/tmcast.mpb:
- Append $(ACE_ROOT)/protocols to includes.
+ Append $(ACE_ROOT)/protocols to includes.
Tue Feb 15 21:27:25 2005 Olli Savia <ops@iki.fi>
@@ -453,7 +489,7 @@ Fri Feb 11 13:55:47 2005 J.T. Conklin <jtc@acorntoolworks.com>
* m4/config_h.m4:
Define ACE_HAS_ICMP_SUPPORT if host supports raw sockets.
- This fixes bugzilla id [2039].
+ This fixes bugzilla id [2039].
Fri Feb 11 21:33:37 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
diff --git a/ace/OS_NS_stdlib.inl b/ace/OS_NS_stdlib.inl
index ce524255e41..3373a706c24 100644
--- a/ace/OS_NS_stdlib.inl
+++ b/ace/OS_NS_stdlib.inl
@@ -8,6 +8,12 @@
#include "ace/os_include/os_errno.h"
#include "ace/os_include/os_search.h"
+#if defined(ACE_WCHAR_IN_STD_NAMESPACE)
+# define ACE_WCHAR_STD_NAMESPACE std
+#else
+# define ACE_WCHAR_STD_NAMESPACE ACE_STD_NAMESPACE
+#endif /* ACE_WCHAR_IN_STD_NAMESPACE */
+
// Doesn't need a macro since it *never* returns!
ACE_INLINE void
@@ -435,7 +441,7 @@ ACE_OS::strtod (const char *s, char **endptr)
ACE_INLINE double
ACE_OS::strtod (const wchar_t *s, wchar_t **endptr)
{
- return ACE_STD_NAMESPACE::wcstod (s, endptr);
+ return ACE_WCHAR_STD_NAMESPACE::wcstod (s, endptr);
}
#endif /* ACE_HAS_WCHAR && !ACE_LACKS_WCSTOD */
@@ -453,7 +459,7 @@ ACE_OS::strtol (const char *s, char **ptr, int base)
ACE_INLINE long
ACE_OS::strtol (const wchar_t *s, wchar_t **ptr, int base)
{
- return ACE_STD_NAMESPACE::wcstol (s, ptr, base);
+ return ACE_WCHAR_STD_NAMESPACE::wcstol (s, ptr, base);
}
#endif /* ACE_HAS_WCHAR && !ACE_LACKS_WCSTOL */
@@ -471,7 +477,7 @@ ACE_OS::strtoul (const char *s, char **ptr, int base)
ACE_INLINE unsigned long
ACE_OS::strtoul (const wchar_t *s, wchar_t **ptr, int base)
{
- return ACE_STD_NAMESPACE::wcstoul (s, ptr, base);
+ return ACE_WCHAR_STD_NAMESPACE::wcstoul (s, ptr, base);
}
#endif /* ACE_HAS_WCHAR && !ACE_LACKS_WCSTOUL */
diff --git a/ace/config-sunos5.7.h b/ace/config-sunos5.7.h
index 01ad4313c11..b968963154d 100644
--- a/ace/config-sunos5.7.h
+++ b/ace/config-sunos5.7.h
@@ -42,6 +42,9 @@
#elif defined (__KCC)
typedef unsigned long long uint64_t;
+#elif defined (__SUNPRO_CC) && (__SUNPRO_CC <= 0x530)
+ // Wide character methods are in std:: when using SunCC 5.3
+# define ACE_WCHAR_IN_STD_NAMESPACE
#endif /* __GNUG__ || ghs || __KCC */
// SunOS 5.7 supports SCHED_FIFO and SCHED_RR, as well as SCHED_OTHER.
diff --git a/ace/config-sunos5.8.h b/ace/config-sunos5.8.h
index 1a2595ad992..423fb1de7c4 100644
--- a/ace/config-sunos5.8.h
+++ b/ace/config-sunos5.8.h
@@ -11,6 +11,8 @@
// #include the SunOS 5.7 config, then add any SunOS 5.8 updates below.
#include "ace/config-sunos5.7.h"
+#undef ACE_WCHAR_IN_STD_NAMESPACE
+
// This may be true for versions prior to Solaris 8 as well, but I don't
// have any to try it on.
#if !defined (ACE_HAS_TIMEZONE)
diff --git a/bin/PerlACE/Process_Unix.pm b/bin/PerlACE/Process_Unix.pm
index f6d973fdad0..64ae0b204fb 100644
--- a/bin/PerlACE/Process_Unix.pm
+++ b/bin/PerlACE/Process_Unix.pm
@@ -224,6 +224,9 @@ sub Spawn ()
$cmdline = "$executable $orig_cmdline";
}
+ elsif (defined $ENV{'ACE_TEST_WINDOW'}) {
+ $cmdline = $ENV{'ACE_TEST_WINDOW'} . ' ' . $self->CommandLine();
+ }
else {
$executable = $self->Executable();
$cmdline = $self->CommandLine();
@@ -237,6 +240,9 @@ sub Spawn ()
}
elsif (defined $self->{PROCESS}) {
#child here
+ if (defined $ENV{'ACE_TEST_VERBOSE'}) {
+ print "$cmdline\n";
+ }
exec $cmdline;
die "ERROR: exec failed for <" . $cmdline . ">";
}
@@ -353,7 +359,7 @@ sub Kill ()
{
my $self = shift;
- if ($self->{RUNNING}) {
+ if ($self->{RUNNING} && !defined $ENV{'ACE_TEST_WINDOW'}) {
kill ('KILL', $self->{PROCESS});
waitpid ($self->{PROCESS}, 0);
$self->check_return_value ($?);
diff --git a/bin/PerlACE/Process_Win32.pm b/bin/PerlACE/Process_Win32.pm
index d83f333e118..96afbb18934 100644
--- a/bin/PerlACE/Process_Win32.pm
+++ b/bin/PerlACE/Process_Win32.pm
@@ -244,10 +244,17 @@ sub Spawn ()
my $pocket_device_opts = $ENV{"ACE_PCE_DEVICE"};
$cmdline = "cmd /C start /B /WAIT $self->{WINCE_CTL} $pocket_device_opts -m NAME=start_test.cmd;WAIT=401000; -e"
}
+ elsif (defined $ENV{'ACE_TEST_WINDOW'}) {
+ $executable = $ENV{'ACE_TEST_WINDOW'};
+ $cmdline = $self->Executable () . ' ' . $self->CommandLine();
+ }
else {
$executable = $self->Executable ();
$cmdline = $self->CommandLine ();
}
+ if (defined $ENV{'ACE_TEST_VERBOSE'}) {
+ print "$executable $cmdline\n";
+ }
Win32::Process::Create ($self->{PROCESS},
$executable,
$cmdline,
@@ -311,7 +318,7 @@ sub Kill ()
{
my $self = shift;
- if ($self->{RUNNING}) {
+ if ($self->{RUNNING} && !defined $ENV{'ACE_TEST_WINDOW'}) {
Win32::Process::Kill ($self->{PROCESS}, -1);
}
diff --git a/examples/C++NPv2/C++NPv2.mpc b/examples/C++NPv2/C++NPv2.mpc
index d7f570155eb..ca1b40b4034 100644
--- a/examples/C++NPv2/C++NPv2.mpc
+++ b/examples/C++NPv2/C++NPv2.mpc
@@ -1,10 +1,19 @@
// -*- MPC -*-
// $Id$
+// The specific section for gnuace is here to avoid problems
+// with parallel builds. Since the libraries in question share source
+// files, we need to ensure that one of them is built before all others.
+// Also, a specific section was used because you can't set build order
+// without setting a build dependency within vc6 and the like.
+
project(*AC_CLD) : acelib, ssl {
avoids += uses_wchar
sharedname = AC_CLD
dynamicflags = AC_CLD_BUILD_DLL
+ specific(gnuace) {
+ after += *CLD
+ }
Source_Files {
AC_Client_Logging_Daemon.cpp
Logging_Handler.cpp
@@ -61,7 +70,10 @@ project(*Reactor_Log_Server) : aceexe {
project(*Select_Reactor_Log_Server) : aceexe {
avoids += uses_wchar
- exename = select_reactor_loggin_server
+ exename = select_reactor_logging_server
+ specific(gnuace) {
+ after += *Reactor_Log_Server
+ }
Source_Files {
Logging_Acceptor.cpp
Logging_Event_Handler.cpp
@@ -75,6 +87,9 @@ project(*SLD) : acelib {
avoids += uses_wchar
sharedname = SLD
dynamicflags = SLD_BUILD_DLL
+ specific(gnuace) {
+ after += *CLD
+ }
Source_Files {
SLD.cpp
Logging_Acceptor.cpp
@@ -87,6 +102,9 @@ project(*SLDex) : acelib {
avoids += uses_wchar
sharedname = SLDex
dynamicflags = SLDEX_BUILD_DLL
+ specific(gnuace) {
+ after += *CLD
+ }
Source_Files {
Logging_Acceptor.cpp
Logging_Event_Handler.cpp
@@ -108,6 +126,9 @@ project(*SR_Configurable_Log_Server) : aceexe {
project(*TP_Reactor_Log_Server) : aceexe {
avoids += uses_wchar
exename = tp_reactor_logging_server
+ specific(gnuace) {
+ after += *Reactor_Log_Server
+ }
Source_Files {
Logging_Acceptor.cpp
Logging_Event_Handler.cpp
@@ -121,6 +142,9 @@ project(*TPCLS) : acelib, ssl {
avoids += uses_wchar
sharedname = TPCLS
dynamicflags = TPCLS_BUILD_DLL
+ specific(gnuace) {
+ after += *CLD
+ }
Source_Files {
TPC_Logging_Server.cpp
Logging_Handler.cpp
@@ -131,6 +155,9 @@ project(*TPLS) : acelib {
avoids += uses_wchar
sharedname = TPLS
dynamicflags = TPLS_BUILD_DLL
+ specific(gnuace) {
+ after += *CLD
+ }
Source_Files {
Logging_Acceptor.cpp
Logging_Event_Handler.cpp
@@ -142,6 +169,9 @@ project(*TPLS) : acelib {
project(*WFMO_Reactor_Log_Server) : aceexe, wfmo {
avoids += uses_wchar
exename = wfmo_reactor_logging_server
+ specific(gnuace) {
+ after += *Reactor_Log_Server
+ }
Source_Files {
Logging_Acceptor.cpp
Logging_Event_Handler.cpp
diff --git a/examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFCDlg.cpp b/examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFCDlg.cpp
index b319cb5d8d9..ec014f9d9eb 100644
--- a/examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFCDlg.cpp
+++ b/examples/Log_Msg/Log_Msg_MFC/Log_Msg_MFCDlg.cpp
@@ -105,6 +105,7 @@ BOOL CLog_Msg_MFCDlg::OnInitDialog()
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
+#if !defined (_WIN32_WCE)
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
@@ -116,6 +117,7 @@ BOOL CLog_Msg_MFCDlg::OnInitDialog()
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
+#endif /* !_WIN32_WCE */
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
@@ -150,8 +152,6 @@ void CLog_Msg_MFCDlg::OnPaint()
{
CPaintDC dc(this); // device context for painting
- SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
-
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
diff --git a/include/makeinclude/platform_g++_common.GNU b/include/makeinclude/platform_g++_common.GNU
index 78cb5809e5b..4f2e30c9db4 100644
--- a/include/makeinclude/platform_g++_common.GNU
+++ b/include/makeinclude/platform_g++_common.GNU
@@ -96,7 +96,7 @@ ifeq ($(shared_libs), 1)
ifeq ($(GNU_LD),1)
# Make sure this version of ld supports the -E option.
ifneq ($(mingw32),1)
- LD_EXPORT_DEFINED := $(shell sh -c '$(LD_FOR_VERSION_TEST) -E 2>&1 | grep -i -e "option" -e "flag" /dev/null; echo $$?')
+ LD_EXPORT_DEFINED := $(shell sh -c '$(LD_FOR_VERSION_TEST) -E 2>&1 | egrep -i "(option|flag)" /dev/null; echo $$?')
else
LD_EXPORT_DEFINED := $(shell $(LD_FOR_VERSION_TEST) -E 2>&1 | grep -c -i -e '(option|flag)')
ifeq ($(LD_EXPORT_DEFINED),0)
diff --git a/include/makeinclude/platform_sunos5_sunc++.GNU b/include/makeinclude/platform_sunos5_sunc++.GNU
index 4b5a2f1c3a2..5f02c1b22f7 100644
--- a/include/makeinclude/platform_sunos5_sunc++.GNU
+++ b/include/makeinclude/platform_sunos5_sunc++.GNU
@@ -167,18 +167,10 @@ ifeq ($(templates),)
ifeq (Compilers 4.2,$(findstring Compilers 4.2,$(CC_VERSION)))
templates = explicit
else
- ifeq (C++ 5.3,$(findstring C++ 5.3,$(CC_VERSION)))
- # Set this to automatic if automatic template instantiation works for you.
- templates = explicit
- endif
+ templates = automatic
endif
endif
-# If templates is not set by the rules above, we default to implicit
-ifeq ($(templates),)
- templates = implicit
-endif
-
# Turn on the proper flags for explicit template instantiation.
#
ifeq ($(templates),explicit)