include $(TOPDIR)/rules.mk
PKG_NAME:=iotivity
-PKG_VERSION:=0.9.1
-PKG_RELEASE:=1
-
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL:=https://gerrit.iotivity.org/gerrit/iotivity
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=0.9.1
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
-PKG_MIRROR_MD5SUM:=
+PKG_VERSION:=0.9.2
+PKG_RELEASE=1
+
+PKG_SOURCE:=${PKG_NAME}-${PKG_VERSION}.tar.gz
+PKG_SOURCE_URL:=https://downloads.iotivity.org/${PKG_VERSION}/ \
+ http://mirrors.kernel.org/${PKG_NAME}/${PKG_VERSION}/
+PKG_MD5SUM:=cf32e10a8f355fe1327db98ffc9a6173
PKG_USE_MIPS16:=0
PKG_MAINTAINER:=Hauke Mehrtens <hauke.mehrtens@lantiq.com>
define Package/iotivity
SECTION:=net
CATEGORY:=Network
- DEPENDS:=@!USE_UCLIBC +libpthread +librt +libstdcpp +libuuid
- TITLE:=IoTivity Library
+ DEPENDS:=@!USE_UCLIBC +libpthread +librt +libuuid
+ TITLE:=IoTivity C Library
URL:=https://www.iotivity.org
endef
endef
+define Package/iotivity-cpp
+ SECTION:=net
+ CATEGORY:=Network
+ DEPENDS:=iotivity +libpthread +libstdcpp
+ TITLE:=IoTivity C++ Library
+ URL:=https://www.iotivity.org
+endef
+
+define Package/iotivity-cpp/description
+ IoTivity is a framework for the Internet of Things based on the
+ Open Interconnect Consortium Specification.
+endef
+
+
define Package/iotivity-things-manager-lib
SECTION:=net
CATEGORY:=Network
- DEPENDS:=iotivity
+ DEPENDS:=iotivity +iotivity-cpp +libstdcpp
TITLE:=IoTivity things manager lib
URL:=https://www.iotivity.org
endef
define Package/iotivity-plugin-manager-lib
SECTION:=net
CATEGORY:=Network
- DEPENDS:=iotivity +libexpat
+ DEPENDS:=iotivity +iotivity-cpp +libexpat +boost +boost-system
TITLE:=IoTivity plugin manager lib
URL:=https://www.iotivity.org
endef
define Package/iotivity-mqttclient
SECTION:=net
CATEGORY:=Network
- DEPENDS:=iotivity +iotivity-plugin-manager-lib +boost +boost-system
+ DEPENDS:=iotivity +iotivity-cpp +iotivity-plugin-manager-lib +boost +boost-system
TITLE:=IoTivity mqtt Client
URL:=https://www.iotivity.org
endef
define Package/iotivity-oic-middle
SECTION:=net
CATEGORY:=Network
- DEPENDS:=iotivity
+ DEPENDS:=iotivity +iotivity-cpp
TITLE:=IoTivity OIC Middle
URL:=https://www.iotivity.org
endef
define Package/iotivity-things-manager
SECTION:=net
CATEGORY:=Network
- DEPENDS:=iotivity +iotivity-things-manager-lib
+ DEPENDS:=iotivity +iotivity-cpp +iotivity-things-manager-lib
TITLE:=IoTivity things manager
URL:=https://www.iotivity.org
endef
define Package/iotivity-example-garage
SECTION:=net
CATEGORY:=Network
- DEPENDS:=iotivity
+ DEPENDS:=iotivity +iotivity-cpp
TITLE:=IoTivity Garage example
URL:=https://www.iotivity.org
endef
endef
-PKG_CEREAL_NAME:=cereal
-PKG_CEREAL_VERSION:=7121e91e6ab8c3e6a6516d9d9c3e6804e6f65245
-PKG_CEREAL_SOURCE:=$(PKG_CEREAL_NAME)-$(PKG_CEREAL_VERSION).tar.bz2
-PKG_CEREAL_PROTO:=git
-PKG_CEREAL_SOURCE_URL:=https://github.com/USCiLab/cereal.git
-PKG_CEREAL_SUBDIR:=$(PKG_CEREAL_NAME)
-#PKG_CEREAL_MIRROR_MD5SUM:=?
+PKG_TINYCBOR_NAME:=tinycbor
+PKG_TINYCBOR_VERSION:=3e83c0dc6e55bc73e9a4a7343ab8e06c43127efa
+PKG_TINYCBOR_SOURCE:=$(PKG_TINYCBOR_NAME)-$(PKG_TINYCBOR_VERSION).tar.bz2
+PKG_TINYCBOR_PROTO:=git
+PKG_TINYCBOR_SOURCE_URL:=https://github.com/01org/tinycbor.git
+PKG_TINYCBOR_SUBDIR:=$(PKG_TINYCBOR_NAME)
+#PKG_TINYCBOR_MIRROR_MD5SUM:=?
-define Download/iotivity-cereal
- FILE:=$(PKG_CEREAL_SOURCE)
- URL:=$(PKG_CEREAL_SOURCE_URL)
- PROTO:=$(PKG_CEREAL_PROTO)
- VERSION:=$(PKG_CEREAL_VERSION)
- SUBDIR:=$(PKG_CEREAL_SUBDIR)
- #MIRROR_MD5SUM:=$(PKG_CEREAL_MIRROR_MD5SUM)
+define Download/iotivity-tinycbor
+ FILE:=$(PKG_TINYCBOR_SOURCE)
+ URL:=$(PKG_TINYCBOR_SOURCE_URL)
+ PROTO:=$(PKG_TINYCBOR_PROTO)
+ VERSION:=$(PKG_TINYCBOR_VERSION)
+ SUBDIR:=$(PKG_TINYCBOR_SUBDIR)
+ #MIRROR_MD5SUM:=$(PKG_TINYCBOR_MIRROR_MD5SUM)
endef
-$(eval $(call Download,iotivity-cereal))
+$(eval $(call Download,iotivity-tinycbor))
SCONS_OPTIONS += \
TARGET_TRANSPORT=ALL \
TARGET_ARCH=$(ARCH) \
STAGING_DIR=$(STAGING_DIR) \
+ LOGGING=true \
+ SECURED=1 \
mqttclient examples samples libTGMSDK ConServerApp ConClientApp BootstrapServerApp
ifneq ($(findstring c,$(OPENWRT_VERBOSE)),)
define Build/Prepare
$(call Build/Prepare/Default)
- $(TAR) -C $(PKG_BUILD_DIR)/extlibs/cereal -xjf $(DL_DIR)/$(PKG_CEREAL_SOURCE)
+ $(TAR) -C $(PKG_BUILD_DIR)/extlibs/tinycbor/ -xjf $(DL_DIR)/$(PKG_TINYCBOR_SOURCE)
endef
+
define Build/Configure
(cd $(PKG_BUILD_DIR); \
$(SCONS_VARS) \
define Package/iotivity/install
$(INSTALL_DIR) $(1)/usr/lib
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/liboc.so $(1)/usr/lib/liboc.so
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/liboc_logger.so $(1)/usr/lib/liboc_logger.so
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/liboctbstack.so $(1)/usr/lib/liboctbstack.so
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/liboctbstack.so $(1)/usr/lib/
+endef
+
+define Package/iotivity-cpp/install
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/liboc.so $(1)/usr/lib/
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/liboc_logger.so $(1)/usr/lib/
endef
define Package/iotivity-things-manager-lib/install
$(INSTALL_DIR) $(1)/usr/lib
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/libTGMSDKLibrary.so $(1)/usr/lib/libTGMSDKLibrary.so
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/libTGMSDKLibrary.so $(1)/usr/lib/
endef
define Package/iotivity-plugin-manager-lib/install
$(INSTALL_DIR) $(1)/usr/lib
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/libpmimpl.so $(1)/usr/lib/libpmimpl.so
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/libpmimpl.so $(1)/usr/lib/
endef
define Package/iotivity-mqttclient/install
$(INSTALL_DIR) $(1)/usr/bin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/service/protocol-plugin/sample-app/linux/mqtt/mqttclient $(1)/usr/bin/mqttclient
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/service/protocol-plugin/sample-app/linux/mqtt/mqttclient $(1)/usr/bin/
endef
define Package/iotivity-oic-middle/install
$(INSTALL_DIR) $(1)/usr/bin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/examples/OICMiddle/OICMiddle $(1)/usr/bin/OICMiddle
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/examples/OICMiddle/OICMiddle $(1)/usr/bin/
endef
define Package/iotivity-things-manager/install
$(INSTALL_DIR) $(1)/usr/bin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/service/things-manager/sampleapp/linux/configuration/bootstrapserver $(1)/usr/bin/bootstrapserver
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/service/things-manager/sampleapp/linux/configuration/con-server $(1)/usr/bin/con-server
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/service/things-manager/sampleapp/linux/configuration/con-client $(1)/usr/bin/con-client
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/service/things-manager/sampleapp/linux/configuration/bootstrapserver $(1)/usr/bin/
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/service/things-manager/sampleapp/linux/configuration/con-server $(1)/usr/bin/
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/service/things-manager/sampleapp/linux/configuration/con-client $(1)/usr/bin/
endef
define Package/iotivity-example-garage/install
$(INSTALL_DIR) $(1)/usr/bin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/resource/examples/garageclient $(1)/usr/bin/garageclient
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/resource/examples/garageserver $(1)/usr/bin/garageserver
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/resource/examples/garageclient $(1)/usr/bin/
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/resource/examples/garageserver $(1)/usr/bin/
endef
$(eval $(call BuildPackage,iotivity))
+$(eval $(call BuildPackage,iotivity-cpp))
$(eval $(call BuildPackage,iotivity-things-manager-lib))
$(eval $(call BuildPackage,iotivity-plugin-manager-lib))
$(eval $(call BuildPackage,iotivity-mqttclient))
--- a/resource/SConscript
+++ b/resource/SConscript
-@@ -61,7 +61,7 @@ if target_os == 'linux':
+@@ -67,7 +67,7 @@ if target_os == 'linux':
SConscript('csdk/stack/samples/linux/secure/SConscript')
# Build C/C++ unit tests
+ # SConscript('unit_tests.scons')
elif target_os == 'darwin':
- # Build linux samples for now.
+ env.Command('../../out/darwin/iotivity-csdk.framework',None,src_dir + '/tools/darwin/mkfwk_osx.sh')
+--- a/service/resource-encapsulation/SConscript
++++ b/service/resource-encapsulation/SConscript
+@@ -101,7 +101,7 @@ SConscript('examples/SConscript')
+ ######################################################################
+ # Build UnitTests Resource Client , resourceCache and resourceBroker
+ ################################################ ######################
+-SConscript('unittests/SConscript')
+-SConscript('src/resourceCache/unittests/SConscript')
+-SConscript('src/resourceBroker/unittest/SConscript')
++#SConscript('unittests/SConscript')
++#SConscript('src/resourceCache/unittests/SConscript')
++#SConscript('src/resourceBroker/unittest/SConscript')
+
--- a/build_common/SConscript
+++ b/build_common/SConscript
-@@ -106,6 +106,26 @@ tc_set_msg = '''
+@@ -129,6 +129,26 @@ tc_set_msg = '''
* cause inexplicable errors. *
*******************************************************************************
'''
+
if env.get('VERBOSE') == False:
env['CCCOMSTR'] = "Compiling $TARGET"
- env['CXXCOMSTR'] = "Compiling $TARGET"
+ env['SHCCCOMSTR'] = "Compiling $TARGET"
+++ /dev/null
-From 62c0a14ccd333d0e55fc431f151253a72a2836d0 Mon Sep 17 00:00:00 2001
-From: Hauke Mehrtens <hauke.mehrtens@lantiq.com>
-Date: Mon, 8 Jun 2015 21:57:52 +0200
-Subject: [PATCH] libcoap: fix big endian problems
-
-When this is build for a big endian Linux system WORDS_BIGENDIAN was
-not be set. This patch sets it correctly so it will not generate broken
-code on big endian systems.
-This was tested on MIPS BE 32 Bit.
-
-Change-Id: I59dd07d8020c553318e2aa43894a2185fe9b9286
-Signed-off-by: Hauke Mehrtens <hauke.mehrtens@lantiq.com>
-Reviewed-on: https://gerrit.iotivity.org/gerrit/1219
-Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
-Reviewed-by: Erich Keane <erich.keane@intel.com>
----
- resource/csdk/connectivity/lib/libcoap-4.1.1/config.h | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
---- a/resource/csdk/connectivity/lib/libcoap-4.1.1/config.h
-+++ b/resource/csdk/connectivity/lib/libcoap-4.1.1/config.h
-@@ -135,8 +135,8 @@
- # define WORDS_BIGENDIAN 1
- # endif
- #else
--# ifndef WORDS_BIGENDIAN
--/* # undef WORDS_BIGENDIAN */
-+# if defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
-+# define WORDS_BIGENDIAN 1
- # endif
- #endif
-
+++ /dev/null
-From 7189bc088f558945972d82a9a3427001cb20000a Mon Sep 17 00:00:00 2001
-From: Hauke Mehrtens <hauke.mehrtens@lantiq.com>
-Date: Mon, 8 Jun 2015 22:03:19 +0200
-Subject: [PATCH] cdsk: fix big endian problem
-
-Without this patch the client will endianes swap the port number when
-sending the detailed request after it got the answer for his multicast
-get. Use the same method for storing the port number in the address
-array in ever part of the code and do not use memcpy and manual
-bytewise coping mixed over the code. memcpy was used once and byte wise
-copy was used twice so I choose the majority.
-This was tested on MIPS BE 32 Bit.
-
-Change-Id: Ib486171987004d10209d2bbf6b1d9ada75235651
-Signed-off-by: Hauke Mehrtens <hauke.mehrtens@lantiq.com>
-Reviewed-on: https://gerrit.iotivity.org/gerrit/1220
-Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
-Reviewed-by: Doug Hudson <douglas.hudson@intel.com>
-Reviewed-by: Erich Keane <erich.keane@intel.com>
----
- resource/csdk/stack/src/ocstack.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
---- a/resource/csdk/stack/src/ocstack.c
-+++ b/resource/csdk/stack/src/ocstack.c
-@@ -723,7 +723,8 @@ OCStackResult UpdateResponseAddr(OCDevAd
- address->addr[i] = atoi(tok);
- }
-
-- memcpy(&address->addr[4], &endPoint->addressInfo.IP.port, sizeof(uint16_t));
-+ address->addr[4] = (uint8_t)endPoint->addressInfo.IP.port;
-+ address->addr[5] = (uint8_t)(endPoint->addressInfo.IP.port >> 8);
- ret = OC_STACK_OK;
-
- exit:
+++ /dev/null
---- a/service/protocol-plugin/sample-app/linux/SConscript
-+++ b/service/protocol-plugin/sample-app/linux/SConscript
-@@ -41,7 +41,7 @@ if target_os not in ['windows', 'winrt']
-
- sample_env.AppendUnique(LIBS = ['oc', 'oc_logger', 'octbstack',
- 'connectivity_abstraction', 'coap',
-- 'ppm', 'pmimpl', 'dl'])
-+ 'ppm', 'boost_system', 'pmimpl', 'dl'])
-
- if env.get('SECURED') == '1':
- sample_env.AppendUnique(LIBS = ['tinydtls'])
+++ /dev/null
---- a/service/things-manager/sampleapp/linux/configuration/SConscript
-+++ b/service/things-manager/sampleapp/linux/configuration/SConscript
-@@ -57,7 +57,7 @@ conserver = linux_sample_env.Program('co
- conclient = linux_sample_env.Program('con-client', 'con-client.cpp')
- bootstrapserver = linux_sample_env.Program('bootstrapserver', 'bootstrapserver.cpp')
- Alias("ConServerApp", conserver)
--Alias("ConCleintApp", conclient)
-+Alias("ConClientApp", conclient)
- Alias("BootstrapServerApp", bootstrapserver)
- env.AppendTarget('ConServerApp')
- env.AppendTarget('ConClientApp')
+++ /dev/null
---- a/resource/csdk/stack/include/octypes.h
-+++ b/resource/csdk/stack/include/octypes.h
-@@ -35,9 +35,9 @@ extern "C" {
- //Don't want to expose to application layer that lower level stack is using CoAP.
-
- /// Authority + URI string to prefix well known queries
--#define OC_WELL_KNOWN_QUERY "224.0.1.187:5683/oc/core"
-+#define OC_WELL_KNOWN_QUERY "/oc/core"
- #define OC_MULTICAST_DISCOVERY_URI "/oc/core"
--#define OC_EXPLICIT_DEVICE_DISCOVERY_URI "224.0.1.187:5683/oc/core/d?rt=core.led"
-+#define OC_EXPLICIT_DEVICE_DISCOVERY_URI "/oc/core/d?rt=core.led"
- /// Multicast address and port string to prefix multicast queries
- #define OC_MULTICAST_PREFIX "224.0.1.187:5683"
- /// IP Multicast address to use for multicast requests
--- /dev/null
+From b13839cceaae97d7d23b54586da1ad7ac85ab2b6 Mon Sep 17 00:00:00 2001
+From: Hauke Mehrtens <hauke.mehrtens@lantiq.com>
+Date: Tue, 21 Jul 2015 20:50:39 +0200
+Subject: [PATCH] liboc: add missing depending library
+
+liboc.so depends on liboctbstack.so, liboc_logger.so and pthread, this
+patch adds these dependencies to the build.
+
+Without this the dynamic loader will not automatically load these
+libraries and it could result in unresolved dependencies at runtime.
+
+Change-Id: I971b45669adef31dc9cca719884ebeb74aaf735e
+Signed-off-by: Hauke Mehrtens <hauke.mehrtens@lantiq.com>
+Reviewed-on: https://gerrit.iotivity.org/gerrit/1794
+Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
+Reviewed-by: Erich Keane <erich.keane@intel.com>
+---
+ resource/src/SConscript | 14 ++++++++------
+ 1 file changed, 8 insertions(+), 6 deletions(-)
+
+--- a/resource/src/SConscript
++++ b/resource/src/SConscript
+@@ -40,18 +40,20 @@ oclib_env.AppendUnique(CPPPATH = [
+ '../csdk/connectivity/lib/libcoap-4.1.1'
+ ])
+
++oclib_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
++
++oclib_env.AppendUnique(LIBS = ['octbstack', 'oc_logger'])
++
+ target_os = env.get('TARGET_OS')
++if target_os == 'linux':
++ oclib_env.AppendUnique(LIBS = ['pthread'])
++
+ if target_os not in ['windows', 'winrt']:
+ oclib_env.AppendUnique(CXXFLAGS = ['-std=c++0x', '-Wall', '-fPIC'])
+
+ if target_os == 'android':
+ oclib_env.AppendUnique(CXXFLAGS = ['-frtti', '-fexceptions'])
+- oclib_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
+- oclib_env.AppendUnique(LIBS = ['octbstack', 'oc_logger', 'boost_thread', 'gnustl_shared', 'log'])
+-
+-if target_os in ['darwin', 'ios']:
+- oclib_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
+- oclib_env.AppendUnique(LIBS = ['octbstack', 'oc_logger'])
++ oclib_env.AppendUnique(LIBS = ['boost_thread', 'gnustl_shared', 'log'])
+
+ ######################################################################
+ # Source files and Targets
--- /dev/null
+From 0143dfaa7e6dace845412e97ebbf697d273b0d10 Mon Sep 17 00:00:00 2001
+From: Hauke Mehrtens <hauke.mehrtens@lantiq.com>
+Date: Tue, 21 Jul 2015 22:06:52 +0200
+Subject: [PATCH] things-manager: libTGMSDKLibrary.so: add missing depending
+ library
+
+libTGMSDKLibrary.so also depends on liboc.so, liboctbstack.so and
+pthread, this patch adds these dependencies to the build.
+
+Without this the dynamic loader will not automatically load these
+libraries and it could result in unresolved dependencies at runtime.
+
+Change-Id: I174b38e747be247fc25544db629f8ad2b7eb5ef5
+Signed-off-by: Hauke Mehrtens <hauke.mehrtens@lantiq.com>
+Reviewed-on: https://gerrit.iotivity.org/gerrit/1795
+Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
+Reviewed-by: Uze Choi <uzchoi@samsung.com>
+---
+ service/things-manager/SConscript | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+--- a/service/things-manager/SConscript
++++ b/service/things-manager/SConscript
+@@ -35,14 +35,17 @@ target_os = env.get('TARGET_OS')
+ ######################################################################
+ things_manager_env.AppendUnique(CPPPATH = ['../../extlibs/timer', 'sdk/inc', 'sdk/src'])
+
++things_manager_env.PrependUnique(LIBS = ['oc', 'octbstack'])
++
+ if target_os not in ['windows', 'winrt']:
+ things_manager_env.AppendUnique(CXXFLAGS = ['-std=c++0x', '-Wall'])
+ if target_os != 'android':
+ things_manager_env.AppendUnique(CXXFLAGS = ['-pthread'])
++ things_manager_env.AppendUnique(LIBS = ['pthread'])
+
+ if target_os == 'android':
+ things_manager_env.AppendUnique(CXXFLAGS = ['-frtti', '-fexceptions'])
+- things_manager_env.PrependUnique(LIBS = ['oc', 'octbstack', 'gnustl_shared'])
++ things_manager_env.PrependUnique(LIBS = ['gnustl_shared'])
+
+ ######################################################################
+ # Source files and Targets
--- /dev/null
+From b52307797b91d7448a72874e4da7bed30c27a4f5 Mon Sep 17 00:00:00 2001
+From: Hauke Mehrtens <hauke.mehrtens@lantiq.com>
+Date: Tue, 21 Jul 2015 22:29:14 +0200
+Subject: [PATCH] soft-sensor-manager: libSSMCore.so: add missing depending
+ library
+
+libSSMCore.so also depends on libdl.so, this patch adds these
+dependencies to the build.
+
+Without this the dynamic loader will not automatically load these
+libraries and it could result in unresolved dependencies at runtime.
+
+Change-Id: I76faff46fe96caef75fb6673c7e83d62b15b8489
+Signed-off-by: Hauke Mehrtens <hauke.mehrtens@lantiq.com>
+Reviewed-on: https://gerrit.iotivity.org/gerrit/1796
+Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
+Reviewed-by: Uze Choi <uzchoi@samsung.com>
+---
+ service/soft-sensor-manager/SConscript | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/service/soft-sensor-manager/SConscript
++++ b/service/soft-sensor-manager/SConscript
+@@ -157,7 +157,7 @@ static_libssmcore = ssmcore_env.StaticLi
+
+ ssmcore_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
+ ssmcore_env.AppendUnique(LIBS = ['oc', 'octbstack', 'oc_logger',
+- 'connectivity_abstraction', 'coap'])
++ 'connectivity_abstraction', 'coap', 'dl'])
+
+ shared_libssmcore = ssmcore_env.SharedLibrary(
+ target = 'SSMCore',
--- /dev/null
+From 60b43aed7e479bc6d7252f0dba2542fe7aab9195 Mon Sep 17 00:00:00 2001
+From: Hauke Mehrtens <hauke.mehrtens@lantiq.com>
+Date: Tue, 21 Jul 2015 22:38:02 +0200
+Subject: [PATCH] mqtt-fan: libmosquittopp.so: add missing depending library
+
+libmosquittopp.so also depends on libpthread.so, this patch adds these
+dependencies to the build. In addition it puts the dependency to
+mosquitto to the beginning of the list. This is needed because
+mosquitto is a statically linked lib and it also has unresolved
+symbols, but gcc only searches the dynamic libs defined after the
+static for unresolved symbols in the static lib.
+
+Without this the dynamic loader will not automatically load these
+libraries and it could result in unresolved dependencies at runtime.
+
+Change-Id: I866a46305c31d37cf706b9f2b965e843c35c5667
+Signed-off-by: Hauke Mehrtens <hauke.mehrtens@lantiq.com>
+Reviewed-on: https://gerrit.iotivity.org/gerrit/1797
+Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
+Reviewed-by: Younghyun Joo <yh_.joo@samsung.com>
+Reviewed-by: Uze Choi <uzchoi@samsung.com>
+---
+ .../plugins/mqtt-fan/lib/cpp/SConscript | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+--- a/service/protocol-plugin/plugins/mqtt-fan/lib/cpp/SConscript
++++ b/service/protocol-plugin/plugins/mqtt-fan/lib/cpp/SConscript
+@@ -16,7 +16,10 @@ mosquittopp_env.AppendUnique(CPPPATH = [
+ if target_os not in ['windows', 'winrt']:
+ mosquittopp_env.AppendUnique(CFLAGS = ['-Wall', '-ggdb', '-O2', '-fPIC'])
+
+-mosquittopp_env.AppendUnique(LIBS = ['mosquitto', 'ssl', 'crypto'])
++if target_os == 'linux':
++ mosquittopp_env.AppendUnique(LIBS = ['pthread'])
++
++mosquittopp_env.PrependUnique(LIBS = ['mosquitto', 'ssl', 'crypto'])
+ ######################################################################
+ # Source files and Targets
+ ######################################################################
--- /dev/null
+From d1fb4c055f168e68ffd2d5596eef8d96f6c6cfae Mon Sep 17 00:00:00 2001
+From: Hauke Mehrtens <hauke.mehrtens@lantiq.com>
+Date: Tue, 21 Jul 2015 22:41:09 +0200
+Subject: [PATCH] protocol-plugin: libfanserver_mqtt_plugin.so and
+ liblightserver_mqtt_plugin.so add missing depending library
+
+libfanserver_mqtt_plugin.so and liblightserver_mqtt_plugin.so are also
+depending on liboc.so and libcrypto.so, this patch adds these
+dependencies to the build. In addition it puts the dependency to
+mosquitto to the beginning of the list. This is needed because
+mosquitto is a statically linked lib and it also has unresolved
+symbols, but gcc only searches the dynamic libs defined after the
+static for unresolved symbols in the static lib.
+
+mosquitto was only build as a static linked library so we can use the
+normal LIBS mechanism and it will be statically linked.
+
+Without this the dynamic loader will not automatically load these
+libraries and it could result in unresolved dependencies at runtime.
+
+Change-Id: Ia130827d04bd3bb1a8863fc64d0097a076edc751
+Signed-off-by: Hauke Mehrtens <hauke.mehrtens@lantiq.com>
+Reviewed-on: https://gerrit.iotivity.org/gerrit/1798
+Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
+Reviewed-by: Younghyun Joo <yh_.joo@samsung.com>
+Reviewed-by: Uze Choi <uzchoi@samsung.com>
+---
+ service/protocol-plugin/plugins/SConscript | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+--- a/service/protocol-plugin/plugins/SConscript
++++ b/service/protocol-plugin/plugins/SConscript
+@@ -47,8 +47,7 @@ if target_os == 'android':
+ plugins_env.AppendUnique(CXXFLAGS = ['-frtti', '-fexceptions'])
+ plugins_env.AppendUnique(LIBS = ['gnustl_shared'])
+
+-plugins_env.AppendUnique(LIBS = [File(env.get('BUILD_DIR') + '/libmosquitto.a'),
+- 'mosquitto', 'ssl', 'rt'])
++plugins_env.PrependUnique(LIBS = ['mosquitto', 'ssl', 'crypto', 'rt', 'oc'])
+
+
+ ######################################################################
--- /dev/null
+From 2993af980993ebb70b686b1a521d98d26e85cfc2 Mon Sep 17 00:00:00 2001
+From: Hauke Mehrtens <hauke@hauke-m.de>
+Date: Tue, 21 Jul 2015 20:55:50 +0200
+Subject: [PATCH] resource-manipulation: libserver_builder.so add missing
+ depending library
+
+libserver_builder.so is also depending on liboc.so and
+librcs_common.so, this patch adds these dependencies to the build.
+
+liboctbstack.so is only needed when LOGGING=true is set. Without
+liboctbstack.so libserver_builder.so misses the dependencies to the
+OCLog and OCLogv symbols.
+Add LIBPATH to make sure the libs will be found, this fixes a problem
+in some jenkins tests.
+
+pthread is added two times, once should be enough.
+
+Without this the dynamic loader will not automatically load these
+libraries and it could result in unresolved dependencies at runtime.
+
+Change-Id: I6af126eb4af975b7231d01df922885c7dec5fc56
+Signed-off-by: Hauke Mehrtens <hauke.mehrtens@lantiq.com>
+Reviewed-on: https://gerrit.iotivity.org/gerrit/1799
+Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
+Reviewed-by: Uze Choi <uzchoi@samsung.com>
+---
+ .../src/serverBuilder/SConscript | 11 ++++++-----
+ 1 file changed, 6 insertions(+), 5 deletions(-)
+
+--- a/service/resource-encapsulation/src/serverBuilder/SConscript
++++ b/service/resource-encapsulation/src/serverBuilder/SConscript
+@@ -47,6 +47,8 @@ server_builder_env.AppendUnique(CPPPATH
+
+ server_builder_env.AppendUnique(CPPPATH = [env.get('SRC_DIR')+'/extlibs', 'include'])
+
++server_builder_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
++
+ if target_os not in ['windows', 'winrt']:
+ server_builder_env.AppendUnique(CXXFLAGS = ['-std=c++0x', '-Wall'])
+ if target_os != 'android':
+@@ -56,7 +58,10 @@ if target_os == 'android':
+ server_builder_env.AppendUnique(CXXFLAGS = ['-frtti', '-fexceptions'])
+ server_builder_env.PrependUnique(LIBS = ['gnustl_shared', 'compatibility', 'log'])
+
+-server_builder_env.AppendUnique(LIBS = ['dl'])
++server_builder_env.AppendUnique(LIBS = ['dl', 'oc', 'rcs_common'])
++
++if env.get('LOGGING'):
++ server_builder_env.AppendUnique(LIBS = ['octbstack'])
+
+ if not release:
+ server_builder_env.AppendUnique(CXXFLAGS = ['--coverage'])
+@@ -77,7 +82,6 @@ server_builder_env.InstallTarget([server
+ ######################################################################
+ server_builder_test_env = server_builder_env.Clone();
+
+-server_builder_test_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
+ server_builder_test_env.AppendUnique(CPPPATH = [
+ env.get('SRC_DIR')+'/extlibs/hippomocks-master',
+ gtest_dir + '/include',
+@@ -89,8 +93,6 @@ gtest_main = File(gtest_dir + '/lib/.lib
+
+ server_builder_test_env.PrependUnique(LIBS = [
+ 'rcs_server',
+- 'rcs_common',
+- 'oc',
+ 'octbstack',
+ 'oc_logger',
+ 'connectivity_abstraction',
--- /dev/null
+From c02a2b8ad3efb0b59392b1c2d441e3f7144c1fda Mon Sep 17 00:00:00 2001
+From: Hauke Mehrtens <hauke.mehrtens@lantiq.com>
+Date: Tue, 21 Jul 2015 22:45:40 +0200
+Subject: [PATCH] csdk: remove dependency to liboc_logger.so in c code
+
+The liboc_logger.so is only used by the c++ part and not by the c part,
+remove it from the c only part.
+
+Change-Id: Ib0894974de8ef7150401f02fbd0ea864d1d6f2cd
+Signed-off-by: Hauke Mehrtens <hauke.mehrtens@lantiq.com>
+Reviewed-on: https://gerrit.iotivity.org/gerrit/1801
+Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
+Reviewed-by: Charlie Lenahan <charlie.lenahan@intel.com>
+Reviewed-by: Erich Keane <erich.keane@intel.com>
+---
+ resource/csdk/connectivity/test/SConscript | 3 ---
+ .../samples/linux/SimpleClientServer/SConscript | 2 +-
+ .../csdk/stack/samples/linux/secure/SConscript | 2 +-
+ 3 files changed, 2 insertions(+), 5 deletions(-)
+
+--- a/resource/csdk/connectivity/test/SConscript
++++ b/resource/csdk/connectivity/test/SConscript
+@@ -58,9 +58,6 @@ target_os = env.get('TARGET_OS')
+ if target_os not in ['arduino', 'darwin', 'ios']:
+ catest_env.AppendUnique(LIBS=['rt'])
+
+-if target_os != 'darwin':
+- catest_env.PrependUnique(LIBS = ['oc_logger'])
+-
+ if env.get('SECURED') == '1':
+ catest_env.AppendUnique(LIBS = ['tinydtls'])
+
+--- a/resource/csdk/stack/samples/linux/SimpleClientServer/SConscript
++++ b/resource/csdk/stack/samples/linux/SimpleClientServer/SConscript
+@@ -41,7 +41,7 @@ samples_env.AppendUnique(LIBPATH = [env.
+ if target_os in ['darwin', 'ios']:
+ samples_env.PrependUnique(LIBS = ['m','octbstack', 'ocsrm', 'connectivity_abstraction','coap' ])
+ elif target_os not in ['arduino']:
+- samples_env.PrependUnique(LIBS = ['m', 'octbstack', 'ocsrm', 'oc_logger', 'connectivity_abstraction', 'coap'])
++ samples_env.PrependUnique(LIBS = ['m', 'octbstack', 'ocsrm', 'connectivity_abstraction', 'coap'])
+ samples_env.AppendUnique(LIBS = ['rt'])
+
+ if env.get('SECURED') == '1':
+--- a/resource/csdk/stack/samples/linux/secure/SConscript
++++ b/resource/csdk/stack/samples/linux/secure/SConscript
+@@ -41,7 +41,7 @@ if target_os not in ['windows', 'winrt']
+ samples_env.AppendUnique(LIBS = ['-lpthread'])
+
+ samples_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
+-samples_env.PrependUnique(LIBS = ['octbstack', 'm', 'oc_logger', 'connectivity_abstraction', 'coap'])
++samples_env.PrependUnique(LIBS = ['octbstack', 'm', 'connectivity_abstraction', 'coap'])
+ if env.get('SECURED') == '1':
+ samples_env.AppendUnique(LIBS = ['tinydtls'])
+
--- /dev/null
+From 32e39b18fb4fd01408898a0ccba751f0033800c7 Mon Sep 17 00:00:00 2001
+From: Hauke Mehrtens <hauke@hauke-m.de>
+Date: Wed, 22 Jul 2015 23:05:19 +0200
+Subject: [PATCH] csdk: libconnectivity_abstraction.so: add missing depending
+ library
+
+libconnectivity_abstractionso depends on libcoap.so and librt.so when
+build as shared lib, which is the case for the Tizen build. This patch
+adds these dependencies to the build.
+
+Without this the dynamic loader will not automatically load these
+libraries and it could result in unresolved dependencies at runtime.
+
+Change-Id: Ib972be2b766d7fbccac9b246ae6f11e6182af94c
+Signed-off-by: Hauke Mehrtens <hauke.mehrtens@lantiq.com>
+Reviewed-on: https://gerrit.iotivity.org/gerrit/1825
+Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
+Reviewed-by: Uze Choi <uzchoi@samsung.com>
+Tested-by: Uze Choi <uzchoi@samsung.com>
+---
+ resource/csdk/connectivity/src/SConscript | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+--- a/resource/csdk/connectivity/src/SConscript
++++ b/resource/csdk/connectivity/src/SConscript
+@@ -108,6 +108,11 @@ if 'BLE' in ca_transport:
+ print "Include path is %s" % env.get('CPPPATH')
+ print "Files path is %s" % env.get('CA_SRC')
+ if ca_os in ['android', 'tizen']:
++ env.AppendUnique(LIBS = ['coap'])
++ if env.get('SECURED') == '1':
++ env.AppendUnique(LIBS = ['tinydtls'])
++ if ca_os != 'android':
++ env.AppendUnique(LIBS = ['rt'])
+ calib = env.SharedLibrary('connectivity_abstraction', env.get('CA_SRC'))
+ else:
+ calib = env.StaticLibrary('connectivity_abstraction', env.get('CA_SRC'))
--- /dev/null
+From 2533c88e18de689dbb26cfd4d585b1a991533c76 Mon Sep 17 00:00:00 2001
+From: Hauke Mehrtens <hauke.mehrtens@lantiq.com>
+Date: Tue, 21 Jul 2015 22:00:18 +0200
+Subject: [PATCH] build: make build fail if unresolved symbols found
+
+gcc links shared libs also when there are still some unresolved
+symbols, you have to specify it explicitly to make it fail in such
+cases. I think a compiler should fail in such cases otherwise
+someone will add some not intended dependencies or some existing
+dependencies are not getting declared.
+
+This patch makes gcc fail in such cases. I have only activated this for
+libs build in a Linux build and explicitly deactivates it for windows
+(does this even work at all?) This should be build tested with Android
+also.
+
+This was build tested for Linux and Android.
+
+This patch depends on some other patches I send which are fixing the
+problems I found with this change.
+
+Change-Id: I9ab79896ca2e86e9226cd9b39060a0763ef89694
+Signed-off-by: Hauke Mehrtens <hauke.mehrtens@lantiq.com>
+Reviewed-on: https://gerrit.iotivity.org/gerrit/1802
+Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
+Reviewed-by: Erich Keane <erich.keane@intel.com>
+Reviewed-by: Hun-je Yeon <hunje.yeon@samsung.com>
+Reviewed-by: Uze Choi <uzchoi@samsung.com>
+---
+ extlibs/expat/SConscript | 3 +++
+ .../csdk/connectivity/samples/android/SConscript | 1 +
+ resource/csdk/connectivity/src/SConscript | 3 +++
+ resource/oc_logger/SConscript | 3 +++
+ resource/src/SConscript | 3 +++
+ service/notification-manager/SConscript | 3 +++
+ service/protocol-plugin/plugin-manager/SConscript | 4 ++++
+ .../plugin-manager/src/Android/jni/SConscript | 1 +
+ service/protocol-plugin/plugins/SConscript | 3 +++
+ .../plugins/mqtt-fan/lib/cpp/SConscript | 3 +++
+ .../resource-manipulation/src/common/SConscript | 5 ++++-
+ .../src/resourceContainer/SConscript | 3 +++
+ .../src/resourceContainer/unittests/SConscript | 3 +++
+ .../src/serverBuilder/SConscript | 3 +++
+ service/soft-sensor-manager/SConscript | 3 +++
+ service/things-manager/SConscript | 3 +++
+ service/things-manager/sdk/java/jni/SConscript | 3 +++
+ 17 files changed, 49 insertions(+), 1 deletion(-)
+
+--- a/extlibs/expat/SConscript
++++ b/extlibs/expat/SConscript
+@@ -35,6 +35,9 @@ if target_os not in ['windows', 'winrt']
+ '-fexceptions', '-fno-common'])
+ expat_env.AppendUnique(CPPDEFINES = ['HAVE_EXPAT_CONFIG_H'])
+
++if target_os not in ['darwin', 'ios', 'windows', 'winrt']:
++ expat_env.AppendUnique(LINKFLAGS = ['-Wl,--no-undefined'])
++
+ ######################################################################
+ # Source files and Targets
+ ######################################################################
+--- a/resource/csdk/connectivity/src/SConscript
++++ b/resource/csdk/connectivity/src/SConscript
+@@ -27,6 +27,9 @@ env.AppendUnique(CPPPATH = [ os.path.joi
+ if ca_os not in ['arduino', 'windows', 'winrt']:
+ env.AppendUnique(CPPDEFINES = ['WITH_POSIX'])
+
++if ca_os not in ['darwin', 'ios', 'windows', 'winrt']:
++ env.AppendUnique(LINKFLAGS = ['-Wl,--no-undefined'])
++
+ if ca_os in ['darwin','ios']:
+ env.AppendUnique(CPPDEFINES = ['_DARWIN_C_SOURCE'])
+
+--- a/resource/oc_logger/SConscript
++++ b/resource/oc_logger/SConscript
+@@ -42,6 +42,9 @@ if target_os not in ['arduino', 'windows
+ liboc_logger_env.AppendUnique(CFLAGS = ['-Wall', '-std=c99', '-fPIC'])
+ liboc_logger_env.AppendUnique(CXXFLAGS = ['-Wall', '-std=c++0x', '-fPIC'])
+
++if target_os not in ['darwin', 'ios', 'windows', 'winrt']:
++ liboc_logger_env.AppendUnique(LINKFLAGS = ['-Wl,--no-undefined'])
++
+ ######################################################################
+ # Source files and Targets
+ ######################################################################
+--- a/resource/src/SConscript
++++ b/resource/src/SConscript
+@@ -51,6 +51,9 @@ if target_os == 'linux':
+ if target_os not in ['windows', 'winrt']:
+ oclib_env.AppendUnique(CXXFLAGS = ['-std=c++0x', '-Wall', '-fPIC'])
+
++if target_os not in ['darwin', 'ios', 'windows', 'winrt']:
++ oclib_env.AppendUnique(LINKFLAGS = ['-Wl,--no-undefined'])
++
+ if target_os == 'android':
+ oclib_env.AppendUnique(CXXFLAGS = ['-frtti', '-fexceptions'])
+ oclib_env.AppendUnique(LIBS = ['boost_thread', 'gnustl_shared', 'log'])
+--- a/service/notification-manager/SConscript
++++ b/service/notification-manager/SConscript
+@@ -65,6 +65,9 @@ notimgr_env.PrependUnique(LIBS = [
+ if target_os not in ['windows', 'winrt']:
+ notimgr_env.AppendUnique(CXXFLAGS = ['-O2', '-g', '-Wall', '-fmessage-length=0', '-std=c++0x'])
+
++if target_os not in ['darwin', 'ios', 'windows', 'winrt']:
++ notimgr_env.AppendUnique(LINKFLAGS = ['-Wl,--no-undefined'])
++
+ if target_os == 'linux':
+ notimgr_env.AppendUnique(LIBS = ['pthread'])
+
+--- a/service/protocol-plugin/plugin-manager/SConscript
++++ b/service/protocol-plugin/plugin-manager/SConscript
+@@ -61,6 +61,10 @@ if target_os == 'android':
+ pmimpl_env = plugin_manager_env.Clone()
+ pmimpl_env.PrependUnique(CCFLAGS = ['-fPIC'])
+ pmimpl_env.PrependUnique(LIBS = File(env.get('BUILD_DIR') + '/libcpluff.a'))
++
++if target_os not in ['darwin', 'ios', 'windows', 'winrt']:
++ pmimpl_env.AppendUnique(LINKFLAGS = ['-Wl,--no-undefined'])
++
+ pmimpl = pmimpl_env.SharedLibrary('pmimpl', pmimpl_src)
+
+ plugin_manager_env.InstallTarget([ppm, pmimpl], 'libppm')
+--- a/service/protocol-plugin/plugin-manager/src/Android/jni/SConscript
++++ b/service/protocol-plugin/plugin-manager/src/Android/jni/SConscript
+@@ -23,6 +23,7 @@ ppm_jni_env.PrependUnique(LIBS = ['pmimp
+ ppm_jni_env.AppendUnique(CPPPATH = [ppm_sdk+'/src'])
+ ppm_jni_env.AppendUnique(CPPPATH = [ppm_sdk+'/../lib/cpluff/libcpluff'])
+ ppm_jni_env.AppendUnique(CPPPATH = [env.get('SRC_DIR')+'/extlibs/rapidxml'])
++ppm_jni_env.AppendUnique(LINKFLAGS = ['-Wl,--no-undefined'])
+
+ ######################################################################
+ # Source files and Targets
+--- a/service/protocol-plugin/plugins/SConscript
++++ b/service/protocol-plugin/plugins/SConscript
+@@ -40,6 +40,9 @@ if target_os not in ['windows', 'winrt']
+ plugins_env.PrependUnique(CCFLAGS = ['-fPIC'])
+ plugins_env.AppendUnique(LINKFLAGS = ['-fPIC'])
+
++if target_os not in ['darwin', 'ios', 'windows', 'winrt']:
++ plugins_env.AppendUnique(LINKFLAGS = ['-Wl,--no-undefined'])
++
+ if target_os not in ['arduino', 'android']:
+ plugins_env.AppendUnique(LIBS = ['pthread'])
+
+--- a/service/protocol-plugin/plugins/mqtt-fan/lib/cpp/SConscript
++++ b/service/protocol-plugin/plugins/mqtt-fan/lib/cpp/SConscript
+@@ -16,6 +16,9 @@ mosquittopp_env.AppendUnique(CPPPATH = [
+ if target_os not in ['windows', 'winrt']:
+ mosquittopp_env.AppendUnique(CFLAGS = ['-Wall', '-ggdb', '-O2', '-fPIC'])
+
++if target_os not in ['darwin', 'ios', 'windows', 'winrt']:
++ mosquittopp_env.AppendUnique(LINKFLAGS = ['-Wl,--no-undefined'])
++
+ if target_os == 'linux':
+ mosquittopp_env.AppendUnique(LIBS = ['pthread'])
+
+--- a/service/resource-encapsulation/src/resourceContainer/SConscript
++++ b/service/resource-encapsulation/src/resourceContainer/SConscript
+@@ -88,6 +88,9 @@ if target_os not in ['windows', 'winrt']
+ if target_os != 'android':
+ resource_container_env.AppendUnique(CXXFLAGS = ['-pthread'])
+
++if target_os not in ['darwin', 'ios', 'windows', 'winrt']:
++ resource_container_env.AppendUnique(LINKFLAGS = ['-Wl,--no-undefined'])
++
+ if target_os == 'android':
+ resource_container_env.AppendUnique(CXXFLAGS = ['-frtti', '-fexceptions'])
+ resource_container_env.PrependUnique(LIBS = ['gnustl_shared', 'compatibility', 'log'])
+--- a/service/resource-encapsulation/src/resourceContainer/unittests/SConscript
++++ b/service/resource-encapsulation/src/resourceContainer/unittests/SConscript
+@@ -144,6 +144,9 @@ if int(containerJavaSupport):
+ test_bundle_env = container_gtest_env.Clone()
+ test_bundle_env.AppendUnique(CCFLAGS = ['-fPIC'])
+
++if target_os not in ['darwin', 'ios', 'windows', 'winrt']:
++ test_bundle_env.AppendUnique(LINKFLAGS = ['-Wl,--no-undefined'])
++
+ TEST_BUNDLE_DIR = 'TestBundle/'
+ test_bundle_env.AppendUnique(CPPPATH = [
+ TEST_BUNDLE_DIR + 'include',
+--- a/service/resource-encapsulation/src/serverBuilder/SConscript
++++ b/service/resource-encapsulation/src/serverBuilder/SConscript
+@@ -54,6 +54,9 @@ if target_os not in ['windows', 'winrt']
+ if target_os != 'android':
+ server_builder_env.AppendUnique(CXXFLAGS = ['-pthread'])
+
++if target_os not in ['darwin', 'ios', 'windows', 'winrt']:
++ server_builder_env.AppendUnique(LINKFLAGS = ['-Wl,--no-undefined'])
++
+ if target_os == 'android':
+ server_builder_env.AppendUnique(CXXFLAGS = ['-frtti', '-fexceptions'])
+ server_builder_env.PrependUnique(LIBS = ['gnustl_shared', 'compatibility', 'log'])
+--- a/service/soft-sensor-manager/SConscript
++++ b/service/soft-sensor-manager/SConscript
+@@ -45,6 +45,9 @@ if target_os not in ['windows', 'winrt']
+ soft_sensor_manager_env.AppendUnique(LIBS = ['pthread'])
+ soft_sensor_manager_env.AppendUnique(CXXFLAGS = ['-pthread'])
+
++if target_os not in ['darwin', 'ios', 'windows', 'winrt']:
++ soft_sensor_manager_env.AppendUnique(LINKFLAGS = ['-Wl,--no-undefined'])
++
+ if target_os == 'android':
+ soft_sensor_manager_env.AppendUnique(CXXFLAGS = ['-frtti', '-fexceptions'])
+ soft_sensor_manager_env.AppendUnique(LIBS = ['gnustl_shared'])
+--- a/service/things-manager/SConscript
++++ b/service/things-manager/SConscript
+@@ -43,6 +43,9 @@ if target_os not in ['windows', 'winrt']
+ things_manager_env.AppendUnique(CXXFLAGS = ['-pthread'])
+ things_manager_env.AppendUnique(LIBS = ['pthread'])
+
++if target_os not in ['darwin', 'ios', 'windows', 'winrt']:
++ things_manager_env.AppendUnique(LINKFLAGS = ['-Wl,--no-undefined'])
++
+ if target_os == 'android':
+ things_manager_env.AppendUnique(CXXFLAGS = ['-frtti', '-fexceptions'])
+ things_manager_env.PrependUnique(LIBS = ['gnustl_shared'])
+--- a/service/things-manager/sdk/java/jni/SConscript
++++ b/service/things-manager/sdk/java/jni/SConscript
+@@ -27,6 +27,9 @@ tm_jni_env.AppendUnique(CPPPATH = [tm_sd
+ tm_jni_env.AppendUnique(CPPPATH = [base_jni])
+ tm_jni_env.AppendUnique(CPPPATH = ['tm/inc', 'jniutil/inc', extlibs+'/timer/'])
+
++if target_os not in ['darwin', 'ios', 'windows', 'winrt']:
++ tm_jni_env.AppendUnique(LINKFLAGS = ['-Wl,--no-undefined'])
++
+ ######################################################################
+ # Source files and Targets
+ ######################################################################
--- /dev/null
+From a8f5ed3ff337bce5222967fdf8c0b475fd28e74a Mon Sep 17 00:00:00 2001
+From: John Light <john.j.light@intel.com>
+Date: Thu, 30 Jul 2015 15:14:07 -0700
+Subject: [PATCH] Avoid Segv by testing address field before using it.
+
+sIssue reported off dev list by Gabriel Schulhof.
+
+Change-Id: Ifa529da59fb784fd5cdef6ca333635cf99ed1f59
+Signed-off-by: John Light <john.j.light@intel.com>
+Reviewed-on: https://gerrit.iotivity.org/gerrit/2160
+Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
+Reviewed-by: Erich Keane <erich.keane@intel.com>
+---
+ .../src/ip_adapter/linux/caipnwmonitor.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/resource/csdk/connectivity/src/ip_adapter/linux/caipnwmonitor.c
++++ b/resource/csdk/connectivity/src/ip_adapter/linux/caipnwmonitor.c
+@@ -57,6 +57,10 @@ u_arraylist_t *CAIPGetInterfaceInformati
+ struct ifaddrs *ifa = NULL;
+ for (ifa = ifp; ifa; ifa = ifa->ifa_next)
+ {
++ if (!ifa->ifa_addr)
++ {
++ continue;
++ }
+ int family = ifa->ifa_addr->sa_family;
+ if ((ifa->ifa_flags & IFF_LOOPBACK) || (AF_INET != family && AF_INET6 != family))
+ {
--- /dev/null
+From e767f892e7736008b60f85d2c2690d660661814b Mon Sep 17 00:00:00 2001
+From: Hauke Mehrtens <hauke.mehrtens@lantiq.com>
+Date: Thu, 13 Aug 2015 15:03:11 +0200
+Subject: [PATCH] resource-encapsulation: fix build without curl
+
+The hue plugin needs curl and it should only be build when libcurl is available.
+Without this patch, the build fails without curl installed, this patch fixes the problem and makes the build worm without curl and without the hue stuff.
+
+Without this patch I am getting this error message:
+scons: ***
+File "/service/third_party_libs.scons", line 50, in ?
+
+Change-Id: I5b4da555ff84b9b605cc6c119990d60ff670bd0d
+Signed-off-by: Hauke Mehrtens <hauke.mehrtens@lantiq.com>
+---
+ .../src/resourceContainer/SConscript | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/service/resource-encapsulation/src/resourceContainer/SConscript
++++ b/service/resource-encapsulation/src/resourceContainer/SConscript
+@@ -177,7 +177,7 @@ else:
+
+ HueBundle = hue_resource_bundle_env.SharedLibrary('HueBundle', hue_resource_bundle_src)
+ hue_resource_bundle_env.InstallTarget(HueBundle, 'libHueBundle')
+- lib_env = conf2.Finish()
++lib_env = conf2.Finish()
+
+ ######################################################################
+ # build resource container unit tests
--- /dev/null
+--- a/resource/csdk/security/provisioning/sample/SConscript
++++ b/resource/csdk/security/provisioning/sample/SConscript
+@@ -53,7 +53,7 @@ provisioning_env.PrependUnique(LIBS = ['
+
+ if env.get('SECURED') == '1':
+ provisioning_env.AppendUnique(LIBS = ['tinydtls'])
+-provisioning_env.ParseConfig('pkg-config --libs glib-2.0');
++#provisioning_env.ParseConfig('pkg-config --libs glib-2.0');
+
+ provisioning_env.AppendUnique(CPPDEFINES = ['TB_LOG'])
+
+--- a/resource/csdk/security/provisioning/SConscript
++++ b/resource/csdk/security/provisioning/SConscript
+@@ -62,7 +62,7 @@ provisioning_env.PrependUnique(LIBS = ['
+
+ provisioning_env.AppendUnique(LIBS = ['tinydtls'])
+
+-provisioning_env.ParseConfig('pkg-config --libs glib-2.0');
++#provisioning_env.ParseConfig('pkg-config --libs glib-2.0');
+
+ if target_os == 'android':
+ provisioning_env.AppendUnique(CXXFLAGS = ['-frtti', '-fexceptions'])
--- /dev/null
+From ce27d50b9c11386242487852f14b025ed6c67701 Mon Sep 17 00:00:00 2001
+From: Hauke Mehrtens <hauke.mehrtens@lantiq.com>
+Date: Wed, 19 Aug 2015 16:47:21 +0200
+Subject: [PATCH 14/14] examples: OICMiddle: try to load security
+ configuration by default
+
+Load the security configuration from the default location by default.
+When it is not found security will just not work.
+
+Signed-off-by: Hauke Mehrtens <hauke.mehrtens@lantiq.com>
+---
+ examples/OICMiddle/OICMiddle.cpp | 9 ++++++++-
+ examples/OICMiddle/OICMiddle.h | 1 +
+ 2 files changed, 9 insertions(+), 1 deletion(-)
+
+--- a/examples/OICMiddle/OICMiddle.cpp
++++ b/examples/OICMiddle/OICMiddle.cpp
+@@ -99,8 +99,15 @@ void Middle::startPlatform()
+ //std::string ipaddr = INADDR_ANY;
+ std::string ipaddr = "0.0.0.0";
+
++ // Initialize Persistent Storage for SVR database
++ middle.ps.open = fopen;
++ middle.ps.read = fread;
++ middle.ps.write = fwrite;
++ middle.ps.close = fclose;
++ middle.ps.unlink = unlink;
++
+ PlatformConfig cfg { ServiceType::InProc, ModeType::Both,
+- ipaddr, port, QualityOfService::LowQos};
++ ipaddr, port, QualityOfService::LowQos, &middle.ps};
+
+ OC::OCPlatform::Configure(cfg);
+ }
+--- a/examples/OICMiddle/OICMiddle.h
++++ b/examples/OICMiddle/OICMiddle.h
+@@ -83,6 +83,7 @@ protected:
+ MiddleServer *m_server;
+ LineInput *m_lineInput;
+ RestInput *m_restInput;
++ OCPersistentStorage ps;
+
+ protected:
+ void startPlatform();