Closed
Description
Hi, I'm trying to build pyosmium with libc++ on Debian and got an interesting failure.
The build was successful but few tests failed with an unexpected exception thrown:
..........................................EE..............E......E.......................................................
======================================================================
ERROR: test_clear (test_index.TestLocationTable)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/pyosmium/test/test_index.py", line 42, in test_clear
self.table.get(593)
RuntimeError: id 593 not found
You might notice that the error message is correct but not the error class.
I dug around and found this try-catch is not working well: https://github.com/osmcode/pyosmium/blob/master/lib/osmium.cc#L20-L26
I came up with some small PoC, trying to identify the root cause but have no luck. libc++ seems to have no issue work together with libstdc++ and exception.
Could you please take some time to see if you've got any idea about this? I would be greatful since I'm not very familiar with the code itself.
Build script I use in a debian:buster
docker image:
apt-get update
apt-get install -y -qq libboost-dev libexpat1-dev zlib1g-dev libbz2-dev libproj-dev libgeos-dev liblz4-dev cmake
apt-get install -y -qq python3-pip git
pip3 install nose shapely setuptools
git clone https://github.com/osmcode/pyosmium.git
cd pyosmium
git clone --quiet --depth 1 https://github.com/osmcode/libosmium.git contrib/libosmium
git clone --quiet --depth 1 https://github.com/mapbox/protozero.git contrib/protozero
git clone --quiet --depth 1 https://github.com/pybind/pybind11.git contrib/pybind11
apt-get install -y libc++1 libc++-dev
# https://libcxx.llvm.org/docs/UsingLibcxx.html
export CXXFLAGS="-nostdinc++ -I/usr/lib/llvm-7/include/c++/v1"
export LDFLAGS="-nodefaultlibs -L/usr/lib/llvm-7/lib -lc++ -lc++abi -lm -lc -lgcc_s -lgcc"
ln -s /usr/lib/llvm-7/lib/libc++abi.so.1 /usr/lib/llvm-7/lib/libc++abi.so
python3 setup.py build
cd test && python3 run_tests.py
Metadata
Metadata
Assignees
Labels
No labels