Summary: | sci-libs/gdal-1.8.0 - libgdal.so: undefined reference to `MPI::Win::Free()' | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Lebedev Roman <lebedev.ri> |
Component: | Current packages | Assignee: | Steve Arnold <nerdboy> |
Status: | RESOLVED INVALID | ||
Severity: | normal | CC: | Adrian.Bassett, bircoph, sci-geosciences |
Priority: | High | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: | Build log |
Description
Lebedev Roman
2011-02-13 08:52:47 UTC
Created attachment 262321 [details]
Build log
After I re-emerged hdf5 without mpi useflag (if its enabled, cxx useflag is turned off by ebuild) and with cxx useflag enabled, gdal was compiled successfully. pininotebook2 ~ # emerge -pv1 sci-libs/hdf5 sci-libs/gdal sci-geosciences/grass sci-geosciences/qgis These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ] sci-libs/hdf5-1.8.5_p1-r1 USE="cxx examples fortran szip threads zlib -debug -mpi" 0 kB [ebuild R ] sci-libs/gdal-1.8.0 USE="curl doc fits geos gif hdf5 jpeg jpeg2k mysql odbc perl png python ruby sqlite threads -aux_xml -debug -ecwj2k -gml -netcdf -ogdi -postgres" RUBY_TARGETS="ruby18" 0 kB [ebuild R ] sci-geosciences/grass-6.4.0 USE="X cairo cxx ffmpeg fftw gmath jpeg largefile mysql nls odbc opengl png python readline sqlite tiff truetype -debug -motif -postgres -wxwidgets" 0 kB [ebuild R ] sci-geosciences/qgis-1.5.0 USE="examples gps grass gsl python sqlite -postgres" 0 kB Total: 4 packages (4 reinstalls), Size of downloads: 0 kB gdal should also compile successfully with mpi, which it does if you have mpich2 installed. Try running "ldd -r /path/to/libmpi.so" and see if get any undefined references. If so, then it's a bug in the mpi package and not in gdal (and make sure you know which mpi library is installed). Sometimes something like the C++ bindings in a dependent package can also be a problem (checking that now on hdf5). Make sure both libmpi and libhdf5 are both compiled with the right USE flags for what you need. $ emerge mpich2 hdf5 gdal -v1p These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ] sys-cluster/mpich2-1.2.1_p1-r1 USE="cxx doc fortran mpi-threads romio threads -debug" 0 kB [ebuild R ] sci-libs/hdf5-1.8.5_p1-r1 USE="fortran mpi szip threads zlib -cxx -debug -examples" 0 kB [ebuild R ] sci-libs/gdal-1.8.0 USE="aux_xml curl fits geos gif gml hdf5 jpeg jpeg2k mysql netcdf ogdi perl png postgres python ruby sqlite threads -debug -doc -ecwj2k -odbc" RUBY_TARGETS="ruby18" 0 kB Total: 3 packages (3 reinstalls), Size of downloads: 0 kB $ ldd -r /usr/lib64/libgdal.so linux-vdso.so.1 => (0x00007fffdf91c000) libgeos_c.so.1 => /usr/lib/libgeos_c.so.1 (0x00007ff364b95000) libsqlite3.so.0 => /usr/lib/libsqlite3.so.0 (0x00007ff3648fa000) libexpat.so.1 => /usr/lib/libexpat.so.1 (0x00007ff3646d0000) libjasper.so.1 => /usr/lib/libjasper.so.1 (0x00007ff364477000) libhdf5.so.6 => /usr/lib/libhdf5.so.6 (0x00007ff363fd5000) libogdi.so.3 => /usr/lib/libogdi.so.3 (0x00007ff363db1000) libgif.so.4 => /usr/lib/libgif.so.4 (0x00007ff363ba7000) libjpeg.so.8 => /usr/lib/libjpeg.so.8 (0x00007ff36396c000) libgeotiff.so.2 => /usr/lib/libgeotiff.so.2 (0x00007ff363739000) libtiff.so.5 => /usr/lib/libtiff.so.5 (0x00007ff3634c9000) libpng14.so.14 => /usr/lib/libpng14.so.14 (0x00007ff3632a2000) libnetcdf.so.6 => /usr/lib/libnetcdf.so.6 (0x00007ff362fa4000) libcfitsio.so.3 => /usr/lib/libcfitsio.so.3 (0x00007ff362bf7000) libpq.so.5 => /usr/lib64/postgresql-9.0/lib64/libpq.so.5 (0x00007ff3629cf000) libz.so.1 => /lib/libz.so.1 (0x00007ff3627b8000) libpthread.so.0 => /lib/libpthread.so.0 (0x00007ff36259b000) libdl.so.2 => /lib/libdl.so.2 (0x00007ff362397000) libcurl.so.4 => /usr/lib/libcurl.so.4 (0x00007ff36213e000) libmysqlclient.so.16 => /usr/lib/libmysqlclient.so.16 (0x00007ff361dba000) libm.so.6 => /lib/libm.so.6 (0x00007ff361b38000) libstdc++.so.6 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/libstdc++.so.6 (0x00007ff36182f000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007ff361619000) libc.so.6 => /lib/libc.so.6 (0x00007ff3612ba000) libgeos-3.2.2.so => /usr/lib/libgeos-3.2.2.so (0x00007ff360f41000) libsz.so.2 => /usr/lib64/libsz.so.2 (0x00007ff360d2d000) libmpich.so.1.2 => /usr/lib64/libmpich.so.1.2 (0x00007ff36095d000) libproj.so.0 => /usr/lib/libproj.so.0 (0x00007ff360717000) libX11.so.6 => /usr/lib/libX11.so.6 (0x00007ff3603d8000) libjbig.so => /usr/lib/libjbig.so (0x00007ff3601cb000) libhdf5_hl.so.6 => /usr/lib64/libhdf5_hl.so.6 (0x00007ff35ff9d000) libssl.so.1.0.0 => /usr/lib/libssl.so.1.0.0 (0x00007ff35fd40000) libcrypto.so.1.0.0 => /usr/lib/libcrypto.so.1.0.0 (0x00007ff35f992000) libldap_r-2.4.so.2 => /usr/lib/libldap_r-2.4.so.2 (0x00007ff35f746000) /lib64/ld-linux-x86-64.so.2 (0x00007ff365851000) libldap-2.4.so.2 => /usr/lib64/libldap-2.4.so.2 (0x00007ff35f501000) librt.so.1 => /lib/librt.so.1 (0x00007ff35f2f8000) libssl3.so => /usr/lib64/libssl3.so (0x00007ff35f0bf000) libnss3.so => /usr/lib64/libnss3.so (0x00007ff35ed90000) libnspr4.so => /usr/lib64/libnspr4.so (0x00007ff35eb52000) libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007ff35e933000) liblber-2.4.so.2 => /usr/lib/liblber-2.4.so.2 (0x00007ff35e724000) libresolv.so.2 => /lib/libresolv.so.2 (0x00007ff35e50d000) libsasl2.so.2 => /usr/lib/libsasl2.so.2 (0x00007ff35e2f1000) libgnutls.so.26 => /usr/lib/libgnutls.so.26 (0x00007ff35e045000) libnssutil3.so => /usr/lib/libnssutil3.so (0x00007ff35de25000) libplc4.so => /usr/lib/libplc4.so (0x00007ff35dc1f000) libplds4.so => /usr/lib/libplds4.so (0x00007ff35da1b000) libXau.so.6 => /usr/lib/libXau.so.6 (0x00007ff35d817000) libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007ff35d610000) libcrypt.so.1 => /lib/libcrypt.so.1 (0x00007ff35d3d9000) libtasn1.so.3 => /usr/lib/libtasn1.so.3 (0x00007ff35d1c8000) libgcrypt.so.11 => /usr/lib/libgcrypt.so.11 (0x00007ff35cf4d000) libgpg-error.so.0 => /usr/lib/libgpg-error.so.0 (0x00007ff35cd49000) (In reply to comment #3) > gdal should also compile successfully with mpi, which it does if you have > mpich2 installed. Try running "ldd -r /path/to/libmpi.so" and see if get any > undefined references. If so, then it's a bug in the mpi package and not in > gdal (and make sure you know which mpi library is installed). I use openmpi with USE="cxx", and gdal fails to compile as described above. I recompiled hdf5 with "-mpi cxx", and gfal compiles now, but I dislike this workaround. Then you need to get openmpi compiled correctly. Run ldd -r on the openmpi lib and see what it tells you. We've been through this before with mpich2, and I was unable to convince the maintainer of that package to fix it. The upstream guys fixed it at some point, so now it works correctly. At this point, my answer is "go fix openmpi and then gdal will build against it successfully". The problem is not with gdal... |