Opened 2 years ago
Last modified 23 months ago
#65377 reopened defect
Volk 2.5.1 Broken on <= 10.14, needs std::filesystem
Reported by: | michaelld (Michael Dickens) | Owned by: | michaelld (Michael Dickens) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | Cc: | ra1nb0w, tehcog (tehcog), larryv (Lawrence Velázquez) | |
Port: | volk |
Description (last modified by michaelld (Michael Dickens))
I totally messed up the Volk 2.5.1 update commit ... will fix ASAP! Fixed that but then Volk 2.5 requires C++17 std::filesystem so need to deal with that now!
Change History (14)
comment:1 Changed 2 years ago by ra1nb0w
comment:2 Changed 2 years ago by ryandesign (Ryan Carsten Schmidt)
Description: | modified (diff) |
---|
comment:3 Changed 2 years ago by michaelld (Michael Dickens)
I'll be working on this issue today. Major difficulty today is time (so many meetings) rather than the actual issue(s) ... but I'll get it done one way or the other!
comment:4 Changed 2 years ago by tehcog (tehcog)
Cc: | tehcog added |
---|
comment:5 Changed 2 years ago by michaelld (Michael Dickens)
Owner: | set to michaelld |
---|---|
Resolution: | → fixed |
Status: | new → closed |
comment:6 Changed 2 years ago by ra1nb0w
macOS =< 10.14 don't have c++17 filesystem api
Run Build Command(s):/usr/bin/make -f Makefile cmTC_72415/fast && /Library/Developer/CommandLineTools/usr/bin/make -f CMakeFiles/cmTC_72415.dir/build.make CMakeFiles/cmTC_72415.dir/build Building CXX object CMakeFiles/cmTC_72415.dir/CheckIncludeFile.cxx.o /usr/bin/clang++ -pipe -I/opt/local/libexec/boost/1.76/include -Os -DNDEBUG -I/opt/local/libexec/boost/1.76/include -stdlib=libc++ -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk -Wall -arch x86_64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk -mmacosx-version-min=10.14 -std=gnu++17 -MD -MT CMakeFiles/cmTC_72415.dir/CheckIncludeFile.cxx.o -MF CMakeFiles/cmTC_72415.dir/CheckIncludeFile.cxx.o.d -o CMakeFiles/cmTC_72415.dir/CheckIncludeFile.cxx.o -c /opt/local/var/macports/build/_Users_rainbow_sources_github_macports-ports_science_volk/volk/work/build/CMakeFiles/CMakeTmp/CheckIncludeFile.cxx /opt/local/var/macports/build/_Users_rainbow_sources_github_macports-ports_science_volk/volk/work/build/CMakeFiles/CMakeTmp/CheckIncludeFile.cxx:1:10: fatal error: 'filesystem' file not found #include <filesystem> ^~~~~~~~~~~~ 1 error generated.
Therefore it doesn't configure anymore.
comment:7 Changed 2 years ago by ra1nb0w
Note from version 2.5.1
In the past, we relied on Boost for several tasks in volk_profile. For years, we minimized Boost usage to boost::filesystem. We mostly switched to C++17 std::filesystem years ago. The last distribution in our CI system that required Boost to build VOLK, was Ubuntu 14.04. Thus, now is the time to remove the Boost dependency completely and rely on C++17 features.
comment:8 Changed 2 years ago by michaelld (Michael Dickens)
Description: | modified (diff) |
---|---|
Resolution: | fixed |
Status: | closed → reopened |
Summary: | Volk 2.5.1 Broken → Volk 2.5.1 Broken on <= 10.14, needs std::filesystem |
Well crap
comment:9 Changed 2 years ago by michaelld (Michael Dickens)
test PR here: https://github.com/macports/macports-ports/pull/15205
comment:10 Changed 2 years ago by michaelld (Michael Dickens)
comment:11 Changed 2 years ago by michaelld (Michael Dickens)
OK so now Volk is back to 2.5.0 & should be more universally buildable. What to do here? I'd love a more universal solution for the libc++ issues. We have this Volk one (std::filesystem) as well as the recent Doxygen one (https://trac.macports.org/ticket/65314). We can try static linking of MP-libc++.a, but that will currently be a one-off solution for each port. It'd be great if we could somehow just move MP to use the MP-libc++.dylib ... @kencu is probably the most knowledgable about this! Do we have a MP ticket up for this discussion already? If so then we can tag it here & close this issue.
comment:12 Changed 2 years ago by ra1nb0w
Probably, to avoid unexpected crash/link issues the solution is to use https://github.com/gulrak/filesystem and finding a simple way to overwrite the namespace. Patching is tedious but generally the filesystem calls are very few.
comment:13 Changed 2 years ago by michaelld (Michael Dickens)
If I'm going to do a patch anyway, then I'll just do it to Volk straight up to re-allow dynamic picking of std::filesystem
and boost::filesystem
. I'm going to track down the commit we put in place & just create a reverse patch ... just for MacPorts needs. That way we can keep everything in 1 place & not change dependencies. And, Volk can remain as-is; no need to fix it up!
comment:14 Changed 23 months ago by larryv (Lawrence Velázquez)
Cc: | larryv added |
---|
maybe, doing a revert.