Using statically linked libtiledb.a in TileDB-Py

A question for which I believe I know the answer, as I am currently embedding a statically linked libtiledb.a within a compiled python module.

If I wanted to make use of that same statically linked libtiledb.a within a build of TileDB-Py, I am guessing I would need to add the same entries to the libraries, include_dirs, extra_link_args and other arguments to Extension that I am currently using within my own compiled python module. I assume I would also need to avoid using the current runtime_library_dirs argument.

I know the python api is under active development. Is working from a personal fork of TileDB-Py with a replacement setup.py file the most reasonable means of packaging a statically linked library?

Any particular gotchas that you all can think of?

Hi Andy,

I had a quick look at this, and it seems tractable except for TBB. The following patch-set enables building a statically-linked TileDB-Py extension against a static libTileDB built without TBB:

I didn’t see a quick solution to the TBB linking issue (missing symbol _ZTIN3tbb4taskE) – if you happen to have found a solution to that, let me know and I’ll include it.

Thanks Isaiah for looking into this, and apologies on the delayed reply. When I can get back to trying out this bit of packaging setup I will let you know if I have success. There is one configuration where I am building without TBB, but another where I am. Anyway, thanks again for the quick feedback on my question.

-Andy