diff options
Diffstat (limited to 'ACE')
-rw-r--r-- | ACE/ace/OS_NS_Thread.cpp | 2 | ||||
-rw-r--r-- | ACE/ace/config-vxworks.h | 12 | ||||
-rw-r--r-- | ACE/ace/config-vxworks21.03.h | 71 | ||||
-rw-r--r-- | ACE/ace/config-vxworks22.03.h | 53 | ||||
-rw-r--r-- | ACE/include/makeinclude/platform_vxworks7.0.GNU | 18 | ||||
-rw-r--r-- | ACE/include/makeinclude/rules.local.GNU | 6 |
6 files changed, 108 insertions, 54 deletions
diff --git a/ACE/ace/OS_NS_Thread.cpp b/ACE/ace/OS_NS_Thread.cpp index 885550619a8..6c866aeea8f 100644 --- a/ACE/ace/OS_NS_Thread.cpp +++ b/ACE/ace/OS_NS_Thread.cpp @@ -5141,7 +5141,7 @@ vx_execae (FUNCPTR entry, char* arg, int prio, int opt, size_t stacksz, ...) if (ret == ACE_VX_TASK_ID_ERROR) return 255; - while( ret > 0 && ::taskIdVerify (ret) != ERROR ) + while( ::taskIdVerify (ret) != ERROR ) ::taskDelay (3 * ::sysClkRateGet ()); // ::taskSpawn () returns TASK_ID_ERROR on failure: return _vx_call_rc instead if diff --git a/ACE/ace/config-vxworks.h b/ACE/ace/config-vxworks.h index e9b35930a27..2239184cc6f 100644 --- a/ACE/ace/config-vxworks.h +++ b/ACE/ace/config-vxworks.h @@ -6,6 +6,10 @@ #define ACE_CONFIG_VXWORKS_H #include /**/ "ace/pre.h" +#if !defined(ACE_VXWORKS_RELEASE) +# define ACE_VXWORKS_RELEASE ACE_VXWORKS +#endif + // If ACE_VXWORKS is not defined try to figure out the VxWorks version #if !defined (ACE_VXWORKS) # include "vxWorks.h" @@ -53,7 +57,13 @@ #elif (ACE_VXWORKS == 0x690) # include "ace/config-vxworks6.9.h" #elif (ACE_VXWORKS == 0x700) -# include "ace/config-vxworks7.0.h" +# if (ACE_VXWORKS_RELEASE == 0x2103) +# include "ace/config-vxworks21.03.h" +# elif (ACE_VXWORKS_RELEASE >= 0x2203) +# include "ace/config-vxworks22.03.h" +# else +# include "ace/config-vxworks7.0.h" +# endif #else # error Unknown or unsupported VxWorks version #endif diff --git a/ACE/ace/config-vxworks21.03.h b/ACE/ace/config-vxworks21.03.h new file mode 100644 index 00000000000..5d5f8489bea --- /dev/null +++ b/ACE/ace/config-vxworks21.03.h @@ -0,0 +1,71 @@ +/* -*- C++ -*- */ +// The following configuration file is designed to work for VxWorks +// 21.03 platforms using one of these compilers: +// 1) The llvm compiler that is shipped with VxWorks 21.03 + +#ifndef ACE_CONFIG_VXWORKS_21_03_H +#define ACE_CONFIG_VXWORKS_21_03_H +#include /**/ "ace/pre.h" + +#include "ace/config-vxworks7.0.h" + +#if defined (__RTP__) +# include "semLibCommon.h" +# define ACE_LACKS_IF_NAMEINDEX +# define ACE_LACKS_FGETWC +#else +# undef ACE_MKDIR_LACKS_MODE +# define ACE_LACKS_GETPID +#endif + +#undef ACE_SIZEOF_WCHAR +#define ACE_SIZEOF_WCHAR 4 + +#define ACE_HAS_SOCKLEN_T + +#undef ACE_LACKS_GETSERVBYNAME +#undef ACE_LACKS_GETPROTOBYNAME +#undef ACE_LACKS_GETPROTOBYNUMBER +#undef ACE_LACKS_GETIPNODEBYADDR +#undef ACE_LACKS_LSTAT +#undef ACE_LACKS_MKFIFO +#undef ACE_LACKS_MKSTEMP +#undef ACE_LACKS_READLINK +#undef ACE_LACKS_REALPATH +#undef ACE_LACKS_PIPE +#undef ACE_LACKS_UMASK +#undef ACE_LACKS_TEMPNAM +#undef ACE_HAS_SIGTIMEDWAIT +#undef ACE_HAS_SIGSUSPEND +#undef ACE_HAS_GETIFADDRS + +#undef ACE_LACKS_SETEGID +#undef ACE_LACKS_SETUID +#undef ACE_LACKS_SETEUID +#undef ACE_LACKS_GETEUID +#undef ACE_LACKS_GETUID +#undef ACE_LACKS_GETEGID +#undef ACE_LACKS_GETGID +#undef ACE_LACKS_SETGID + +#undef ACE_LACKS_SYS_UIO_H +#undef ACE_LACKS_TERMIOS_H +#undef ACE_LACKS_FCNTL +#undef ACE_HAS_CHARPTR_SOCKOPT + +#undef ACE_LACKS_INTPTR_T +#undef ACE_LACKS_INTTYPES_H +#undef ACE_LACKS_STDINT_H +#undef ACE_LACKS_SYS_TIME_H +#undef ACE_LACKS_SYS_SELECT_H +#undef ACE_HAS_SIZET_PTR_ASCTIME_R_AND_CTIME_R +#undef ACE_LACKS_SEARCH_H + +#undef ACE_LACKS_TZSET +#undef ACE_LACKS_ISWCTYPE +#undef ACE_LACKS_ISBLANK + +#undef ACE_LACKS_RAND_R + +#include /**/ "ace/post.h" +#endif /* ACE_CONFIG_VXWORKS_21_03_H */ diff --git a/ACE/ace/config-vxworks22.03.h b/ACE/ace/config-vxworks22.03.h index 3e4ca4c77f5..3b1bfed81b6 100644 --- a/ACE/ace/config-vxworks22.03.h +++ b/ACE/ace/config-vxworks22.03.h @@ -7,58 +7,7 @@ #define ACE_CONFIG_VXWORKS_22_03_H #include /**/ "ace/pre.h" -#include "ace/config-vxworks.h" - -#if !defined (__RTP__) -# undef ACE_MKDIR_LACKS_MODE -# define ACE_LACKS_GETPID -#endif - -#define ACE_HAS_SOCKLEN_T - -#undef ACE_LACKS_GETSERVBYNAME -#undef ACE_LACKS_GETPROTOBYNAME -#undef ACE_LACKS_GETPROTOBYNUMBER -#undef ACE_LACKS_GETIPNODEBYADDR -#undef ACE_LACKS_LSTAT -#undef ACE_LACKS_MKFIFO -#undef ACE_LACKS_MKSTEMP -#undef ACE_LACKS_READLINK -#undef ACE_LACKS_REALPATH -#undef ACE_LACKS_PIPE -#undef ACE_LACKS_UMASK -#undef ACE_LACKS_TEMPNAM -#undef ACE_HAS_SIGTIMEDWAIT -#undef ACE_HAS_SIGSUSPEND -#undef ACE_HAS_GETIFADDRS - -#undef ACE_LACKS_SETEGID -#undef ACE_LACKS_SETUID -#undef ACE_LACKS_SETEUID -#undef ACE_LACKS_GETEUID -#undef ACE_LACKS_GETUID -#undef ACE_LACKS_GETEGID -#undef ACE_LACKS_GETGID -#undef ACE_LACKS_SETGID - -#undef ACE_LACKS_SYS_UIO_H -#undef ACE_LACKS_TERMIOS_H -#undef ACE_LACKS_FCNTL -#undef ACE_HAS_CHARPTR_SOCKOPT - -#undef ACE_LACKS_INTPTR_T -#undef ACE_LACKS_INTTYPES_H -#undef ACE_LACKS_STDINT_H -#undef ACE_LACKS_SYS_TIME_H -#undef ACE_LACKS_SYS_SELECT_H -#undef ACE_HAS_SIZET_PTR_ASCTIME_R_AND_CTIME_R -#undef ACE_LACKS_SEARCH_H - -#undef ACE_LACKS_TZSET -#undef ACE_LACKS_ISWCTYPE -#undef ACE_LACKS_ISBLANK - -#undef ACE_LACKS_RAND_R +#include "ace/config-vxworks21.03.h" #include /**/ "ace/post.h" #endif /* ACE_CONFIG_VXWORKS_22_03_H */ diff --git a/ACE/include/makeinclude/platform_vxworks7.0.GNU b/ACE/include/makeinclude/platform_vxworks7.0.GNU index 4ca47346ccf..8f8e99348d9 100644 --- a/ACE/include/makeinclude/platform_vxworks7.0.GNU +++ b/ACE/include/makeinclude/platform_vxworks7.0.GNU @@ -72,6 +72,10 @@ endif VXWORKS_VERSION_FLAG ?= -DACE_VXWORKS=0x700 CPPFLAGS += $(VXWORKS_VERSION_FLAG) +ifneq ($(WIND_RELEASE_ID), ) + CPPFLAGS += -DACE_VXWORKS_RELEASE=0x$(subst .,,$(WIND_RELEASE_ID)) +endif + ifeq ($(pthread),1) CPPFLAGS += -DACE_HAS_PTHREADS endif @@ -98,6 +102,20 @@ endif ace_vx_mk_dir = $(if $(findstring 1,$(rtp)),$(WIND_USR_MK),$(WIND_KRNL_MK)) include $(ace_vx_mk_dir)/defs.library.mk +ifneq ($(rtp),0) + ## If we are building rtp and using the llvm (clang) compiler, we need to + ## use the linker directly to create shared libraries and executables. + ifeq ($(TOOL),llvm) + LLD = $(__WRS_TOOL_PATH)/ld$(TOOLENV) + define LINK.cc.override +$(LLD) $(LDFLAGS) $(LD_EMULATION) --allow-shlib-undefined -EL $(VSB_DIR)/usr/lib/common/crt0.o -o $@ $(filter %.o,$^) --start-group --as-needed $(LDLIBS) -lc -lc_internal -lllvm -lcplusplus -lllvmcplus -lnet -ldl --end-group + endef + define SOLINK.cc.override +$(LLD) $(LDFLAGS) $(LD_EMULATION) -shared --exclude-libs libc_internal.a -u __init -u __fini -soname="$@" -o $@ $(filter %.o,$^) -lc -lc_internal -lcplusplus -lnet + endef + endif +endif + dkm_libstdcpp ?= $(if $(findstring y,$(_WRS_CONFIG_PRI_diab)),1,0) ifeq ($(dkm_libstdcpp),1) DKM_LIBS += -L$(VSB_DIR)/krnl/gnu_standard --start-group -lstl -lgnucplus --end-group diff --git a/ACE/include/makeinclude/rules.local.GNU b/ACE/include/makeinclude/rules.local.GNU index e562b5acc99..11283525473 100644 --- a/ACE/include/makeinclude/rules.local.GNU +++ b/ACE/include/makeinclude/rules.local.GNU @@ -293,11 +293,17 @@ $(INSMAN)/manl/% \ $(INSMAN)/mann/% : @$(MKDIR) $(@D) ifeq ($(vxworks_ntbuild),1) + ifeq ($(SOVERSION),) + @if not "$(ARCH_SOURCE_DIR)/$(@F)" == "$@" \ + echo $(LN_S) $(ARCH_SOURCE_DIR)/$(@F) $@ && \ + $(LN_S) $(ARCH_SOURCE_DIR)/$(@F) $@ + else @if not exist $@ $(RM) $(@:%.$(SOEXT)$(SOVERSION)=%.$(SOEXT)) && \ $(LN_S) $(ARCH_SOURCE_DIR)/$(@F) $(@:%.$(SOEXT)$(SOVERSION)=%.$(SOEXT)) && \ $(RM) $@ && \ echo $(LN_S) $(ARCH_SOURCE_DIR)/$(@F) $@ && \ $(LN_S) $(ARCH_SOURCE_DIR)/$(@F) $@ + endif #SOVERSION else #not vxworks_ntbuild ifeq ($(firstword $(LN_S)),cp) ifneq ($(SOVERSION),) |