|
From: Alix L. <ali...@gm...> - 2021-05-11 12:01:39
|
Thanks Luigi for your help. This is exactly what I needed. Running `configure` with `--disable-shared` works fine, but I had to add the flag '-fPIC' in the same time. Otherwise, the swig compilation fails. I will also give a look to manylinux, which looks a better practice, thanks again. I have originally tried to build your dockerfiles on a 64bit Windows machine, and I noticed the swig compilation took hours -while the compilation directly on the host machine would take ~1h. Have you ever faced this sort of slowness? I remember having facing similar issues when trying to compile QuantLib Excel in 64bits, while it was fine in 32bits. I also noticed the PyQL project tackle this "issue" by relying on Cython, so that they can use parallelization (but I never tried). I don't know if there exists any workaround with swig (maybe except adding additional flag to the compiler to remove extra optimisation). Alix Le lun. 10 mai 2021 à 09:14, Luigi Ballabio <lui...@gm...> a écrit : > Hello Alix, > I'm not sure that `auditwheel repair` works outside the manylinux > images. Personally I'm using the `quay.io/pypa/manylinux2010_x86_64` > <http://quay.io/pypa/manylinux2010_x86_64> image to build the QuantLib > wheels on PyPI (used to be `quay.io/pypa/manylinux1_x86_64` > <http://quay.io/pypa/manylinux1_x86_64>, but since the latest release we > need a C++11 compiler so I upgraded). If you want to distribute to users > on a given Ubuntu version, I'd probably distribute both the wheel > (unrepaired) and the shared library. If you want a self-contained wheel, > another possibility (which I have done on Mac OS, but not on Linux so I > can't guarantee it works) might be to run `configure` with > `--disable-shared`, so it only creates the static library. This way, the > library code would be linked in the wrappers instead of being a dependency. > > Hope this helps, > Luigi > > > > > > On Sat, May 8, 2021 at 4:21 PM Alix Lassauzet <ali...@gm...> > wrote: > >> Hello Luigi and QL community, >> >> I am actually stuck in the process of building properly a wheel in >> QuantLib-Python from docker. In short, I am starting from Luigi's >> repository (https://github.com/lballabio/dockerfiles), then building the >> images boost, base, default and python3. At this point, one can use >> QuantLib-Python. >> >> Then, I tried to run "python3 setup.py bdist_wheel" to generate a wheel. >> And "repair" the wheel using auditwheel, I am facing this error: >> >> auditwheel: error: cannot repair "QuantLib******.whl" to >> "manylinux1_x86_64" ABI because of the presence of too-recent versioned >> symbols. You'll need to compile the wheel on an older toolchain. >> >> I have seen a discussion where Luigi mentioned to use manylinux for >> building a wheel. Does it mean we cannot generate a wheel from an >> Ubunbu distribution? If my understanding is correct, manylinux will provide >> wheels for any linux distribution, and looks the best practice to >> industrialise the release process. But what about if we don't care about >> the Linux distrib, and just want to build a wheel for this Ubuntu version, >> assuming users are required to use the same environment? The concern here >> seems to link the external shared library "libQuantLib.so.0". >> >> Many thanks to all, >> Alix >> >> Attaching the 2 earlier discussions that look related to this topic for >> reference: >> https://sourceforge.net/p/quantlib/mailman/message/36713117/ >> https://github.com/lballabio/QuantLib-SWIG/issues/103 >> >> >> _______________________________________________ >> QuantLib-users mailing list >> Qua...@li... >> https://lists.sourceforge.net/lists/listinfo/quantlib-users >> >> |