microsoft / vcpkg

C++ Library Manager for Windows, Linux, and MacOS
MIT License
22.85k stars 6.31k forks source link

[gdal] build failure on x64-linux-dynamic #25332

Closed drspam1991 closed 1 year ago

drspam1991 commented 2 years ago

Host Environment

To Reproduce Steps to reproduce the behavior: ./vcpkg install gdal:x64-linux-dynamic --overlay-triplets=custom-triplets

Failure logs Computing installation plan... The following packages will be built and installed: gdal[core,hdf5,netcdf,postgresql,supported-default-features]:x64-linux-dynamic -> 3.4.3#2 Detecting compiler hash for triplet "x64-linux-dynamic"... Restored 0 packages from /home/mohsen/.cache/vcpkg/archives in 93.81 us. Use --debug to see more details. Installing 1/1 gdal:x64-linux-dynamic... Building gdal[core,hdf5,netcdf,postgresql,supported-default-features]:x64-linux-dynamic... -- Using cached OSGeo-gdal-v3.4.3.tar.gz. -- Cleaning sources at /home/mohsen/projects/vcpkg2/vcpkg-2022.06.15/buildtrees/gdal/src/v3.4.3-6622d0563d.clean. Use --editable to skip cleaning for the packages you specify. -- Extracting source /home/mohsen/projects/vcpkg2/vcpkg-2022.06.15/downloads/OSGeo-gdal-v3.4.3.tar.gz -- Applying patch 0001-Fix-debug-crt-flags.patch -- Applying patch 0002-Fix-build.patch -- Applying patch 0004-Fix-cfitsio.patch -- Applying patch 0005-Fix-configure.patch -- Applying patch 0006-Fix-mingw-dllexport.patch -- Applying patch 0007-Control-tools.patch -- Applying patch 0008-Fix-absl-string_view.patch -- Applying patch 0009-atlbase.patch -- Applying patch 0010-symprefix.patch -- Using source at /home/mohsen/projects/vcpkg2/vcpkg-2022.06.15/buildtrees/gdal/src/v3.4.3-6622d0563d.clean -- Getting CMake variables for x64-linux-dynamic-dbg -- Getting CMake variables for x64-linux-dynamic-rel -- Generating configure for x64-linux-dynamic -- Finished generating configure for x64-linux-dynamic -- Configuring x64-linux-dynamic-dbg CMake Error at scripts/cmake/vcpkg_execute_required_process.cmake:83 (message): Command failed: /usr/bin/bash -c "V=1 ././configure \"--with-gnm=yes\" \"--with-hide-internal-symbols=yes\" \"--with-java=no\" \"--with-perl=no\" \"--with-python=no\" \"--with-curl=yes\" \"--with-expat=yes\" \"--with-geos=yes\" \"--with-gif=yes\" \"--with-libjson=yes\" \"--with-geotiff=yes\" \"--with-jpeg=yes\" \"--with-liblzma=yes\" \"--with-png=yes\" \"--with-webp=yes\" \"--with-xml2=yes\" \"--with-openjpeg=yes\" \"--with-proj=yes\" \"--with-sqlite3=yes\" \"--with-libtiff=yes\" \"--with-libz=yes\" \"--with-zstd=yes\" \"--with-spatialite=no\" \"--with-poppler=no\" \"--with-pg=yes\" \"--with-mysql=no\" \"--with-cfitsio=no\" \"--with-hdf5=yes\" \"--with-netcdf=yes\" \"--with-armadillo=no\" \"--with-blosc=no\" \"--with-brunsli=no\" \"--with-charls=no\" \"--with-crypto=no\" \"--with-cryptopp=no\" \"--with-dds=no\" \"--with-dods-root=no\" \"--with-ecw=no\" \"--with-epsilon=no\" \"--with-exr=no\" \"--with-fgdb=no\" \"--with-fme=no\" \"--with-freexl=no\" \"--with-grass=no\" \"--with-gta=no\" \"--with-hdf4=no\" \"--with-hdfs=no\" \"--with-heif=no\" \"--with-idb=no\" \"--with-ingres=no\" \"--with-jp2lura=no\" \"--with-jp2mrsid=no\" \"--with-jasper=no\" \"--with-jxl=no\" \"--with-kakadu=no\" \"--with-kea=no\" \"--with-lerc=no\" \"--with-libdeflate=no\" \"--with-libgrass=no\" \"--with-libkml=no\" \"--with-lz4=no\" \"--with-mdb=no\" \"--with-mongocxx=no\" \"--with-mongocxxv3=no\" \"--with-mrsid=no\" \"--with-mrsid_lidar=no\" \"--with-msg=no\" \"--with-null=no\" \"--with-oci=no\" \"--with-odbc=no\" \"--with-ogdi=no\" \"--with-opencl=no\" \"--with-pcidsk=no\" \"--with-pcraster=no\" \"--with-pcre=no\" \"--with-pcre2=no\" \"--with-pdfium=no\" \"--with-podofo=no\" \"--with-qhull=no\" \"--with-rasdaman=no\" \"--with-rasterlite2=no\" \"--with-rdb=no\" \"--with-sfcgal=no\" \"--with-sosi=no\" \"--with-teigha=no\" \"--with-tiledb=no\" \"--with-xerces=no\" \"--with-tools=no\" \"--disable-silent-rules\" \"--verbose\" \"--enable-shared\" \"--disable-static\" \"--enable-debug\" \"--with-tools=no\" \"--with-proj-extra-lib-for-test=-L/home/mohsen/projects/vcpkg2/vcpkg-2022.06.15/installed/x64-linux-dynamic/debug/lib/pkgconfig/../../lib -lproj\" \"--prefix=/home/mohsen/projects/vcpkg2/vcpkg-2022.06.15/installed/x64-linux-dynamic/debug\" \"--bindir=\${prefix}/../tools/gdal/debug/bin\" \"--sbindir=\${prefix}/../tools/gdal/debug/sbin\" \"--libdir=\${prefix}/lib\" \"--includedir=\${prefix}/../include\" \"--datarootdir=\${prefix}/share/gdal\"" Working Directory: /home/mohsen/projects/vcpkg2/vcpkg-2022.06.15/buildtrees/gdal/x64-linux-dynamic-dbg Error code: 1 See logs for more information: /home/mohsen/projects/vcpkg2/vcpkg-2022.06.15/buildtrees/gdal/config-x64-linux-dynamic-dbg-out.log /home/mohsen/projects/vcpkg2/vcpkg-2022.06.15/buildtrees/gdal/config-x64-linux-dynamic-dbg-err.log

Call Stack (most recent call first): scripts/cmake/vcpkg_configure_make.cmake:707 (vcpkg_execute_required_process) ports/gdal/portfile.cmake:295 (vcpkg_configure_make) scripts/ports.cmake:146 (include)

error: building gdal:x64-linux-dynamic failed with: BUILD_FAILED Please ensure you're using the latest port files with git pull and vcpkg update. Then check for known issues at: https://github.com/microsoft/vcpkg/issues?q=is%3Aissue+is%3Aopen+in%3Atitle+gdal You can submit a new issue at: https://github.com/microsoft/vcpkg/issues/new?template=report-package-build-failure.md&title=[gdal]+Build+error Include '[gdal] Build error' in your bug report title, the following version information in your bug description, and attach any relevant failure logs from above. vcpkg-tool version: 2022-06-15-b0f08e40f8e8752dd0b260138ee078bd9599559c vcpkg-scripts version: unknown

You can also use the prefilled template from /home/mohsen/projects/vcpkg2/vcpkg-2022.06.15/installed/vcpkg/issue_body.md.

vcpkg-2022.06.15/buildtrees/gdal/config-x64-linux-dynamic-dbg-err.log file: configure: WARNING: unrecognized options: --with-expat, --with-geos, --with-libjson, --with-sqlite3, --with-epsilon, --disable-silent-rules configure: error: PROJ 6 symbols not found

Additional context I used a copy of triplets/x64-linux.cmake named x64-linux-dynamic.cmake which I set the VCPKG_LIBRARY_LINKAGE to dynamic.

dg0yt commented 2 years ago

We need config.log from /home/mohsen/projects/vcpkg2/vcpkg-2022.06.15/buildtrees/gdal/x64-linux-dynamic-dbg.

drspam1991 commented 2 years ago

Here is the config.log from buildtrees/gdal/x64-linux-dynamic-dbg: config.log

dg0yt commented 2 years ago

The problem with libproj comes from libcurl-d.so:

configure:24834: g++ -o conftest -DHAVE_AVX_AT_COMPILE_TIME -DHAVE_SSSE3_AT_COMPILE_TIME -DHAVE_SSE_AT_COMPILE_TIME -fPIC  -g -DDEBUG -ftrapv -fvisibility=hidden  -L/home/mohsen/projects/vcpkg2/vcpkg-2022.06.15/installed/x64-linux-dynamic/debug/lib  conftest.cpp -lproj  -lproj -L/home/mohsen/projects/vcpkg2/vcpkg-2022.06.15/installed/x64-linux-dynamic/debug/lib/pkgconfig/../../lib -lproj -lsqlite3 -L/home/mohsen/projects/vcpkg2/vcpkg-2022.06.15/installed/x64-linux-dynamic/debug/lib/pkgconfig/../../lib -ltiffd -ljpeg -L/home/mohsen/projects/vcpkg2/vcpkg-2022.06.15/installed/x64-linux-dynamic/debug/lib/pkgconfig/../../lib -lz -lpthread -lm -lrt -ldl  >&5
/usr/bin/ld: warning: libcurl-d.so, needed by /home/mohsen/projects/vcpkg2/vcpkg-2022.06.15/installed/x64-linux-dynamic/debug/lib/libproj.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: /home/mohsen/projects/vcpkg2/vcpkg-2022.06.15/installed/x64-linux-dynamic/debug/lib/libproj.so: undefined reference to `curl_easy_perform'
/usr/bin/ld: /home/mohsen/projects/vcpkg2/vcpkg-2022.06.15/installed/x64-linux-dynamic/debug/lib/libproj.so: undefined reference to `curl_easy_getinfo'
/usr/bin/ld: /home/mohsen/projects/vcpkg2/vcpkg-2022.06.15/installed/x64-linux-dynamic/debug/lib/libproj.so: undefined reference to `curl_easy_init'
/usr/bin/ld: /home/mohsen/projects/vcpkg2/vcpkg-2022.06.15/installed/x64-linux-dynamic/debug/lib/libproj.so: undefined reference to `curl_easy_cleanup'
/usr/bin/ld: /home/mohsen/projects/vcpkg2/vcpkg-2022.06.15/installed/x64-linux-dynamic/debug/lib/libproj.so: undefined reference to `curl_easy_setopt'

libcurl-d.so does exist, but it is in trouble:

configure:24636: gcc -o conftest -DHAVE_AVX_AT_COMPILE_TIME -DHAVE_SSSE3_AT_COMPILE_TIME -DHAVE_SSE_AT_COMPILE_TIME -fPIC  -g -DDEBUG -ftrapv -fvisibility=hidden  -L/home/mohsen/projects/vcpkg2/vcpkg-2022.06.15/installed/x64-linux-dynamic/debug/lib  conftest.c -L/home/mohsen/projects/vcpkg2/vcpkg-2022.06.15/installed/x64-linux-dynamic/debug/lib/pkgconfig/../../lib -lcurl-d >&5
/usr/bin/ld: warning: libssl.so.3, needed by /home/mohsen/projects/vcpkg2/vcpkg-2022.06.15/installed/x64-linux-dynamic/debug/lib/libcurl-d.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libcrypto.so.3, needed by /home/mohsen/projects/vcpkg2/vcpkg-2022.06.15/installed/x64-linux-dynamic/debug/lib/libcurl-d.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: /home/mohsen/projects/vcpkg2/vcpkg-2022.06.15/installed/x64-linux-dynamic/debug/lib/libcurl-d.so: undefined reference to `EVP_MD_CTX_free@OPENSSL_3.0.0'
/usr/bin/ld: /home/mohsen/projects/vcpkg2/vcpkg-2022.06.15/installed/x64-linux-dynamic/debug/lib/libcurl-d.so: undefined reference to `OCSP_RESPONSE_free@OPENSSL_3.0.0'
/usr/bin/ld: /home/mohsen/projects/vcpkg2/vcpkg-2022.06.15/installed/x64-linux-dynamic/debug/lib/libcurl-d.so: undefined reference to `SSL_shutdown@OPENSSL_3.0.0'
/usr/bin/ld: /home/mohsen/projects/vcpkg2/vcpkg-2022.06.15/installed/x64-linux-dynamic/debug/lib/libcurl-d.so: undefined reference to `X509_NAME_get_entry@OPENSSL_3.0.0'
/usr/bin/ld: /home/mohsen/projects/vcpkg2/vcpkg-2022.06.15/installed/x64-linux-dynamic/debug/lib/libcurl-d.so: undefined reference to `SSL_connect@OPENSSL_3.0.0'
...

Now you need to check if libssl.so.3 and libcrypto.so.3 exist in installed/x64-linux-dynamic/debug/lib.

drspam1991 commented 2 years ago

@dg0yt Thanks for the answer, But libssl.so.3 and libcrypto.so.3 files existed in /home/mohsen/projects/vcpkg2/vcpkg-2022.06.15/installed/x64-linux-dynamic/debug/libdirectory

Osyotr commented 2 years ago

Check that you use binutils >= 2.28. I had similar error when building on an ancient system: https://sourceware.org/bugzilla/show_bug.cgi?id=20535

Also, you probably need to apply this patch: https://github.com/microsoft/vcpkg/pull/23035

drspam1991 commented 2 years ago

I Solved the problem by copying libcurl-d.so libcurl.so libssl.so libssl.so.3 libcrypto.so libcrypto.so.3 from installed directory to /usr/local/lib

Osyotr commented 2 years ago

This is not a solution, this is a dirty hack.

drspam1991 commented 2 years ago

@Osyotr I didn't say I found a good solution, I said this is how I solved my problem.

Cheney-W commented 1 year ago

This issue hasn’t been updated in 3 month, if it is still an issue, please reopen this issue.