Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to compile tbox as shared library? #30

Closed
silvioprog opened this issue Feb 15, 2017 · 2 comments
Closed

How to compile tbox as shared library? #30

silvioprog opened this issue Feb 15, 2017 · 2 comments

Comments

@silvioprog
Copy link

silvioprog commented Feb 15, 2017

Hello masters,

Looking at Build page, it seems there is no any option to compile tbox as shared library, so I changed set_kind("static") to set_kind("shared") in all .lua build files, however, when I try to compile it with my changes, it is stopped with the following error:

...
[49%]: compiling.release src/tbox/platform/arch/context.S
[50%]: linking.release libtbox.so
error: /usr/bin/ld: pkg/polarssl.pkg/lib/linux/x86_64/libpolarssl.a(ctr_drbg.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
pkg/polarssl.pkg/lib/linux/x86_64/libpolarssl.a: error adding symbols: Bad value
collect2: error: ld returned 1 exit status

I tried to add -fPIC via add_cxflags("-fPIC"), but got same error.

So, how to compile tbox using official mechanisms?

Thank you!

My environment:

$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 16.04.2 LTS
Release:	16.04
Codename:	xenial

$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.4.0-6ubuntu1~16.04.4' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-5-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)
@waruqi
Copy link
Member

waruqi commented Feb 16, 2017

Although xmake can build shared library, but tbox does not support now. Because tbox has too many interfaces.

@silvioprog
Copy link
Author

Hm... Anyway I'm going to try to use tbox as static library. (I'm very newbie in jni + c)
Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants