summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Mitz <mitza@ociweb.com>2015-06-16 17:05:30 -0500
committerAdam Mitz <mitza@ociweb.com>2015-06-16 17:05:30 -0500
commitfc89d487bc5d2a165c467cbf2aeac03895736bd7 (patch)
tree51a2b7ae533f8795660e5d3a6be4574a66e47add
parent9347add1c3faf5773eec2373b58e7e2569472254 (diff)
parent78cc1a6348d9e7041dd4179796cc2bcbc56d311b (diff)
downloadATCD-fc89d487bc5d2a165c467cbf2aeac03895736bd7.tar.gz
Merge pull request #99 from mitza-oci/VxWorks7
Added support for VxWorks 7 kernel mode.
-rw-r--r--ACE/ace/CDR_Base.cpp2
-rw-r--r--ACE/ace/OS_NS_unistd.inl4
-rw-r--r--ACE/ace/config-vxworks7.0.h8
-rw-r--r--ACE/include/makeinclude/platform_vxworks7.0.GNU34
4 files changed, 39 insertions, 9 deletions
diff --git a/ACE/ace/CDR_Base.cpp b/ACE/ace/CDR_Base.cpp
index bef9c40e67f..92702361a7a 100644
--- a/ACE/ace/CDR_Base.cpp
+++ b/ACE/ace/CDR_Base.cpp
@@ -843,7 +843,7 @@ ACE_CDR::Fixed ACE_CDR::Fixed::from_integer (ACE_CDR::ULongLong val)
ACE_CDR::Fixed ACE_CDR::Fixed::from_floating (LongDouble val)
{
-#ifdef ACE_OPENVMS
+#if defined ACE_OPENVMS || (defined ACE_VXWORKS && !defined __RTP__)
typedef double BigFloat;
#elif defined NONNATIVE_LONGDOUBLE
typedef LongDouble::NativeImpl BigFloat;
diff --git a/ACE/ace/OS_NS_unistd.inl b/ACE/ace/OS_NS_unistd.inl
index 6bcc6f72547..5bc4e19a300 100644
--- a/ACE/ace/OS_NS_unistd.inl
+++ b/ACE/ace/OS_NS_unistd.inl
@@ -1110,7 +1110,7 @@ ACE_OS::ualarm (useconds_t usecs, useconds_t interval)
#if defined (ACE_HAS_UALARM)
return ::ualarm (usecs, interval);
-#elif !defined (ACE_LACKS_UNIX_SIGNALS)
+#elif !defined (ACE_LACKS_UNIX_SIGNALS) && !defined (ACE_LACKS_ALARM)
ACE_UNUSED_ARG (interval);
# if defined (ACE_VXWORKS) && ACE_VXWORKS >= 0x690 && defined (_WRS_CONFIG_LP64)
return ::alarm (static_cast<unsigned int> (usecs * ACE_ONE_SECOND_IN_USECS));
@@ -1135,7 +1135,7 @@ ACE_OS::ualarm (const ACE_Time_Value &tv,
useconds_t interval =
(tv_interval.sec () * ACE_ONE_SECOND_IN_USECS) + tv_interval.usec ();
return ::ualarm (usecs, interval);
-#elif !defined (ACE_LACKS_UNIX_SIGNALS)
+#elif !defined (ACE_LACKS_UNIX_SIGNALS) && !defined (ACE_LACKS_ALARM)
ACE_UNUSED_ARG (tv_interval);
# if defined (ACE_VXWORKS) && ACE_VXWORKS >= 0x690 && defined (_WRS_CONFIG_LP64)
return ::alarm (static_cast<unsigned int> (tv.sec ()));
diff --git a/ACE/ace/config-vxworks7.0.h b/ACE/ace/config-vxworks7.0.h
index 11057aaff24..a0c45979569 100644
--- a/ACE/ace/config-vxworks7.0.h
+++ b/ACE/ace/config-vxworks7.0.h
@@ -14,6 +14,14 @@
#include "ace/config-vxworks6.9.h"
+#ifndef ACE_LACKS_REGEX_H
+# define ACE_LACKS_REGEX_H
+#endif
+
+#ifndef __RTP__
+# define ACE_LACKS_ALARM
+#endif
+
#include /**/ "ace/post.h"
#endif /* ACE_CONFIG_VXWORKS_7_0_H */
diff --git a/ACE/include/makeinclude/platform_vxworks7.0.GNU b/ACE/include/makeinclude/platform_vxworks7.0.GNU
index 57bb39430d0..e9ec1ee6ec5 100644
--- a/ACE/include/makeinclude/platform_vxworks7.0.GNU
+++ b/ACE/include/makeinclude/platform_vxworks7.0.GNU
@@ -25,8 +25,8 @@
# hosts: linux
# targets: itl_x86
# toolchains: gnu4.3
-# rtp settings: 1
-# libraries: shared
+# rtp settings: 1, 0
+# libraries: shared, static
VXWORKS = 1
CROSS-COMPILE = 1
@@ -85,6 +85,25 @@ ifeq ($(pthread),1)
CPPFLAGS += -DACE_HAS_PTHREADS
endif
+ifeq ($(rtp),0)
+ VSHDIR = $(VDIR)
+
+ ifneq ($(shared_libs_only),1)
+ DKM_LIBS = $(if $(findstring 1,$(static_libs)$(static_libs_only)),$(LDLIBS))
+ endif
+
+ IFILE = $(VDIR)$(notdir $(basename $(1)))
+ define LINK.cc.override
+$(LD) -r -nostdlib -Wl,-X $(LDFLAGS) -o $(call IFILE,$@)_partial.o $(filter %.o,$^) $(DKM_LIBS)
+ $(NM) $(call IFILE,$@)_partial.o | $(MUNCH) > $(call IFILE,$@)_ctdt.c
+ $(COMPILE.cc) -o $(call IFILE,$@)_ctdt.o $(call IFILE,$@)_ctdt.c
+ $(LD) -r -nostdlib -Wl,-X $(LD_SCRIPT_DOWNLOAD) -o $@ $(call IFILE,$@)_ctdt.o $(call IFILE,$@)_partial.o
+ endef
+
+ SOLINK.cc.override = $(LINK.cc.override)
+ CLEANUP_OBJS += $(foreach x,_ctdt.c _ctdt.o _partial.o,$(addsuffix $(x),$(VDIR)$(notdir $(basename $(if $(LIB_NAME),$(VLIB),$(VBIN))))))
+endif
+
ace_vx_mk_dir = $(if $(findstring 1,$(rtp)),$(WIND_USR_MK),$(WIND_KRNL_MK))
include $(ace_vx_mk_dir)/defs.library.mk
@@ -103,8 +122,8 @@ endif
DCFLAGS += -g
DCCFLAGS += -g
-LD = $(CPLUS)
-DLD = $(CPLUS)
+LD = $(CXX)
+DLD = $(LD)
EXEEXT = $(if $(findstring 1,$(rtp)),.vxe,.out)
@@ -113,7 +132,10 @@ SOFLAGS += $(C++_COMPILER) $(OPTION_SHARED_CODE) $(LD_SHARED_LIB) \
$(LD_OPTION_SONAME)
LDFLAGS := $(filter-out -X -N,$(LDFLAGS))
-LDFLAGS += -L$(VSB_DIR)/usr/lib/common$(if $(filter library,$(PRJ_TYPE)),/PIC)
+ifeq ($(rtp),1)
+ LDFLAGS += -L$(VSB_DIR)/usr/lib/common$(if $(filter library,$(PRJ_TYPE)),/PIC -L$(VSB_DIR)/usr/lib/common)
+endif
LIBS += -lstdc++
-LDFLAGS += $(if $(filter 1,$(shared_libs)),$(if $(filter 1,$(static_libs_only)),,$(LD_OPTION_DYNAMIC)))
+build_nonstatic = $(if $(findstring 1,$(shared_libs)$(shared_libs_only)),$(if $(filter 1,$(static_libs_only)),,1))
+LDFLAGS += $(if $(build_nonstatic),$(LD_OPTION_DYNAMIC),-static)