Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[libarchive] Fix static linking dependencies #16082

Merged
merged 1 commit into from
Apr 20, 2021

Conversation

DDoSolitary
Copy link
Contributor

Fix configuration of libarchive's dependencies zstd and zlib, which would otherwise cause undefined symbols error when linking statically.

@NancyLi1013 NancyLi1013 added the category:port-bug The issue is with a library, which is something the port should already support label Feb 7, 2021
Copy link
Contributor

@NancyLi1013 NancyLi1013 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please also bump Port-Version in CONTROL file.

Also use the command vcpkg x-add-version libarchive to update the files in versions folder.
https://github.com/microsoft/vcpkg/blob/master/docs/maintainers/maintainer-guide.md#update-the-version-files-in-versions-of-any-modified-ports

ports/libarchive/portfile.cmake Show resolved Hide resolved
@DDoSolitary
Copy link
Contributor Author

DDoSolitary commented Feb 7, 2021

Versions bumped as requested.

Sorry I forgot to commit the updated CONTROL file when running vcpkg x-add-version. Just updated again.

@DDoSolitary
Copy link
Contributor Author

I have to idea why the x64_linux CI tests failed.

@JackBoosY
Copy link
Contributor

JackBoosY commented Feb 8, 2021

[489/494] : && /usr/bin/c++ -fPIC  -g /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libglib-2.0.a -pthread -pthread /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libglib-2.0.a -pthread /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libglib-2.0.a -pthread -pthread Source/QtDialog/CMakeFiles/cmake-gui.dir/AddCacheEntry.cxx.o Source/QtDialog/CMakeFiles/cmake-gui.dir/CMakeSetup.cxx.o Source/QtDialog/CMakeFiles/cmake-gui.dir/CMakeSetupDialog.cxx.o Source/QtDialog/CMakeFiles/cmake-gui.dir/FirstConfigure.cxx.o Source/QtDialog/CMakeFiles/cmake-gui.dir/QCMake.cxx.o Source/QtDialog/CMakeFiles/cmake-gui.dir/QCMakeCacheView.cxx.o Source/QtDialog/CMakeFiles/cmake-gui.dir/QCMakeWidgets.cxx.o Source/QtDialog/CMakeFiles/cmake-gui.dir/RegexExplorer.cxx.o Source/QtDialog/CMakeFiles/cmake-gui.dir/WarningMessagesDialog.cxx.o Source/QtDialog/CMakeFiles/cmake-gui.dir/moc_AddCacheEntry.cpp.o Source/QtDialog/CMakeFiles/cmake-gui.dir/moc_Compilers.cpp.o Source/QtDialog/CMakeFiles/cmake-gui.dir/moc_CMakeSetupDialog.cpp.o Source/QtDialog/CMakeFiles/cmake-gui.dir/moc_FirstConfigure.cpp.o Source/QtDialog/CMakeFiles/cmake-gui.dir/moc_QCMake.cpp.o Source/QtDialog/CMakeFiles/cmake-gui.dir/moc_QCMakeCacheView.cpp.o Source/QtDialog/CMakeFiles/cmake-gui.dir/moc_QCMakeWidgets.cpp.o Source/QtDialog/CMakeFiles/cmake-gui.dir/moc_RegexExplorer.cpp.o Source/QtDialog/CMakeFiles/cmake-gui.dir/moc_WarningMessagesDialog.cpp.o Source/QtDialog/CMakeFiles/cmake-gui.dir/qrc_CMakeSetup.cpp.o Source/QtDialog/CMakeFiles/cmake-gui.dir/mnt/vcpkg-ci/installed/x64-linux/share/cmake/Qt5Gui/Qt5Gui_QEglFSEmulatorIntegrationPlugin_Import.cpp.o Source/QtDialog/CMakeFiles/cmake-gui.dir/mnt/vcpkg-ci/installed/x64-linux/share/cmake/Qt5Gui/Qt5Gui_QEglFSKmsEglDeviceIntegrationPlugin_Import.cpp.o Source/QtDialog/CMakeFiles/cmake-gui.dir/mnt/vcpkg-ci/installed/x64-linux/share/cmake/Qt5Gui/Qt5Gui_QEglFSX11IntegrationPlugin_Import.cpp.o Source/QtDialog/CMakeFiles/cmake-gui.dir/mnt/vcpkg-ci/installed/x64-linux/share/cmake/Qt5Gui/Qt5Gui_QGifPlugin_Import.cpp.o Source/QtDialog/CMakeFiles/cmake-gui.dir/mnt/vcpkg-ci/installed/x64-linux/share/cmake/Qt5Gui/Qt5Gui_QICOPlugin_Import.cpp.o Source/QtDialog/CMakeFiles/cmake-gui.dir/mnt/vcpkg-ci/installed/x64-linux/share/cmake/Qt5Gui/Qt5Gui_QJpegPlugin_Import.cpp.o Source/QtDialog/CMakeFiles/cmake-gui.dir/mnt/vcpkg-ci/installed/x64-linux/share/cmake/Qt5Gui/Qt5Gui_QXcbEglIntegrationPlugin_Import.cpp.o Source/QtDialog/CMakeFiles/cmake-gui.dir/mnt/vcpkg-ci/installed/x64-linux/share/cmake/Qt5Gui/Qt5Gui_QXcbGlxIntegrationPlugin_Import.cpp.o Source/QtDialog/CMakeFiles/cmake-gui.dir/mnt/vcpkg-ci/installed/x64-linux/share/cmake/Qt5Gui/Qt5Gui_QXcbIntegrationPlugin_Import.cpp.o -o bin/cmake-gui  -Wl,-rpath,/mnt/vcpkg-ci/installed/x64-linux/debug/lib  Source/libCMakeLib.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libQt5Widgets.a  Source/kwsys/libcmsys.a  Utilities/std/libcmstd.a  Utilities/cmexpat/libcmexpat.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libz.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libarchive.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libz.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libbz2d.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libxml2.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/liblz4d.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/liblzmad.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/liblzo2.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libzstdd.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libcurl-d.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libssl.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libcrypto.a  -ldl  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libjsoncpp.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/liblibuv.a  Utilities/cmlibrhash/libcmlibrhash.a  -pthread  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libQt5Gui.a  /mnt/vcpkg-ci/installed/x64-linux/debug/plugins/egldeviceintegrations/libqeglfs-emu-integration.a  /mnt/vcpkg-ci/installed/x64-linux/debug/plugins/egldeviceintegrations/libqeglfs-kms-egldevice-integration.a  /mnt/vcpkg-ci/installed/x64-linux/debug/plugins/egldeviceintegrations/libqeglfs-x11-integration.a  /mnt/vcpkg-ci/installed/x64-linux/debug/plugins/imageformats/libqgif.a  /mnt/vcpkg-ci/installed/x64-linux/debug/plugins/imageformats/libqico.a  /mnt/vcpkg-ci/installed/x64-linux/debug/plugins/imageformats/libqjpeg.a  /mnt/vcpkg-ci/installed/x64-linux/debug/plugins/xcbglintegrations/libqxcb-egl-integration.a  /mnt/vcpkg-ci/installed/x64-linux/debug/plugins/xcbglintegrations/libqxcb-glx-integration.a  /mnt/vcpkg-ci/installed/x64-linux/debug/plugins/platforms/libqxcb.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libQt5EglFSDeviceIntegration.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libQt5KmsSupport.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libQt5EglFsKmsSupport.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libQt5XcbQpa.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libQt5EglSupport.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libQt5GlxSupport.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libQt5EventDispatcherSupport.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libQt5ServiceSupport.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libQt5ThemeSupport.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libQt5FontDatabaseSupport.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libQt5FbSupport.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libQt5InputSupport.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libQt5PlatformCompositorSupport.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libQt5VulkanSupport.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libQt5XkbCommonSupport.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libQt5Gui.a  /mnt/vcpkg-ci/installed/x64-linux/debug/plugins/egldeviceintegrations/libqeglfs-emu-integration.a  /mnt/vcpkg-ci/installed/x64-linux/debug/plugins/egldeviceintegrations/libqeglfs-kms-egldevice-integration.a  /mnt/vcpkg-ci/installed/x64-linux/debug/plugins/egldeviceintegrations/libqeglfs-x11-integration.a  /mnt/vcpkg-ci/installed/x64-linux/debug/plugins/imageformats/libqgif.a  /mnt/vcpkg-ci/installed/x64-linux/debug/plugins/imageformats/libqico.a  /mnt/vcpkg-ci/installed/x64-linux/debug/plugins/imageformats/libqjpeg.a  /mnt/vcpkg-ci/installed/x64-linux/debug/plugins/xcbglintegrations/libqxcb-egl-integration.a  /mnt/vcpkg-ci/installed/x64-linux/debug/plugins/xcbglintegrations/libqxcb-glx-integration.a  /mnt/vcpkg-ci/installed/x64-linux/debug/plugins/platforms/libqxcb.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libQt5EglFSDeviceIntegration.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libQt5KmsSupport.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libQt5EglFsKmsSupport.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libQt5XcbQpa.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libQt5EglSupport.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libQt5GlxSupport.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libQt5EventDispatcherSupport.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libQt5ServiceSupport.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libQt5ThemeSupport.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libQt5FontDatabaseSupport.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libQt5FbSupport.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libQt5InputSupport.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libQt5PlatformCompositorSupport.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libQt5VulkanSupport.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libQt5XkbCommonSupport.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libQt5EglFsKmsSupport.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libjpeg.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libQt5GlxSupport.a  /usr/lib/x86_64-linux-gnu/libxcb-glx.so  /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libQt5XcbQpa.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libQt5EglFSDeviceIntegration.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libQt5EventDispatcherSupport.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libQt5FbSupport.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libQt5EglSupport.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libQt5InputSupport.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libQt5PlatformCompositorSupport.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libQt5KmsSupport.a  /usr/lib/x86_64-linux-gnu/libdrm.so  /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libQt5ServiceSupport.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libQt5ThemeSupport.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libQt5FontDatabaseSupport.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libQt5EdidSupport.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libQt5XkbCommonSupport.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libQt5VulkanSupport.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libQt5EdidSupport.a  /usr/lib/x86_64-linux-gnu/libX11-xcb.so  /usr/lib/x86_64-linux-gnu/libxcb-icccm.so  /usr/lib/x86_64-linux-gnu/libxcb-image.so  /usr/lib/x86_64-linux-gnu/libxcb-shm.so  /usr/lib/x86_64-linux-gnu/libxcb-util.so  /usr/lib/x86_64-linux-gnu/libxcb-keysyms.so  /usr/lib/x86_64-linux-gnu/libxcb-randr.so  /usr/lib/x86_64-linux-gnu/libxcb-render-util.so  /usr/lib/x86_64-linux-gnu/libxcb-render.so  /usr/lib/x86_64-linux-gnu/libxcb-shape.so  /usr/lib/x86_64-linux-gnu/libxcb-sync.so  /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so  /usr/lib/x86_64-linux-gnu/libxcb-xinerama.so  /usr/lib/x86_64-linux-gnu/libxcb-xkb.so  /usr/lib/x86_64-linux-gnu/libxcb-xinput.so  /usr/lib/x86_64-linux-gnu/libxcb.so  /usr/lib/x86_64-linux-gnu/libSM.so  /usr/lib/x86_64-linux-gnu/libICE.so  /usr/lib/x86_64-linux-gnu/libxkbcommon-x11.so  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libEGL.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libGLESv2.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libANGLE.a  /usr/lib/x86_64-linux-gnu/libXext.so  /usr/lib/x86_64-linux-gnu/libX11.so  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libQt5DBus.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libQt5DBus.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libfontconfig.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libexpat.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libuuid.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libQt5DeviceDiscoverySupport.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libQt5DeviceDiscoverySupport.a  /lib/x86_64-linux-gnu/libudev.so  /usr/lib/x86_64-linux-gnu/libxkbcommon.so  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libQt5Core.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libQt5Gui.a  /usr/lib/x86_64-linux-gnu/libGL.so  /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libharfbuzz.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libfreetyped.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libbrotlidec-static.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libbrotlicommon-static.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libQt5Core.a  -lm  /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libz.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libdouble-conversion.a  /usr/lib/x86_64-linux-gnu/libdl.so  /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libpcre2-16.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libzstdd.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libbz2d.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libpng16d.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libicui18n.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libicutu.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libicuuc.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libicuio.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libicudata.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libbz2d.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libpng16d.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libicui18n.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libicutu.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libicuuc.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libicuio.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libicudata.a  /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libzstdd.a  -lpthread  -Wl,-rpath-link,/mnt/vcpkg-ci/installed/x64-linux/debug/lib && :
FAILED: bin/cmake-gui 
c++: error: /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libglib-2.0.a: No such file or directory
c++: error: /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libglib-2.0.a: No such file or directory
c++: error: /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libglib-2.0.a: No such file or directory

@NancyLi1013
Copy link
Contributor

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@NancyLi1013
Copy link
Contributor

@DDoSolitary

The failures on x64-linux are not related with this PR. I have rerun to rebuild.

@JackBoosY
Copy link
Contributor

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@DDoSolitary
Copy link
Contributor Author

I'm unable to reproduce the x64-linux error locally. Running ./vcpkg install --overlay-ports=scripts/test_ports cmake:x64-linux on my Arch Linux installation on WSL works without issues.

The errors in windows triplets seems irrelevant. They failed due to some network errors.

@ras0219-msft
Copy link
Contributor

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@DDoSolitary
Copy link
Contributor Author

DDoSolitary commented Feb 18, 2021

@JackBoosY

c++: error: /mnt/vcpkg-ci/installed/x64-linux/debug/lib//libglib-2.0.a: No such file or directory

It's quite surprising that it's trying to link against glib. The cmake port doesn't depend on the glib port at all (not even intermediately, glib is not installed when I built cmake in a clean vcpkg installation).

I guess the reason why I'm unable to reproduce the error is that my Arch Linux environment already has the library available under /usr/lib. My build log does say that it is linking against /usr/lib/libglib-2.0.so. To confirm this, I'll test in a clean environment without glib installed.

@JackBoosY
Copy link
Contributor

cc @ras0219 @ras0219-msft
Can you please take a look?

Thanks.

@DDoSolitary
Copy link
Contributor Author

DDoSolitary commented Feb 19, 2021

Strangely, after removing libglib-2.0.so from /usr/lib, build fails with another error

CMake Error at /root/vcpkg/installed/x64-linux/share/cmake/Qt5Core/Qt5CoreConfig.cmake:95 (message):
  Library not found: glib-2.0

So I still have no idea why it's unable to find the glib library in the CI build...

@PhoebeHui PhoebeHui added the depends:different-pr This PR or Issue depends on a PR which has been filed label Feb 23, 2021
@NancyLi1013
Copy link
Contributor

NancyLi1013 commented Feb 23, 2021

Depends on PR #15808.

Edit: Another PR #16954 is fixing this problem.

@NancyLi1013
Copy link
Contributor

@DDoSolitary

Could you please resolve the conflicts?

@NancyLi1013 NancyLi1013 removed the depends:different-pr This PR or Issue depends on a PR which has been filed label Apr 7, 2021
@DDoSolitary
Copy link
Contributor Author

@NancyLi1013 Rebased.

@NancyLi1013
Copy link
Contributor

LGTM now, thanks for your patience @DDoSolitary.

@NancyLi1013 NancyLi1013 added the info:reviewed Pull Request changes follow basic guidelines label Apr 9, 2021
@microsoft microsoft deleted a comment from NancyLi1013 Apr 9, 2021
@strega-nil strega-nil merged commit cc1aef5 into microsoft:master Apr 20, 2021
@DDoSolitary DDoSolitary deleted the patch-libarchive-dep branch April 20, 2021 02:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category:port-bug The issue is with a library, which is something the port should already support info:reviewed Pull Request changes follow basic guidelines
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants