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