[cmake-developers] [CMake 0015514]: SWIG_ADD_MODULE omits all symbols from .so on NDK

Mantis Bug Tracker mantis at public.kitware.com
Wed Apr 15 14:14:54 EDT 2015


The following issue has been SUBMITTED. 
====================================================================== 
https://public.kitware.com/Bug/view.php?id=15514 
====================================================================== 
Reported By:                David Borel
Assigned To:                
====================================================================== 
Project:                    CMake
Issue ID:                   15514
Category:                   CMake
Reproducibility:            always
Severity:                   major
Priority:                   high
Status:                     new
====================================================================== 
Date Submitted:             2015-04-15 14:14 EDT
Last Modified:              2015-04-15 14:14 EDT
====================================================================== 
Summary:                    SWIG_ADD_MODULE omits all symbols from .so on NDK
Description: 
I'm trying to use SWIG to generate a C# wrapper for a C++ shared library. I've
configured CMake to build two dynamic libs: one SHARED lib for the native layer
and one SWIG module for the wrapper. Everything works fine on Windows and Mac.
On Android, the first shared library exports all the correct symbols. But the
SWIG module does not export anything. SWIG generates the correct _wrap.cxx file
and C# files. But all exports from the cxx file are missing from the module's
.so. I see all of the symbols in the _wrap.cxx.o file, so there appears to be a
problem with the linker settings used by CMake. I've pasted the linker command
line below.

Steps to Reproduce: 
Compile any SWIG C# wrapper for NDK.

Additional Information: 
C:\Users\dborel\Documents\Projects\ndk\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64\bin\arm-linux-androideabi-gcc.exe
 -fPIC -fexceptions -frtti -Wno-psabi
--sysroot=C:/Users/dborel/Documents/Projects/ndk/platforms/android-8/arch-arm
-fpic -funwind-tables -finline-limit=64 -fsigned-char -no-canonical-prefixes
-march=armv7-a -mfloat-abi=softfp -mfpu=neon -fdata-sections -ffunction-sections
-Wa,--noexecstack  -std=c++11 -marm -fno-omit-frame-pointer -fno-strict-aliasing
-O0 -g -DDEBUG -D_DEBUG  -Wl,--fix-cortex-a8 -Wl,--no-undefined
-Wl,--gc-sections -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now  -shared
-Wl,-soname, -o libs\armeabi-v7a\libOVRPluginNET.so
CMakeFiles/OVRPluginNET.dir/Generated/OVRPluginCSHARP_wrap.cxx.o 
-LC:\Users\dborel\Documents\Projects\ndk\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64\user\libs\armeabi-v7a
 -LC:\Users\dborel\Documents\Projects\ndk\platforms\android-19\arch-arm\usr\lib 
-LC:\Users\dborel\Documents\Projects\UnitySDK\OVRPlugin\..\3rdParty\VRLib\Lib
libs\armeabi-v7a\libOVRPlugin.so -loculus -lz -ljpeg -lGLESv3 -lEGL -llog
-landroid 
"C:/Users/dborel/Documents/Projects/ndk/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/libgnustl_static.a"
"C:/Users/dborel/Documents/Projects/ndk/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/libsupc++.a"
-lm

====================================================================== 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2015-04-15 14:14 David Borel    New Issue                                    
======================================================================



More information about the cmake-developers mailing list