iotivity: replace environment patches with upstream versions

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>
This commit is contained in:
Hauke Mehrtens 2016-12-11 01:34:59 +01:00
parent 1e28dfe214
commit 2734f86e6e
7 changed files with 236 additions and 102 deletions

View 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) \

View File

@ -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"

View File

@ -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'])

View File

@ -1,11 +1,20 @@
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
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 +-

View File

@ -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

View File

@ -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'])

View File

@ -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'])