diff --git a/net/iotivity/Makefile b/net/iotivity/Makefile index 5bd4056b1..2ebf33252 100644 --- a/net/iotivity/Makefile +++ b/net/iotivity/Makefile @@ -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 index adfcf3336..000000000 --- a/net/iotivity/patches/004-use-env.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 884e831ed07607097614276f6bbf192993228100 Mon Sep 17 00:00:00 2001 -From: Hauke Mehrtens -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 index c04630249..000000000 --- a/net/iotivity/patches/020-Do-not-set-architecture-specific-flags.patch +++ /dev/null @@ -1,60 +0,0 @@ -From 980ef34a085f654e74c9896e8143e6f970049b6c Mon Sep 17 00:00:00 2001 -From: Hauke Mehrtens -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 ---- - 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/021-add-some-more-architectures.patch b/net/iotivity/patches/020-linux-Add-more-architectures.patch similarity index 65% rename from net/iotivity/patches/021-add-some-more-architectures.patch rename to net/iotivity/patches/020-linux-Add-more-architectures.patch index 442c1f79c..cb0138149 100644 --- a/net/iotivity/patches/021-add-some-more-architectures.patch +++ b/net/iotivity/patches/020-linux-Add-more-architectures.patch @@ -1,11 +1,20 @@ -From f78ba209b14908bf2b6197293e1f9e3458ddba8e Mon Sep 17 00:00:00 2001 -From: Hauke Mehrtens -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 +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 +Author: Hauke Mehrtens +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 +Reviewed-on: https://gerrit.iotivity.org/gerrit/14575 +Tested-by: jenkins-iotivity +Reviewed-by: Nivedita Singhvi +Reviewed-by: Jaehong Jo +Reviewed-by: Hauke Mehrtens --- build_common/SConscript | 2 +- resource/csdk/connectivity/build/SConscript | 2 +- 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 index 000000000..2756fde33 --- /dev/null +++ b/net/iotivity/patches/021-build-do-not-set-TARGET_ARCH-to-default.patch @@ -0,0 +1,39 @@ +From 792f68219b3ab4ff5238e3abc7aa1c68bfa4a22b Mon Sep 17 00:00:00 2001 +From: Hauke Mehrtens +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 +--- + 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 index 000000000..dfb546a47 --- /dev/null +++ b/net/iotivity/patches/022-build-restrict-compiler-options-to-supported-archite.patch @@ -0,0 +1,57 @@ +From 39b0c436c77555849da1e68cc8733c67183c291f Mon Sep 17 00:00:00 2001 +From: Hauke Mehrtens +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 +--- + 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 index 000000000..b6a2bfde3 --- /dev/null +++ b/net/iotivity/patches/023-build-take-compiler-options-from-environment.patch @@ -0,0 +1,126 @@ +From 5f9513eb341d520d10c48f8ba2bd145063405fdd Mon Sep 17 00:00:00 2001 +From: Hauke Mehrtens +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 +--- + 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'])