From bc3b55ba989f14d29389cd6319145e4a43a6946d Mon Sep 17 00:00:00 2001 From: coderhyme Date: Mon, 4 Apr 2016 22:01:17 -0700 Subject: [PATCH] Added sonames to libs when build target is android. This is because the dynamic linker of android 6.0 requires soname. see https://developer.android.com/intl/ko/about/versions/marshmallow/android-6.0-changes.html#behavior-runtime. Change-Id: I6908631d7bb734df262a86c98e3699af5fccfc14 Signed-off-by: coderhyme Reviewed-on: https://gerrit.iotivity.org/gerrit/7595 Reviewed-by: Uze Choi Tested-by: Uze Choi --- resource/csdk/SConscript | 2 ++ resource/csdk/connectivity/src/SConscript | 24 +++++++++++++++--------- resource/oc_logger/SConscript | 1 + resource/src/SConscript | 5 +++-- 4 files changed, 21 insertions(+), 11 deletions(-) diff --git a/resource/csdk/SConscript b/resource/csdk/SConscript index 37dc29b..a9ea0f9 100644 --- a/resource/csdk/SConscript +++ b/resource/csdk/SConscript @@ -100,6 +100,8 @@ if target_os in ['darwin', 'ios']: liboctbstack_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')]) if target_os not in ['arduino']: liboctbstack_env.AppendUnique(LINKFLAGS = ['-Wl,--no-undefined']) +if target_os == 'android': + liboctbstack_env.AppendUnique(LINKFLAGS = ['-Wl,-soname,liboctbstack.so']) if env.get('SECURED') == '1': liboctbstack_env.AppendUnique(LIBS = ['tinydtls']) diff --git a/resource/csdk/connectivity/src/SConscript b/resource/csdk/connectivity/src/SConscript index 897e390..50a7b59 100644 --- a/resource/csdk/connectivity/src/SConscript +++ b/resource/csdk/connectivity/src/SConscript @@ -152,15 +152,21 @@ if ca_os in ['linux', 'tizen', 'android', 'arduino', 'ios']: print "Include path is %s" % env.get('CPPPATH') print "Files path is %s" % env.get('CA_SRC') + +lib_env = env.Clone() + +if ca_os == 'android': + lib_env.AppendUnique(LINKFLAGS = ['-Wl,-soname,libconnectivity_abstraction.so']) + if ca_os in ['android', 'tizen']: - env.AppendUnique(LIBS = ['coap']) - if env.get('SECURED') == '1': - env.AppendUnique(LIBS = ['tinydtls']) - env.AppendUnique(LIBS = ['timer']) + lib_env.AppendUnique(LIBS = ['coap']) + if lib_env.get('SECURED') == '1': + lib_env.AppendUnique(LIBS = ['tinydtls']) + lib_env.AppendUnique(LIBS = ['timer']) if ca_os != 'android': - env.AppendUnique(LIBS = ['rt']) - calib = env.SharedLibrary('connectivity_abstraction', env.get('CA_SRC')) + lib_env.AppendUnique(LIBS = ['rt']) + calib = lib_env.SharedLibrary('connectivity_abstraction', lib_env.get('CA_SRC')) else: - calib = env.StaticLibrary('connectivity_abstraction', env.get('CA_SRC')) -env.InstallTarget(calib, 'libconnectivity_abstraction') -env.UserInstallTargetLib(calib, 'libconnectivity_abstraction') + calib = lib_env.StaticLibrary('connectivity_abstraction', lib_env.get('CA_SRC')) +lib_env.InstallTarget(calib, 'libconnectivity_abstraction') +lib_env.UserInstallTargetLib(calib, 'libconnectivity_abstraction') diff --git a/resource/oc_logger/SConscript b/resource/oc_logger/SConscript index 35ae31c..16612dd 100644 --- a/resource/oc_logger/SConscript +++ b/resource/oc_logger/SConscript @@ -37,6 +37,7 @@ target_os = env.get('TARGET_OS') if target_os == 'android': liboc_logger_env.AppendUnique(CXXFLAGS = ['-frtti', '-fexceptions']) liboc_logger_env.AppendUnique(LIBS = ['gnustl_shared', 'log']) + liboc_logger_env.AppendUnique(LINKFLAGS = ['-Wl,-soname,liboc_logger.so']) if target_os not in ['arduino', 'windows', 'winrt']: liboc_logger_env.AppendUnique(CFLAGS = ['-Wall', '-std=c99', '-fPIC']) diff --git a/resource/src/SConscript b/resource/src/SConscript index aaa14f5..06b1369 100644 --- a/resource/src/SConscript +++ b/resource/src/SConscript @@ -57,8 +57,9 @@ 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']) + oclib_env.AppendUnique(CXXFLAGS = ['-frtti', '-fexceptions']) + oclib_env.AppendUnique(LIBS = ['boost_thread', 'gnustl_shared', 'log']) + oclib_env.AppendUnique(LINKFLAGS = ['-Wl,-soname,liboc.so']) if target_os == 'tizen': oclib_env.AppendUnique(CPPDEFINES = ['__TIZEN__']) -- 2.7.4