iotivity: replace environment patches with upstream versions
authorHauke Mehrtens <hauke@hauke-m.de>
Sun, 11 Dec 2016 00:34:59 +0000 (01:34 +0100)
committerHauke Mehrtens <hauke@hauke-m.de>
Mon, 9 Jan 2017 22:31:22 +0000 (23:31 +0100)
These patches are making it possible to provide the compiler settings
from the environment so LEDE can change them. This replaces the old
patches with the versions send for upstream inclusion.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
net/iotivity/Makefile
net/iotivity/patches/004-use-env.patch [deleted file]
net/iotivity/patches/020-Do-not-set-architecture-specific-flags.patch [deleted file]
net/iotivity/patches/020-linux-Add-more-architectures.patch [new file with mode: 0644]
net/iotivity/patches/021-add-some-more-architectures.patch [deleted file]
net/iotivity/patches/021-build-do-not-set-TARGET_ARCH-to-default.patch [new file with mode: 0644]
net/iotivity/patches/022-build-restrict-compiler-options-to-supported-archite.patch [new file with mode: 0644]
net/iotivity/patches/023-build-take-compiler-options-from-environment.patch [new file with mode: 0644]

index 5bd4056b10fddbb715ead55f76a92b2390145452..2ebf33252783ae0ca8ff1de8a10a487ef8adcd61 100644 (file)
@@ -179,6 +179,7 @@ SCONS_OPTIONS += \
        TARGET_ARCH=$(ARCH) \
        STAGING_DIR=$(STAGING_DIR) \
        LOGGING=true \
+       WITH_ENV=true \
        $(if $(CONFIG_PACKAGE_iotivity),octbstack) \
        $(if $(CONFIG_PACKAGE_iotivity-cpp),oc) \
        $(if $(CONFIG_PACKAGE_iotivity-oic-middle),examples) \
diff --git a/net/iotivity/patches/004-use-env.patch b/net/iotivity/patches/004-use-env.patch
deleted file mode 100644 (file)
index adfcf33..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-From 884e831ed07607097614276f6bbf192993228100 Mon Sep 17 00:00:00 2001
-From: Hauke Mehrtens <hauke.mehrtens@lantiq.com>
-Date: Tue, 2 Jun 2015 11:08:17 +0200
-Subject: [PATCH 3/4] 004-use-env.patch
-
----
- build_common/SConscript | 22 ++++++++++++++++++++++
- 1 file changed, 22 insertions(+)
-
---- a/build_common/SConscript
-+++ b/build_common/SConscript
-@@ -163,6 +163,26 @@ tc_set_msg = '''
- * cause inexplicable errors.                                                  *
- *******************************************************************************
- '''
-+env['ENV'] = os.environ
-+if 'CC' in os.environ:
-+      env['CC'] = Split(os.environ['CC'])
-+      print "using CC from environment: %s" % env['CC']
-+if 'CXX' in os.environ:
-+      env['CXX'] = Split(os.environ['CXX'])
-+      print "using CXX from environment: %s" % env['CXX']
-+if 'CFLAGS' in os.environ:
-+      env['CFLAGS'] = Split(os.environ['CFLAGS'])
-+      print "using CFLAGS from environment: %s" % env['CFLAGS']
-+if 'CXXFLAGS' in os.environ:
-+      env['CXXFLAGS'] = Split(os.environ['CXXFLAGS'])
-+      print "using CXXFLAGS from environment: %s" % env['CXXFLAGS']
-+if 'CPPFLAGS' in os.environ:
-+      env['CPPFLAGS'] = Split(os.environ['CPPFLAGS'])
-+      print "using CPPFLAGS from environment: %s" % env['CPPFLAGS']
-+if 'LDFLAGS' in os.environ:
-+      env['LINKFLAGS'] = Split(os.environ['LDFLAGS'])
-+      print "using LDFLAGS/LINKFLAGS from environment: %s" % env['LINKFLAGS']
-+
- if env.get('VERBOSE') == False:
-       env['CCCOMSTR'] = "Compiling $TARGET"
-       env['SHCCCOMSTR'] = "Compiling $TARGET"
diff --git a/net/iotivity/patches/020-Do-not-set-architecture-specific-flags.patch b/net/iotivity/patches/020-Do-not-set-architecture-specific-flags.patch
deleted file mode 100644 (file)
index c046302..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-From 980ef34a085f654e74c9896e8143e6f970049b6c Mon Sep 17 00:00:00 2001
-From: Hauke Mehrtens <hauke@hauke-m.de>
-Date: Mon, 22 Jun 2015 19:39:58 +0200
-Subject: [PATCH 3/5] Do not set architecture specific flags
-
-Setting architecture specific flags causes problems when you want to
-build something which is not covered by these.
-
-Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
----
- build_common/linux/SConscript                     | 20 --------------------
- resource/csdk/connectivity/build/linux/SConscript | 20 --------------------
- 2 files changed, 40 deletions(-)
-
---- a/build_common/linux/SConscript
-+++ b/build_common/linux/SConscript
-@@ -24,20 +24,3 @@ env.AppendUnique(LIBS = ['dl', 'pthread'
- # Set arch flags that match best TARGET_ARCH variable
- target_arch = env.get('TARGET_ARCH')
--if target_arch in ['x86']:
--      env.AppendUnique(CCFLAGS = ['-m32'])
--      env.AppendUnique(LINKFLAGS = ['-m32'])
--elif target_arch in ['x86_64']:
--      env.AppendUnique(CCFLAGS = ['-m64'])
--      env.AppendUnique(LINKFLAGS = ['-m64'])
--elif target_arch in ['arm'] or target_arch.find('v5') > 0:
--      env.AppendUnique(CPPFLAGS = ['-march=armv5te'])
--elif target_arch.find('v7a-hard') > 0:
--      env.AppendUnique(CPPFLAGS = ['-march=armv7-a'])
--      env.AppendUnique(CPPFLAGS = ['-mfloat-abi=hard'])
--      env.AppendUnique(CCFLAGS = ['-mfloat-abi=hard'])
--      env.AppendUnique(LINKFLAGS = ['-mfloat-abi=hard'])
--elif target_arch.find('v7a') > 0:
--      env.AppendUnique(CPPFLAGS = ['-march=armv7-a'])
--elif target_arch.find('arm64') >= 0:
--      env.AppendUnique(CPPFLAGS = ['-march=armv8-a'])
---- a/resource/csdk/connectivity/build/linux/SConscript
-+++ b/resource/csdk/connectivity/build/linux/SConscript
-@@ -23,20 +23,3 @@ env.AppendUnique(LIBS = ['dl', 'pthread'
- # Set arch flags
- target_arch = env.get('TARGET_ARCH')
--if target_arch in ['x86']:
--      env.AppendUnique(CCFLAGS = ['-m32'])
--      env.AppendUnique(LINKFLAGS = ['-m32'])
--elif target_arch in ['x86_64']:
--      env.AppendUnique(CCFLAGS = ['-m64'])
--      env.AppendUnique(LINKFLAGS = ['-m64'])
--elif target_arch.find('v7a-hard') > 0:
--      env.AppendUnique(CPPFLAGS = ['-march=armv7-a'])
--      env.AppendUnique(CPPFLAGS = ['-mfloat-abi=hard'])
--      env.AppendUnique(CCFLAGS = ['-mfloat-abi=hard'])
--      env.AppendUnique(LINKFLAGS = ['-mfloat-abi=hard'])
--elif target_arch.find('v7a') > 0:
--      env.AppendUnique(CPPFLAGS = ['-march=armv7-a'])
--elif target_arch.find('arm64') > 0:
--      env.AppendUnique(CPPFLAGS = ['-march=armv8-a'])
--else:
--      env.AppendUnique(CPPFLAGS = ['-march=armv5te'])
diff --git a/net/iotivity/patches/020-linux-Add-more-architectures.patch b/net/iotivity/patches/020-linux-Add-more-architectures.patch
new file mode 100644 (file)
index 0000000..cb01381
--- /dev/null
@@ -0,0 +1,44 @@
+From dabd6597013e1df72b08621b466d136b8d25d110 Mon Sep 17 00:00:00 2001
+From: Philippe Coval <philippe.coval@osg.samsung.com>
+Date: Thu, 29 Sep 2016 10:57:59 +0200
+Subject: [PATCH 20/23] linux: Add more architectures
+
+This does not scale and this check should be removed.
+
+Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
+Author: Hauke Mehrtens <hauke@hauke-m.de>
+Change-Id: Ibb271701904745ee4f5dd689c197228239c37262
+Origin: https://github.com/openwrt/packages/blob/master/net/iotivity/patches/021-add-some-more-architectures.patch
+Signed-off-by: Philippe Coval <philippe.coval@osg.samsung.com>
+Reviewed-on: https://gerrit.iotivity.org/gerrit/14575
+Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
+Reviewed-by: Nivedita Singhvi <niveditasinghvi@gmail.com>
+Reviewed-by: Jaehong Jo <jaehong.jo@samsung.com>
+Reviewed-by: Hauke Mehrtens <hauke.mehrtens@intel.com>
+---
+ build_common/SConscript                     | 2 +-
+ resource/csdk/connectivity/build/SConscript | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+--- a/build_common/SConscript
++++ b/build_common/SConscript
+@@ -18,7 +18,7 @@ host_target_map = {
+ # Map of os and allowed archs (os: allowed archs)
+ os_arch_map = {
+-              'linux': ['x86', 'x86_64', 'arm', 'arm-v7a', 'armeabi-v7a', 'arm64'],
++              'linux': ['x86', 'x86_64', 'arm', 'arm-v7a', 'armeabi-v7a', 'arm64', 'mips', 'mipsel', 'mips64', 'mips64el', 'i386', 'powerpc', 'sparc', 'aarch64'],
+               'tizen': ['x86', 'x86_64', 'arm', 'arm-v7a', 'armeabi-v7a', 'arm64'],
+               'android': ['x86', 'x86_64', 'armeabi', 'armeabi-v7a', 'armeabi-v7a-hard', 'arm64-v8a'],
+               'windows': ['x86', 'amd64', 'arm'],
+--- a/resource/csdk/connectivity/build/SConscript
++++ b/resource/csdk/connectivity/build/SConscript
+@@ -14,7 +14,7 @@ host_target_map = {
+ # Map of os and allowed archs (os: allowed archs)
+ os_arch_map = {
+-              'linux': ['x86', 'x86_64', 'arm', 'arm64'],
++              'linux': ['x86', 'x86_64', 'arm', 'arm64', 'mips', 'mipsel', 'mips64', 'mips64el', 'i386', 'powerpc', 'sparc', 'aarch64'],
+               'tizen': ['x86', 'x86_64', 'arm', 'arm64'],
+               'android': ['x86', 'x86_64', 'armeabi', 'armeabi-v7a', 'armeabi-v7a-hard', 'arm64-v8a'],
+               'windows': ['x86', 'amd64', 'arm'],
diff --git a/net/iotivity/patches/021-add-some-more-architectures.patch b/net/iotivity/patches/021-add-some-more-architectures.patch
deleted file mode 100644 (file)
index 442c1f7..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-From f78ba209b14908bf2b6197293e1f9e3458ddba8e Mon Sep 17 00:00:00 2001
-From: Hauke Mehrtens <hauke@hauke-m.de>
-Date: Mon, 22 Jun 2015 19:59:47 +0200
-Subject: [PATCH 4/5] add some more architectures
-
-This does not scale and this check should be removed.
-
-Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
----
- build_common/SConscript                     | 2 +-
- resource/csdk/connectivity/build/SConscript | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
---- a/build_common/SConscript
-+++ b/build_common/SConscript
-@@ -18,7 +18,7 @@ host_target_map = {
- # Map of os and allowed archs (os: allowed archs)
- os_arch_map = {
--              'linux': ['x86', 'x86_64', 'arm', 'arm-v7a', 'armeabi-v7a', 'arm64'],
-+              'linux': ['x86', 'x86_64', 'arm', 'arm-v7a', 'armeabi-v7a', 'arm64', 'mips', 'mipsel', 'mips64', 'mips64el', 'i386', 'powerpc', 'sparc', 'aarch64'],
-               'tizen': ['x86', 'x86_64', 'arm', 'arm-v7a', 'armeabi-v7a', 'arm64'],
-               'android': ['x86', 'x86_64', 'armeabi', 'armeabi-v7a', 'armeabi-v7a-hard', 'arm64-v8a'],
-               'windows': ['x86', 'amd64', 'arm'],
---- a/resource/csdk/connectivity/build/SConscript
-+++ b/resource/csdk/connectivity/build/SConscript
-@@ -14,7 +14,7 @@ host_target_map = {
- # Map of os and allowed archs (os: allowed archs)
- os_arch_map = {
--              'linux': ['x86', 'x86_64', 'arm', 'arm64'],
-+              'linux': ['x86', 'x86_64', 'arm', 'arm64', 'mips', 'mipsel', 'mips64', 'mips64el', 'i386', 'powerpc', 'sparc', 'aarch64'],
-               'tizen': ['x86', 'x86_64', 'arm', 'arm64'],
-               'android': ['x86', 'x86_64', 'armeabi', 'armeabi-v7a', 'armeabi-v7a-hard', 'arm64-v8a'],
-               'windows': ['x86', 'amd64', 'arm'],
diff --git a/net/iotivity/patches/021-build-do-not-set-TARGET_ARCH-to-default.patch b/net/iotivity/patches/021-build-do-not-set-TARGET_ARCH-to-default.patch
new file mode 100644 (file)
index 0000000..2756fde
--- /dev/null
@@ -0,0 +1,39 @@
+From 792f68219b3ab4ff5238e3abc7aa1c68bfa4a22b Mon Sep 17 00:00:00 2001
+From: Hauke Mehrtens <hauke@hauke-m.de>
+Date: Sat, 10 Dec 2016 18:15:32 +0100
+Subject: [PATCH 21/23] build: do not set TARGET_ARCH to default
+
+This check is useless, scons already checks this and returns such an
+error message:
+Invalid value for option TARGET_ARCH: mips.  Valid values are: ['x86', 'x86_64', 'arm', 'arm-v7a', 'armeabi-v7a', 'arm64']
+
+Change-Id: I3f7dd3b9fcae875ab20349203fb77537f24be763
+Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
+---
+ build_common/SConscript                     | 3 ---
+ resource/csdk/connectivity/build/SConscript | 2 --
+ 2 files changed, 5 deletions(-)
+
+--- a/build_common/SConscript
++++ b/build_common/SConscript
+@@ -54,9 +54,6 @@ if target_os == 'android':
+ else:
+       default_arch = platform.machine()
+-if default_arch not in os_arch_map[target_os]:
+-      default_arch = os_arch_map[target_os][0].lower()
+-
+ target_arch = ARGUMENTS.get('TARGET_ARCH', default_arch) # target arch
+ # True if binary needs to be installed on board. (Might need root permissions)
+--- a/resource/csdk/connectivity/build/SConscript
++++ b/resource/csdk/connectivity/build/SConscript
+@@ -40,8 +40,6 @@ if target_os not in host_target_map[host
+       Exit(1)
+ default_arch = platform.machine()
+-if default_arch not in os_arch_map[target_os]:
+-      default_arch = os_arch_map[target_os][0].lower()
+ target_arch = ARGUMENTS.get('TARGET_ARCH', default_arch) # target arch
diff --git a/net/iotivity/patches/022-build-restrict-compiler-options-to-supported-archite.patch b/net/iotivity/patches/022-build-restrict-compiler-options-to-supported-archite.patch
new file mode 100644 (file)
index 0000000..dfb546a
--- /dev/null
@@ -0,0 +1,57 @@
+From 39b0c436c77555849da1e68cc8733c67183c291f Mon Sep 17 00:00:00 2001
+From: Hauke Mehrtens <hauke@hauke-m.de>
+Date: Sat, 10 Dec 2016 18:35:04 +0100
+Subject: [PATCH 22/23] build: restrict compiler options to supported
+ architectures
+
+For Linux we currently only support the following architectures:
+'x86', 'x86_64', 'arm', 'arm-v7a', 'armeabi-v7a', 'arm64'
+explicitly check for those architectures and also remove ARM hard float.
+
+Change-Id: I7078530bc2a89b88c7049cc53e8bb3fbe5d75ca8
+Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
+---
+ build_common/linux/SConscript                     | 11 +++--------
+ resource/csdk/connectivity/build/linux/SConscript | 11 +++--------
+ 2 files changed, 6 insertions(+), 16 deletions(-)
+
+--- a/build_common/linux/SConscript
++++ b/build_common/linux/SConscript
+@@ -30,14 +30,9 @@ if target_arch in ['x86']:
+ elif target_arch in ['x86_64']:
+       env.AppendUnique(CCFLAGS = ['-m64'])
+       env.AppendUnique(LINKFLAGS = ['-m64'])
+-elif target_arch in ['arm'] or target_arch.find('v5') > 0:
++elif target_arch in ['arm']:
+       env.AppendUnique(CPPFLAGS = ['-march=armv5te'])
+-elif target_arch.find('v7a-hard') > 0:
++elif target_arch in ['arm-v7a', 'armeabi-v7a']:
+       env.AppendUnique(CPPFLAGS = ['-march=armv7-a'])
+-      env.AppendUnique(CPPFLAGS = ['-mfloat-abi=hard'])
+-      env.AppendUnique(CCFLAGS = ['-mfloat-abi=hard'])
+-      env.AppendUnique(LINKFLAGS = ['-mfloat-abi=hard'])
+-elif target_arch.find('v7a') > 0:
+-      env.AppendUnique(CPPFLAGS = ['-march=armv7-a'])
+-elif target_arch.find('arm64') >= 0:
++elif target_arch.find('arm64') > 0:
+       env.AppendUnique(CPPFLAGS = ['-march=armv8-a'])
+--- a/resource/csdk/connectivity/build/linux/SConscript
++++ b/resource/csdk/connectivity/build/linux/SConscript
+@@ -29,14 +29,9 @@ if target_arch in ['x86']:
+ elif target_arch in ['x86_64']:
+       env.AppendUnique(CCFLAGS = ['-m64'])
+       env.AppendUnique(LINKFLAGS = ['-m64'])
+-elif target_arch.find('v7a-hard') > 0:
+-      env.AppendUnique(CPPFLAGS = ['-march=armv7-a'])
+-      env.AppendUnique(CPPFLAGS = ['-mfloat-abi=hard'])
+-      env.AppendUnique(CCFLAGS = ['-mfloat-abi=hard'])
+-      env.AppendUnique(LINKFLAGS = ['-mfloat-abi=hard'])
+-elif target_arch.find('v7a') > 0:
++elif target_arch in ['arm']:
++      env.AppendUnique(CPPFLAGS = ['-march=armv5te'])
++elif target_arch in ['arm-v7a', 'armeabi-v7a']:
+       env.AppendUnique(CPPFLAGS = ['-march=armv7-a'])
+ elif target_arch.find('arm64') > 0:
+       env.AppendUnique(CPPFLAGS = ['-march=armv8-a'])
+-else:
+-      env.AppendUnique(CPPFLAGS = ['-march=armv5te'])
diff --git a/net/iotivity/patches/023-build-take-compiler-options-from-environment.patch b/net/iotivity/patches/023-build-take-compiler-options-from-environment.patch
new file mode 100644 (file)
index 0000000..b6a2bfd
--- /dev/null
@@ -0,0 +1,126 @@
+From 5f9513eb341d520d10c48f8ba2bd145063405fdd Mon Sep 17 00:00:00 2001
+From: Hauke Mehrtens <hauke@hauke-m.de>
+Date: Sat, 10 Dec 2016 18:08:05 +0100
+Subject: [PATCH 23/23] build: take compiler options from environment
+
+This makes it possible to compile IoTivity with custom compiler
+options. This way someone can use optimized compiler settings for the
+target CPU. I want to use this in OpenWrt / LEDE to build specific
+IoTivity binaries for each CPU architecture, there the build system
+provides the matching compiler options.
+
+Change-Id: I86772f73b81c41d7e96e51b434fd9e3b4992753a
+Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
+---
+ build_common/SConscript                           | 25 +++++++++++++++++++++
+ build_common/linux/SConscript                     | 27 ++++++++++++-----------
+ resource/csdk/connectivity/build/linux/SConscript | 27 ++++++++++++-----------
+ 3 files changed, 53 insertions(+), 26 deletions(-)
+
+--- a/build_common/SConscript
++++ b/build_common/SConscript
+@@ -120,6 +120,7 @@ help_vars.Add(PathVariable('ANDROID_NDK'
+ help_vars.Add(PathVariable('ANDROID_HOME', 'Android SDK path', None, PathVariable.PathAccept))
+ help_vars.Add(PathVariable('ANDROID_GRADLE', 'Gradle binary file', None, PathVariable.PathIsFile))
+ help_vars.Add(EnumVariable('WITH_UPSTREAM_LIBCOAP', 'Use latest stable version of LibCoAP downloaded from github', default_with_upstream_libcoap, allowed_values=('0','1')))
++help_vars.Add(BoolVariable('WITH_ENV', 'Use compiler options from environment', False))
+ AddOption('--prefix',
+                   dest='prefix',
+@@ -153,6 +154,30 @@ else:
+                       )
+ Help(help_vars.GenerateHelpText(env))
++if env.get('WITH_ENV'):
++      env['ENV'] = os.environ
++      if 'CC' in os.environ:
++              env['CC'] = Split(os.environ['CC'])
++              print "using CC from environment: %s" % env['CC']
++      if 'CXX' in os.environ:
++              env['CXX'] = Split(os.environ['CXX'])
++              print "using CXX from environment: %s" % env['CXX']
++      if 'CFLAGS' in os.environ:
++              env['CFLAGS'] = Split(os.environ['CFLAGS'])
++              print "using CFLAGS from environment: %s" % env['CFLAGS']
++      if 'CXXFLAGS' in os.environ:
++              env['CXXFLAGS'] = Split(os.environ['CXXFLAGS'])
++                      print "using CXXFLAGS from environment: %s" % env['CXXFLAGS']
++      if 'CCFLAGS' in os.environ:
++              env['CCFLAGS'] = Split(os.environ['CCFLAGS'])
++              print "using CCFLAGS from environment: %s" % env['CCFLAGS']
++      if 'CPPFLAGS' in os.environ:
++              env['CPPFLAGS'] = Split(os.environ['CPPFLAGS'])
++              print "using CPPFLAGS from environment: %s" % env['CPPFLAGS']
++      if 'LDFLAGS' in os.environ:
++              env['LINKFLAGS'] = Split(os.environ['LDFLAGS'])
++              print "using LDFLAGS/LINKFLAGS from environment: %s" % env['LINKFLAGS']
++
+ tc_set_msg = '''
+ ************************************ Warning **********************************
+ *   Enviornment variable TC_PREFIX/TC_PATH is set. It will change the default *
+--- a/build_common/linux/SConscript
++++ b/build_common/linux/SConscript
+@@ -23,16 +23,17 @@ env.AppendUnique(CCFLAGS = ['-Wall', '-W
+ env.AppendUnique(LIBS = ['dl', 'pthread', 'uuid'])
+ # Set arch flags that match best TARGET_ARCH variable
+-target_arch = env.get('TARGET_ARCH')
+-if target_arch in ['x86']:
+-      env.AppendUnique(CCFLAGS = ['-m32'])
+-      env.AppendUnique(LINKFLAGS = ['-m32'])
+-elif target_arch in ['x86_64']:
+-      env.AppendUnique(CCFLAGS = ['-m64'])
+-      env.AppendUnique(LINKFLAGS = ['-m64'])
+-elif target_arch in ['arm']:
+-      env.AppendUnique(CPPFLAGS = ['-march=armv5te'])
+-elif target_arch in ['arm-v7a', 'armeabi-v7a']:
+-      env.AppendUnique(CPPFLAGS = ['-march=armv7-a'])
+-elif target_arch.find('arm64') > 0:
+-      env.AppendUnique(CPPFLAGS = ['-march=armv8-a'])
++if not env.get('WITH_ENV'):
++      target_arch = env.get('TARGET_ARCH')
++      if target_arch in ['x86']:
++              env.AppendUnique(CCFLAGS = ['-m32'])
++              env.AppendUnique(LINKFLAGS = ['-m32'])
++      elif target_arch in ['x86_64']:
++              env.AppendUnique(CCFLAGS = ['-m64'])
++              env.AppendUnique(LINKFLAGS = ['-m64'])
++      elif target_arch in ['arm']:
++              env.AppendUnique(CPPFLAGS = ['-march=armv5te'])
++      elif target_arch in ['arm-v7a', 'armeabi-v7a']:
++              env.AppendUnique(CPPFLAGS = ['-march=armv7-a'])
++      elif target_arch.find('arm64') > 0:
++              env.AppendUnique(CPPFLAGS = ['-march=armv8-a'])
+--- a/resource/csdk/connectivity/build/linux/SConscript
++++ b/resource/csdk/connectivity/build/linux/SConscript
+@@ -22,16 +22,17 @@ env.AppendUnique(CCFLAGS = ['-Wall', '-f
+ env.AppendUnique(LIBS = ['dl', 'pthread'])
+ # Set arch flags
+-target_arch = env.get('TARGET_ARCH')
+-if target_arch in ['x86']:
+-      env.AppendUnique(CCFLAGS = ['-m32'])
+-      env.AppendUnique(LINKFLAGS = ['-m32'])
+-elif target_arch in ['x86_64']:
+-      env.AppendUnique(CCFLAGS = ['-m64'])
+-      env.AppendUnique(LINKFLAGS = ['-m64'])
+-elif target_arch in ['arm']:
+-      env.AppendUnique(CPPFLAGS = ['-march=armv5te'])
+-elif target_arch in ['arm-v7a', 'armeabi-v7a']:
+-      env.AppendUnique(CPPFLAGS = ['-march=armv7-a'])
+-elif target_arch.find('arm64') > 0:
+-      env.AppendUnique(CPPFLAGS = ['-march=armv8-a'])
++if not env.get('WITH_ENV'):
++      target_arch = env.get('TARGET_ARCH')
++      if target_arch in ['x86']:
++              env.AppendUnique(CCFLAGS = ['-m32'])
++              env.AppendUnique(LINKFLAGS = ['-m32'])
++      elif target_arch in ['x86_64']:
++              env.AppendUnique(CCFLAGS = ['-m64'])
++              env.AppendUnique(LINKFLAGS = ['-m64'])
++      elif target_arch in ['arm']:
++              env.AppendUnique(CPPFLAGS = ['-march=armv5te'])
++      elif target_arch in ['arm-v7a', 'armeabi-v7a']:
++              env.AppendUnique(CPPFLAGS = ['-march=armv7-a'])
++      elif target_arch.find('arm64') > 0:
++              env.AppendUnique(CPPFLAGS = ['-march=armv8-a'])