Closed ryan-sg closed 1 week ago
I noticed the target that CMake complains about missing didn't seem to exist as a string anywhere in the absl directory...
None if the absl_crc*
-prefixed targets do.
So took a while stab and just deleted those from meson.build
. It finished configuring a build dir and I got a new ashuffle executable.
index 26513a8..451176b 100644
--- a/meson.build
+++ b/meson.build
@@ -69,10 +69,6 @@ absl_libs = [
# Via Status & Time:
'absl_cord',
'absl_strerror',
- 'absl_crc_internal',
- 'absl_crc_cord_state',
- 'absl_crc32c',
- 'absl_crc_cpu_detect',
'absl_cord_internal',
'absl_cordz_functions',
'absl_cordz_handle',
Huh, it builds fine for me on master
, and I can see the deps in the source in subprojects/absl
. Could you paste the output of git log --format="%H" -n1 HEAD
and git submodule status subprojects/absl
when run from the root directory of the project? I wonder if your absl / source are out of sync. You could also try running git submodule update
to update to the latest submodule source.
CI also succeed to do a release build ~5 hours ago on master
: https://github.com/joshkunz/ashuffle/actions/runs/5907508033/job/16025906397
Well, unfortunately I ran git submodule update
first, it evidently checked out a different hash than what was in there. Strange, as I swear I had checked that submodules were updated several times. I have to be wrong.
Submodule path 'subprojects/absl': checked out 'd2de53124ec55390ce1ec66fd1fbf28b5a7ec4ec'
Submodule path 'subprojects/googletest': checked out '843976e4f582ccb76cf87e0f128585324335779b'
Thanks for the clue, restoring meson.build
it now configures successfully. Unfortunately though, the build now fails for me. It seems to be an issue within absl.
First, heres what the meson configure looks like after the submodule update:
The Meson build system
Version: 1.0.1
Source dir: /home/ryan/ashuffle
Build dir: /home/ryan/ashuffle/build
Build type: native build
Project name: ashuffle
Project version: v3.14.1
C compiler for the host machine: cc (clang 13.0.0 "OpenBSD clang version 13.0.0")
C linker for the host machine: cc ld.lld 13.0.0
C++ compiler for the host machine: c++ (clang 13.0.0 "OpenBSD clang version 13.0.0")
C++ linker for the host machine: c++ ld.lld 13.0.0
Host machine cpu family: x86_64
Host machine cpu: x86_64
Checking if "std::fs links with only stdlib" : links: YES
Executing subproject absl method cmake
absl| Found CMake: /usr/local/bin/cmake (3.25.2)
| Configuring the build directory with CMake version 3.25.2
| Running CMake with: -G Ninja -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_CXX_STANDARD=17 -DCMAKE_PROJECT_absl_INCLUDE=/home/ryan/ashuffle/tools/cmake/inject_project_source_dir.cmake -DMINGW=false
| - build directory: /home/ryan/ashuffle/build/subprojects/absl/__CMake_build
| - source directory: /home/ryan/ashuffle/subprojects/absl
| - toolchain file: /home/ryan/ashuffle/build/subprojects/absl/__CMake_build/CMakeMesonToolchainFile.cmake
| - preload file: /usr/local/lib/python3.10/site-packages/mesonbuild/cmake/data/preload.cmake
| - trace args: --trace-expand --trace-format=json-v1 --no-warn-unused-cli --trace-redirect=cmake_trace.txt
| - disabled policy warnings: [CMP0025, CMP0047, CMP0056, CMP0060, CMP0065, CMP0066, CMP0067, CMP0082, CMP0089, CMP0102]
| Running with expanded trace output on.
| Not searching for unused variables given on the command line.
| Trace will be written to cmake_trace.txt
| -- The CXX compiler identification is Clang 13.0.0
| -- Detecting CXX compiler ABI info
| -- Detecting CXX compiler ABI info - done
| -- Check for working CXX compiler: /usr/bin/c++ - skipped
| -- Detecting CXX compile features
| -- Detecting CXX compile features - done
| CMake Warning at CMakeLists.txt:77 (message):
| A future Abseil release will default ABSL_PROPAGATE_CXX_STD to ON for CMake
| 3.8 and up. We recommend enabling this option to ensure your project still
| builds correctly.
| -- Performing Test ABSL_INTERNAL_AT_LEAST_CXX17
| -- Performing Test ABSL_INTERNAL_AT_LEAST_CXX17 - Success
| -- Performing Test CMAKE_HAVE_LIBC_PTHREAD
| -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
| -- Found Threads: TRUE
| -- Configuring done
| -- Generating done
| -- Build files have been written to: /home/ryan/ashuffle/build/subprojects/absl/__CMake_build
absl| CMake configuration: SUCCEEDED
absl| CMake project absl has 205 build targets.
cmake-ast| Processing generated meson AST
cmake-ast| Build file: /home/ryan/ashuffle/build/subprojects/absl/meson.build
absl| Project name: absl
absl| Project version: undefined
absl| C compiler for the host machine: cc (clang 13.0.0 "OpenBSD clang version 13.0.0")
absl| C linker for the host machine: cc ld.lld 13.0.0
absl| C++ compiler for the host machine: c++ (clang 13.0.0 "OpenBSD clang version 13.0.0")
absl| C++ linker for the host machine: c++ ld.lld 13.0.0
absl| Build targets in project: 113
absl| Subproject absl finished.
Executing subproject yaml-cpp method cmake
| Configuring the build directory with CMake version 3.25.2
| Running CMake with: -G Ninja -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_CXX_STANDARD=17 -DYAML_BUILD_SHARED_LIBS=OFF
| - build directory: /home/ryan/ashuffle/build/subprojects/yaml-cpp/__CMake_build
| - source directory: /home/ryan/ashuffle/subprojects/yaml-cpp
| - toolchain file: /home/ryan/ashuffle/build/subprojects/yaml-cpp/__CMake_build/CMakeMesonToolchainFile.cmake
| - preload file: /usr/local/lib/python3.10/site-packages/mesonbuild/cmake/data/preload.cmake
| - trace args: --trace-expand --trace-format=json-v1 --no-warn-unused-cli --trace-redirect=cmake_trace.txt
| - disabled policy warnings: [CMP0025, CMP0047, CMP0056, CMP0060, CMP0065, CMP0066, CMP0067, CMP0082, CMP0089, CMP0102]
| Running with expanded trace output on.
| Not searching for unused variables given on the command line.
| Trace will be written to cmake_trace.txt
| -- The CXX compiler identification is Clang 13.0.0
| -- Detecting CXX compiler ABI info
| -- Detecting CXX compiler ABI info - done
| -- Check for working CXX compiler: /usr/bin/c++ - skipped
| -- Detecting CXX compile features
| -- Detecting CXX compile features - done
| -- Performing Test CMAKE_HAVE_LIBC_PTHREAD
| -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
| -- Found Threads: TRUE
| CMake Deprecation Warning at test/gtest-1.10.0/CMakeLists.txt:4 (cmake_minimum_required):
| Compatibility with CMake < 2.8.12 will be removed from a future version of
| CMake.
| Update the VERSION argument <min> value or use a ...<max> suffix to tell
| CMake that the project does not need compatibility with older versions.
| -- The C compiler identification is Clang 13.0.0
| -- Detecting C compiler ABI info
| -- Detecting C compiler ABI info - done
| -- Check for working C compiler: /usr/bin/cc - skipped
| -- Detecting C compile features
| -- Detecting C compile features - done
| CMake Deprecation Warning at test/gtest-1.10.0/googlemock/CMakeLists.txt:45 (cmake_minimum_required):
| Compatibility with CMake < 2.8.12 will be removed from a future version of
| CMake.
| Update the VERSION argument <min> value or use a ...<max> suffix to tell
| CMake that the project does not need compatibility with older versions.
| CMake Deprecation Warning at test/gtest-1.10.0/googletest/CMakeLists.txt:56 (cmake_minimum_required):
| Compatibility with CMake < 2.8.12 will be removed from a future version of
| CMake.
| Update the VERSION argument <min> value or use a ...<max> suffix to tell
| CMake that the project does not need compatibility with older versions.
| -- Found PythonInterp: /usr/local/bin/python3.10 (found version "3.10.12")
| -- Configuring done
| -- Generating done
| -- Build files have been written to: /home/ryan/ashuffle/build/subprojects/yaml-cpp/__CMake_build
yaml-cpp| CMake configuration: SUCCEEDED
yaml-cpp| CMake project YAML_CPP has 37 build targets.
cmake-ast| Processing generated meson AST
cmake-ast| Build file: /home/ryan/ashuffle/build/subprojects/yaml-cpp/meson.build
yaml-cpp| Project name: YAML_CPP
yaml-cpp| Project version: undefined
yaml-cpp| C++ compiler for the host machine: c++ (clang 13.0.0 "OpenBSD clang version 13.0.0")
yaml-cpp| C++ linker for the host machine: c++ ld.lld 13.0.0
yaml-cpp| WARNING: Please do not define rpath with a linker argument, use install_rpath
yaml-cpp| or build_rpath properties instead.
yaml-cpp| This will become a hard error in a future Meson release.
yaml-cpp| WARNING: Please do not define rpath with a linker argument, use install_rpath
yaml-cpp| or build_rpath properties instead.
yaml-cpp| This will become a hard error in a future Meson release.
yaml-cpp| WARNING: Please do not define rpath with a linker argument, use install_rpath
yaml-cpp| or build_rpath properties instead.
yaml-cpp| This will become a hard error in a future Meson release.
yaml-cpp| WARNING: Please do not define rpath with a linker argument, use install_rpath
yaml-cpp| or build_rpath properties instead.
yaml-cpp| This will become a hard error in a future Meson release.
yaml-cpp| Build targets in project: 150
yaml-cpp| Subproject yaml-cpp finished.
Found pkg-config: /usr/bin/pkg-config (0.29.2)
Run-time dependency libmpdclient found: YES 2.20
Configuring version.cc using configuration
Build targets in project: 154
ashuffle v3.14.1
Subprojects
absl : YES
yaml-cpp: YES 4 warnings
Found ninja-1.11.1 at /usr/local/bin/ninja
WARNING: Running the setup command as `meson [options]` instead of `meson setup [options]` is ambiguous and deprecated.
Then, here is where the build stops now:
00:18 ryan@build-amd64:~/ashuffle/build$ ninja
[3/183] Compiling C++ object subprojects/absl/libabsl_base.a.p/absl_base_internal_sysinfo.cc.o
FAILED: subprojects/absl/libabsl_base.a.p/absl_base_internal_sysinfo.cc.o
c++ -Isubprojects/absl/libabsl_base.a.p -Isubprojects/absl -I../subprojects/absl -I/usr/local/include -Isubprojects/absl/__CMake_build -I../subprojects/absl/__CMake_build -fcolor-diagnostics -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=gnu++17 -O0 -g -Werror=switch -fno-omit-frame-pointer -Wcast-qual -Wconversion -Wfloat-overflow-conversion -Wfloat-zero-conversion -Wfor-loop-analysis -Wformat-security -Wgnu-redeclared-enum -Winfinite-recursion -Winvalid-constexpr -Wliteral-conversion -Wmissing-declarations -Woverlength-strings -Wpointer-arith -Wself-assign -Wshadow-all -Wshorten-64-to-32 -Wsign-conversion -Wstring-conversion -Wtautological-overlap-compare -Wtautological-unsigned-zero-compare -Wundef -Wuninitialized -Wunreachable-code -Wunused-comparison -Wunused-local-typedefs -Wunused-result -Wvla -Wwrite-strings -Wno-float-conversion -Wno-implicit-float-conversion -Wno-implicit-int-float-conversion -Wno-unknown-warning-option -DNOMINMAX -MD -MQ subprojects/absl/libabsl_base.a.p/absl_base_internal_sysinfo.cc.o -MF subprojects/absl/libabsl_base.a.p/absl_base_internal_sysinfo.cc.o.d -o subprojects/absl/libabsl_base.a.p/absl_base_internal_sysinfo.cc.o -c ../subprojects/absl/absl/base/internal/sysinfo.cc
../subprojects/absl/absl/base/internal/sysinfo.cc:450:10: error: static_cast from 'pthread_t' (aka 'pthread *') to 'pid_t' (aka 'int') is not allowed
return static_cast<pid_t>(pthread_self());
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
[4/183] Compiling C++ object subprojects/absl/libabsl_base.a.p/absl_base_internal_thread_identity.cc.o
ninja: build stopped: subcommand failed.
I suspect this is an OpenBSD-specific issue I'm hitting with some code in there. It had been awhile since I successfully built ashuffle here, and now I'm wondering what I had done previous times that must have led that submodule to be at a different commit. Funny I managed a successful build with it at the other checkout, whilst removing some lines from meson.build
as luck would have it, my terminal still has the diff from when I pasted it for the removed lines from meson.build
:
index d2de531..7f3c0d7 160000
--- a/subprojects/absl
+++ b/subprojects/absl
@@ -1 +1 @@
-Subproject commit d2de53124ec55390ce1ec66fd1fbf28b5a7ec4ec
+Subproject commit 7f3c0d781134d25b24e0b55346482a2d366bf59b
diff --git a/subprojects/googletest b/subprojects/googletest
index 843976e..93f08be 160000
--- a/subprojects/googletest
+++ b/subprojects/googletest
@@ -1 +1 @@
-Subproject commit 843976e4f582ccb76cf87e0f128585324335779b
+Subproject commit 93f08be653c36ddc6943e9513fc14c7292b4d007
I suppose that indicates where I was?
EDIT: seems it was this one:
commit 7f3c0d781134d25b24e0b55346482a2d366bf59b
Author: Abseil Team <absl-team@google.com>
Date: Fri Sep 30 12:11:27 2022 -0700
Allows absl::StrCat to accept types that implement AbslStringify()
PiperOrigin-RevId: 478050535
Change-Id: I8e4a4b01aceb8d712476101633eac0ce8647823a
So it must have been un-updated and by weird fluke was able to compile here on OpenBSD with that older version. Apologies for such a confusing report.
Just to at least have a full confirmation, I re-checked out that 7f3c0d781134d25b24e0b55346482a2d366bf59b
commit for subprojects/absl, re-edited meson.build
, and tested again, it builds successfully for me that way but just not with the proper commit.
back on commit d2de53124ec55390ce1ec66fd1fbf28b5a7ec4ec
for absl, and attempting to build it directly in subprojects/absl/build with its cmake build stuff, produces the same failure as when trying to build from ashuffle parent build directory:
00:41 ryan@build-amd64:..build$ make
[ 0%] Building CXX object absl/base/CMakeFiles/log_severity.dir/log_severity.cc.o
[ 1%] Linking CXX static library libabsl_log_severity.a
[ 1%] Built target log_severity
[ 2%] Building CXX object absl/base/CMakeFiles/raw_logging_internal.dir/internal/raw_logging.cc.o
[ 2%] Linking CXX static library libabsl_raw_logging_internal.a
[ 2%] Built target raw_logging_internal
[ 2%] Building CXX object absl/base/CMakeFiles/spinlock_wait.dir/internal/spinlock_wait.cc.o
[ 3%] Linking CXX static library libabsl_spinlock_wait.a
[ 3%] Built target spinlock_wait
[ 3%] Building CXX object absl/base/CMakeFiles/base.dir/internal/cycleclock.cc.o
[ 4%] Building CXX object absl/base/CMakeFiles/base.dir/internal/spinlock.cc.o
[ 4%] Building CXX object absl/base/CMakeFiles/base.dir/internal/sysinfo.cc.o
/home/ryan/ashuffle/subprojects/absl/absl/base/internal/sysinfo.cc:450:10: error: static_cast from 'pthread_t' (aka 'pthread *') to 'pid_t' (aka 'int') is not allowed
return static_cast<pid_t>(pthread_self());
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
*** Error 1 in . (absl/base/CMakeFiles/base.dir/build.make:104 'absl/base/CMakeFiles/base.dir/internal/sysinfo.cc.o': cd /home/ryan/ashuffle...)
*** Error 2 in . (CMakeFiles/Makefile2:1478 'absl/base/CMakeFiles/base.dir/all': make -s -f absl/base/CMakeFiles/base.dir/build.make absl/ba...)
*** Error 2 in /home/ryan/ashuffle/subprojects/absl/build (Makefile:146 'all': make -s -f CMakeFiles/Makefile2 all)
I will try and take this to absl and see if they can help me further, which should then allow ashuffle to roll forward at some point hopefully.
Thanks for following up with absl! Yeah, I don't have a BSD flavor test platform handy filed #208 for adding some automatic BSD verifiction.
OpenBSD 7.6 was released today, upon upgrading my build VM and pulling latest git for ashuffle, the build process seems to work fine top to bottom again and with a working binary. I'll close this now. Thanks!
Hi! I don't know exactly when this issue started happening unfortunately. Normally I have been building a newer copy of ashuffle on a dedicated build vm for another VM I have running an ashuffle-powered radio stream.
I did notice that going into
subprojects/absl
andmkdir build; cd build; cmake ..; make
successfully builds everything in there. I tried to add the meson message about listing available targets but it just made meson more mad than it already was.Hoping it might just be something I can add as a flag to nudge it in the right direction, any clues? Thanks!