-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hi,
I'm have a shared library that I would like to distribute along with my python
package, written in pure C. It requires the
correct installation of other software at linktime, and at runtime. The package
a ctypes wrapper for SUNDIALS (a mathematical C
library).
I would normally simply compile my shared library on the command line as follows
- --- snip: shell output 1 ---
$ gcc -c -o sundials_core_aux.o sundials_core_aux.c
$ gcc --shared -fPIC -Wl,-solibsundials_core_aux.so.1 -o
libsundials_core_aux.so.1.0.0 sundials_core_aux.o
$ /usr/lib/gcc/i686-pc-linux-gnu/3.4.6/../../../../i686-pc-linux-gnu/bin/ld:
warning: creating a DT_TEXTREL in object.
- --- snip ---
To get rid of the DT_TEXTREL warning, I simply add -fPIC to compilation step.
- --- snip: shell output 2 ---
$ gcc --shared -fPIC -c -o sundials_core_aux.o
$ gcc --shared -fPIC -Wl,-solibsundials_core_aux.so.1 -o
libsundials_core_aux.so.1.0.0 sundials_core_aux.c
$
- --- snip ---
This produces no errors or warnings. Obviously this is a non-portable solution,
and I'm trying to use distutils to compile the
library. But when I do, using
- --- snip: setup.py ---
compiler = ccompiler.new_compiler()
compiler.compile(['sundials_core_aux.c'])
compiler.link_shared_lib(['src/sundials_core_aux.o'],
compiler.library_filename('sundials_core_aux', 'shared'), 'dist')
- --- snip ---
The DT_TEXTREL warning appears. I've tried any number of combinations of
extra_preargs and extra_postargs using '-fPIC' and
'-Wl,-so...', to no avail, and equally, these are not portable arguments.
Should the warning just be ignored, or is there a way
I can get rid of it?
Thanks,
James
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (GNU/Linux)
iD8DBQFGp2nYolkHbC41Z6URAguzAJ9GWnXSVsHl6T9M126jv5e3N6hxcACguPPv
aCJiGxN3M8TVJ84oYYBsc7U=
=I2Vn
-----END PGP SIGNATURE-----
_______________________________________________
Distutils-SIG maillist - [email protected]
http://mail.python.org/mailman/listinfo/distutils-sig