Open diehard2 opened 1 month ago
I am getting build errors with yasmtools x86, x64, cgal. It all worked half a month ago. Something done in the recent commits. Whatever I install, I get:
error: building boost-headers:x64-windows failed with: BUILD_FAILEDSee https://learn.microsoft.com/vcpkg/troubleshoot/build-failures?WT.mc_id=vcpkg_inproduct_cli for more information.
Elapsed time to handle boost-headers:x64-windows: 873 ms
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+boost-headers
You can submit a new issue at:
https://github.com/microsoft/vcpkg/issues/new?title=[boost-headers]+Build+error+on+x64-windows&body=Copy+issue+body+from+C%3A%2FUsers%2FAdministrator%2FDocuments%2FGitHub%2Fvcpkg%2Finstalled%2Fvcpkg%2Fissue_body.md
Sorry, I still can't reproduce this problem locally, I only have Ubuntu locally.
thanks for looking at it @jimwang118. Since I have a really simple reproducer is there anyone else we could tag who can run a docker image and see the issue? This is a pretty standard image for RHEL based systems
@jimwang118
okay, I got folly building with an overlay port. The issue first came up in
https://github.com/microsoft/vcpkg/issues/25214#issuecomment-1154976112 in 2022
I found the solution in
https://github.com/microsoft/vcpkg/issues/35751
Now I fix it locally by add iberty into fix-deps.patch file:
-find_package(LibEvent MODULE REQUIRED)
-list(APPEND FOLLY_LINK_LIBRARIES ${LIBEVENT_LIB})
-list(APPEND FOLLY_INCLUDE_DIRECTORIES ${LIBEVENT_INCLUDE_DIR})
+find_package(Libevent CONFIG REQUIRED)
+list(APPEND FOLLY_LINK_LIBRARIES libevent::core libevent::extra)
+if(NOT WIN32)
+ list(APPEND FOLLY_LINK_LIBRARIES libevent::pthreads iberty)
+endif()
Is it possible to have this added to the port since
hmmmm, it will cause a build issue if binutils-devel isn't installed. Any ideas on a workaround?
okay, this works
+ list(APPEND FOLLY_LINK_LIBRARIES libevent::pthreads)
+ find_library(LIBIBERTY_LIBRARY NAMES libiberty.a)
+ if(LIBIBERTY_LIBRARY)
+ list(APPEND FOLLY_LINK_LIBRARIES iberty)
+ endif()
Interestingly, it appears that fix-deps is trying to do something with libiberty, but its not successful on redhat. maybe altering this line
@@ -132,17 +140,24 @@ find_package(Libiberty)
list(APPEND FOLLY_LINK_LIBRARIES ${LIBIBERTY_LIBRARIES})
list(APPEND FOLLY_INCLUDE_DIRECTORIES ${LIBIBERTY_INCLUDE_DIRS})
to what I have above will fix the issue
If you look at the old discussion... AFAIU the problem start's with folly's #if __has_include(<demangle.h>)
. Such checks too easily diverge from link lib tests.
@dg0yt I believe my patch will fix this for all cases. @jimwang118 is this something that can be added so that I don't have to maintain my own overlay port?
find_library
should look for NAMES iberty
.__has_include
. The compile-time #if
should use the result of a configuration-time check, not use an independent one.while it wouldn't fix every issue, it would fix at least some issues. maybe a message to install binutils-devel if the library is not found?
Not for Ubuntu (libiberty-dev
).
Operating system
AlmaLinux 8.9
Compiler
GCC
I filed this failure last week, but it took me a little while to get a minimal reproducer. I couldn't figure out how to reopen the issue. This is with gcc and a pretty standard build setup. Thanks for any help
Steps to reproduce the behavior
Dockerfile
docker build . -t build_test docker run -it build_test