Closed domenicquirl closed 4 months ago
@jean-airoldie I patched with the fix you mentioned in https://github.com/jean-airoldie/zeromq-src-rs/issues/42#issuecomment-2210501073, which looked promising in that the cargo_metadata
from cc
includes instructions that would add the file to the link paths. I still can't get it to cross-compile successfully though - I've attached a full log to the issue description above, the primary error appears to still be the same.
@domenicquirl Could you run your build again with CC_ENABLE_DEBUG_OUTPUT=1
and give me the output of that.
Based on the output you provided so far, the specific commands that cause the build to fail seem to be the following.
exit status: 1
cargo:warning=ToolExecError: Command "aarch64-linux-gnu-g++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-gdwarf-4" "-fno-omit-frame-pointer" "-I" "/cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/include" "-I" "/cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src" "-I" "/cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src" "-I" "/cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/external/sha1" "-I" "/target/aarch64-unknown-linux-gnu/debug/build/zmq-sys-8d8854777a617d31/out" "-Wall" "-Wextra" "-DZMQ_BUILD_TESTS=OFF" "-DZMQ_USE_CV_IMPL_STL11=1" "-DZMQ_STATIC=1" "-DZMQ_USE_BUILTIN_SHA1=1" "-DZMQ_HAVE_WS=1" "-DZMQ_IOTHREAD_POLLER_USE_EPOLL=1" "-DZMQ_POLL_BASED_ON_POLL=1" "-DZMQ_HAVE_IPC=1" "-DHAVE_STRNLEN=1" "-DZMQ_HAVE_UIO=1" "-DZMQ_HAVE_STRUCT_SOCKADDR_UN=1" "-o" "/target/aarch64-unknown-linux-gnu/debug/build/zmq-sys-8d8854777a617d31/out/lib/b5831782cc127234-socket_base.o" "-c" "/cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src/socket_base.cpp" with args aarch64-linux-gnu-g++ did not execute successfully (status code exit status: 1).
exit status: 1
cargo:warning=ToolExecError: Command "aarch64-linux-gnu-g++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-gdwarf-4" "-fno-omit-frame-pointer" "-I" "/cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/include" "-I" "/cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src" "-I" "/cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src" "-I" "/cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/external/sha1" "-I" "/target/aarch64-unknown-linux-gnu/debug/build/zmq-sys-8d8854777a617d31/out" "-Wall" "-Wextra" "-DZMQ_BUILD_TESTS=OFF" "-DZMQ_USE_CV_IMPL_STL11=1" "-DZMQ_STATIC=1" "-DZMQ_USE_BUILTIN_SHA1=1" "-DZMQ_HAVE_WS=1" "-DZMQ_IOTHREAD_POLLER_USE_EPOLL=1" "-DZMQ_POLL_BASED_ON_POLL=1" "-DZMQ_HAVE_IPC=1" "-DHAVE_STRNLEN=1" "-DZMQ_HAVE_UIO=1" "-DZMQ_HAVE_STRUCT_SOCKADDR_UN=1" "-o" "/target/aarch64-unknown-linux-gnu/debug/build/zmq-sys-8d8854777a617d31/out/lib/b5831782cc127234-mailbox_safe.o" "-c" "/cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src/mailbox_safe.cpp" with args aarch64-linux-gnu-g++ did not execute successfully (status code exit status: 1).
I wonder if the strlcpy.c
file gets copied to the out directory of the build somehow then gets glob included in the subsequent build, causing the error.
Its also possible that the strlcpy.c
is not the real cause of the failure. Enabling CC_ENABLE_DEBUG_OUTPUT=1
should allow us to identify that.
Ok so I passed CC_ENABLE_DEBUG_OUTPUT
and got the same failure.
The more extensive output made me notice the lines
cargo:warning=In file included from /usr/aarch64-linux-gnu/include/c++/5/condition_variable:35:0,
cargo:warning= from /cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src/condition_variable.hpp:70,
cargo:warning= from /cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src/mailbox_safe.hpp:16,
cargo:warning= from /cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src/mailbox_safe.cpp:4:
cargo:warning=/usr/aarch64-linux-gnu/include/c++/5/bits/c++0x_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
cargo:warning= #error This file requires compiler and library support \
cargo:warning= ^
which also appear for socket_base
in addition to mailbox_safe
, the two files you pointed out from the ToolExecError
s:
cargo:warning=In file included from /usr/aarch64-linux-gnu/include/c++/5/condition_variable:35:0,
cargo:warning= from /cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src/condition_variable.hpp:70,
cargo:warning= from /cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src/mailbox_safe.hpp:16,
cargo:warning= from /cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src/socket_base.cpp:47:
cargo:warning=/usr/aarch64-linux-gnu/include/c++/5/bits/c++0x_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
cargo:warning= #error This file requires compiler and library support \
cargo:warning= ^
I vaguely remembered coming across https://github.com/erickt/rust-zmq/issues/356 while looking for existing issues in zmq
, zmq-sys
and zeromq-src
, so I tried to also set CXXFLAGS=-std=c++11
, which actually made cross
compile successfully for the aarch64
target 🎉
There are some stray warnings that remain:
warning: zmq-sys@0.12.0: aarch64-linux-gnu-gcc: error: unrecognized command line option '-?'
warning: zmq-sys@0.12.0: aarch64-linux-gnu-gcc: fatal error: no input files
warning: zmq-sys@0.12.0: compilation terminated.
warning: zmq-sys@0.12.0: aarch64-linux-gnu-g++: error: unrecognized command line option '-?'
warning: zmq-sys@0.12.0: aarch64-linux-gnu-g++: fatal error: no input files
warning: zmq-sys@0.12.0: compilation terminated.
but the build itself succeeds and all my tests run successfully. For completeness, I also tried with only the additional CXXFLAGS
against the "real" zmq
and zmq-sys
, using zeromq-src
version v0.2.6+4.3.4
. This also works, so it seems strlcpy
is not the culprit here.
The libzmq
README says that the C implementation uses C++98 with "some optional C++11-fragments". Who would be the one causing those fragments to apparently be included - zeromq-src
, zmq-sys
(e.g. by choosing to compile without libsodium
, which I know they do in their build.rs
)? Is this something that could be set in the cc
invocations here for everyone (using cc::Build::std
), or will it differ for different targets?
I'm trying to figure out why the build was working without the error in CI, but not when cross-compiling locally. I thought that if the issue is about glibc
/ strlcpy
, it would be because the aarch64
used by cross
is older than the image we use in CI, and thus the CI image could have a more recent glibc
which includes the function. This must then also apply to the C++ standard version that the included gcc
uses when you don't give another version... the cross
image has
root@6d00165ac14c:/# aarch64-linux-gnu-gcc --version
aarch64-linux-gnu-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
while our CI image has version 10.2.1
. From what I can find, gcc
defaults to C++98 up until version 6.1, where they switched straight to C++14, skipping C++11. Then from version 11 they default to C++17. So the newer image happens to work because gcc
defaults to a standard newer than C++11, or the other way round the image from cross
happens to not work because it's so old and uses a gcc
that defaults to C++98.
or will it differ for different targets?
One strategy that we could employ is trying to force c++98 on other targets (in CI for instance). If the build succeeds, then I guess we could conclude that this is target specific, and we could set the c++11 flag appropriately based on the target.
I tried forcing c++98, and I can reliably reproduce your issue. Interestingly the build succeeded on macos & windows, but failed on ubuntu. On windows, the c++98 flag is not recognized therefore ignored. I'm guessing the flag is silently ignored on macos.
This seems to indicate that c++11 is required currently. If the fragments are indeed optional and we could pinpoint how to disable them, then this would fix this issue, without require c++11, which would be ideal.
Based on the CMakeLists.txt from libzmq
,
The -std=c+11
and -std=c11
are added if possible on non windows platforms.
Now if i recall correctly, the oldest supported platform on linux supported by rust is centos7, which is uses gcc version 4.8.5
, which mostly implements std=c+11
. So there's an argument to be made that we should always add the std=c++11
flag on linux.
On macos, im not so sure. Based on this issue it seems that the oldest supported OS version is 10.12
(sierra), but I can't find what gcc compiler it ships with.
On second thought, the ideal solution in this case would just be to copy libzmq's cmake approach, testing whether the c++11 flag is supported, if so we add it. I'll look into it tomorrow.
@domenicquirl Alright so I looked into libzmq & CMAKE's source code and cooked up a simple test to check whether c++11 is supported, if so it is automatically enabled. This is the same behavior then what libzmq does, so it would not technically be a breaking change. Please tell me if this PR solves your issue.
Thanks again for looking into this. Good to hear that you were able to reproduce the issue!
the build succeeded on macos & windows, but failed on ubuntu
That makes sense to me since I'd expect non-Linux OSes to use different compilers and therefore also different C libraries? This part of the cc
documentation seems to imply that it expects to use cc/clang on Linux, Xcode on macOS and MSVC on -msvc
Windows targets. I'm not too familiar with developing on or for macOS, but I know the C standard lib shipped by MSVC is different. Similarly,
it seems that the oldest supported OS version is 10.12 (sierra), but I can't find what gcc compiler it ships with
is probably none. By default, gcc
is aliased to clang
on macOS and from what I can gather you have to install that through a different channel (see, e.g., this article on the subject). Not sure what that means for their support of different C++ standards.
Please tell me if this PR solves your issue.
I'll be able to try that out tomorrow!
@jean-airoldie it works! 🎉
With your PR branch, the result is the same as with the env var: I'm getting the what I called "stray warnings" above, but everything compiles and runs successfully!
Guess it's time to revive https://github.com/erickt/rust-zmq/pull/386 then so this actually ends up in the real zmq
? There hasn't been a lot of activity over there lately, but it would be great if this worked without having to resort to manual patches.
Cool.
I'm getting the what I called "stray warnings" above, but everything compiles and runs successfully!
Could you run again with CC_ENABLE_DEBUG_OUTPUT=1
and show me which commands have this malformed -?
flag?
It seems to just be running aarch64-linux-gnu-gcc -?
? You can see the Debug Output if you expand the collapsible in https://github.com/jean-airoldie/zeromq-src-rs/issues/45#issuecomment-2211136514.
Ah right thanks. Very strange, doesn't give us much clue about it source however.
I don't know what emits this command, but it doesn't seem to come from this library. Its possible that this is a valid command on some platform, but i couldn't find much information. For now I will simply ignore this warning, and i'll merge the PR. Then, I'll do a release with a minor bump, since this shouldn't be a breaking change.
Alright I published v0.3.3+4.3.5 with this fix.
Coming from #42:
Hi, I'm having the same issue with targeting aarch64-unknown-linux-gnu. I've gathered that the "original" issue was https://github.com/jean-airoldie/zeromq-src-rs/issues/28 about strlcpy-detection in the original C-library's cmake build system vs. here. I've also followed https://github.com/erickt/rust-zmq/issues/385 to this commit and understood that the fix that was made there to support cross-compilation requires using a version of zeromq-src >= 0.3, which is not yet used by a published zmq release.
However, I then tried to locally patch the
zmq-sys
dependency to point to the branch from https://github.com/erickt/rust-zmq/pull/386 usingThis was successful in causing the version of zeromq-rs used during the build to be bumped to zeromq-src-0.3.2+4.3.5 and would compile on the host (as does the older version), but still fails to cross-compile to aarch64 giving
The error clearly references main in src/strlcpy.c. I guess (as @jean-airoldie mentions) it is expected that the "test build" of that file would fail on the target if its glibc does not define strlcpy, but it appears that somehow that also causes the entire build to fail.
Full compiler output
``` The following warnings were emitted during compilation: warning: zmq-sys@0.12.0: In file included from /usr/aarch64-linux-gnu/include/c++/5/condition_variable:35:0, warning: zmq-sys@0.12.0: from /cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src/condition_variable.hpp:70, warning: zmq-sys@0.12.0: from /cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src/mailbox_safe.hpp:16, warning: zmq-sys@0.12.0: from /cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src/mailbox_safe.cpp:4: warning: zmq-sys@0.12.0: /usr/aarch64-linux-gnu/include/c++/5/bits/c++0x_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support must be enabled with the -std=c++11 or -std=gnu++11 compiler options. warning: zmq-sys@0.12.0: #error This file requires compiler and library support \ warning: zmq-sys@0.12.0: ^ warning: zmq-sys@0.12.0: In file included from /cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src/mailbox_safe.hpp:16:0, warning: zmq-sys@0.12.0: from /cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src/mailbox_safe.cpp:4: warning: zmq-sys@0.12.0: /cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src/condition_variable.hpp:102:10: error: 'condition_variable_any' in namespace 'std' does not name a type warning: zmq-sys@0.12.0: std::condition_variable_any _cv; warning: zmq-sys@0.12.0: ^ warning: zmq-sys@0.12.0: /cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src/condition_variable.hpp: In member function 'int zmq::condition_variable_t::wait(zmq::mutex_t*, int)': warning: zmq-sys@0.12.0: /cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src/condition_variable.hpp:84:13: error: '_cv' was not declared in this scope warning: zmq-sys@0.12.0: _cv.wait ( warning: zmq-sys@0.12.0: ^ warning: zmq-sys@0.12.0: /cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src/condition_variable.hpp:86:20: error: '_cv' was not declared in this scope warning: zmq-sys@0.12.0: } else if (_cv.wait_for (*mutex_, std::chrono::milliseconds (timeout_)) warning: zmq-sys@0.12.0: ^ warning: zmq-sys@0.12.0: /cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src/condition_variable.hpp:86:48: error: 'std::chrono' has not been declared warning: zmq-sys@0.12.0: } else if (_cv.wait_for (*mutex_, std::chrono::milliseconds (timeout_)) warning: zmq-sys@0.12.0: ^ warning: zmq-sys@0.12.0: /cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src/condition_variable.hpp:87:28: error: 'std::cv_status' has not been declared warning: zmq-sys@0.12.0: == std::cv_status::timeout) { warning: zmq-sys@0.12.0: ^ warning: zmq-sys@0.12.0: /cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src/condition_variable.hpp: In member function 'void zmq::condition_variable_t::broadcast()': warning: zmq-sys@0.12.0: /cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src/condition_variable.hpp:98:9: error: '_cv' was not declared in this scope warning: zmq-sys@0.12.0: _cv.notify_all (); warning: zmq-sys@0.12.0: ^ warning: zmq-sys@0.12.0: ToolExecError: Command "aarch64-linux-gnu-g++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-gdwarf-4" "-fno-omit-frame-pointer" "-I" "/cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/include" "-I" "/cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src" "-I" "/cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src" "-I" "/cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/external/sha1" "-I" "/target/aarch64-unknown-linux-gnu/debug/build/zmq-sys-8d8854777a617d31/out" "-Wall" "-Wextra" "-DZMQ_BUILD_TESTS=OFF" "-DZMQ_USE_CV_IMPL_STL11=1" "-DZMQ_STATIC=1" "-DZMQ_USE_BUILTIN_SHA1=1" "-DZMQ_HAVE_WS=1" "-DZMQ_IOTHREAD_POLLER_USE_EPOLL=1" "-DZMQ_POLL_BASED_ON_POLL=1" "-DZMQ_HAVE_IPC=1" "-DHAVE_STRNLEN=1" "-DZMQ_HAVE_UIO=1" "-DZMQ_HAVE_STRUCT_SOCKADDR_UN=1" "-o" "/target/aarch64-unknown-linux-gnu/debug/build/zmq-sys-8d8854777a617d31/out/lib/b5831782cc127234-mailbox_safe.o" "-c" "/cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src/mailbox_safe.cpp" with args aarch64-linux-gnu-g++ did not execute successfully (status code exit status: 1). warning: zmq-sys@0.12.0: /cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src/proxy.cpp: In function 'int zmq::proxy_steerable(zmq::socket_base_t*, zmq::socket_base_t*, zmq::socket_base_t*, zmq::socket_base_t*)': warning: zmq-sys@0.12.0: /cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src/proxy.cpp:502:27: warning: missing initializer for member 'stats_socket::bytes' [-Wmissing-field-initializers] warning: zmq-sys@0.12.0: stats_proxy stats = {0}; warning: zmq-sys@0.12.0: ^ warning: zmq-sys@0.12.0: /cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src/proxy.cpp:502:27: warning: missing initializer for member 'stats_endpoint::recv' [-Wmissing-field-initializers] warning: zmq-sys@0.12.0: /cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src/proxy.cpp:502:27: warning: missing initializer for member 'stats_proxy::backend' [-Wmissing-field-initializers] warning: zmq-sys@0.12.0: In file included from /usr/aarch64-linux-gnu/include/c++/5/condition_variable:35:0, warning: zmq-sys@0.12.0: from /cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src/condition_variable.hpp:70, warning: zmq-sys@0.12.0: from /cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src/mailbox_safe.hpp:16, warning: zmq-sys@0.12.0: from /cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src/socket_base.cpp:47: warning: zmq-sys@0.12.0: /usr/aarch64-linux-gnu/include/c++/5/bits/c++0x_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support must be enabled with the -std=c++11 or -std=gnu++11 compiler options. warning: zmq-sys@0.12.0: #error This file requires compiler and library support \ warning: zmq-sys@0.12.0: ^ warning: zmq-sys@0.12.0: In file included from /cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src/mailbox_safe.hpp:16:0, warning: zmq-sys@0.12.0: from /cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src/socket_base.cpp:47: warning: zmq-sys@0.12.0: /cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src/condition_variable.hpp:102:10: error: 'condition_variable_any' in namespace 'std' does not name a type warning: zmq-sys@0.12.0: std::condition_variable_any _cv; warning: zmq-sys@0.12.0: ^ warning: zmq-sys@0.12.0: /cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src/condition_variable.hpp: In member function 'int zmq::condition_variable_t::wait(zmq::mutex_t*, int)': warning: zmq-sys@0.12.0: /cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src/condition_variable.hpp:84:13: error: '_cv' was not declared in this scope warning: zmq-sys@0.12.0: _cv.wait ( warning: zmq-sys@0.12.0: ^ warning: zmq-sys@0.12.0: /cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src/condition_variable.hpp:86:20: error: '_cv' was not declared in this scope warning: zmq-sys@0.12.0: } else if (_cv.wait_for (*mutex_, std::chrono::milliseconds (timeout_)) warning: zmq-sys@0.12.0: ^ warning: zmq-sys@0.12.0: /cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src/condition_variable.hpp:86:48: error: 'std::chrono' has not been declared warning: zmq-sys@0.12.0: } else if (_cv.wait_for (*mutex_, std::chrono::milliseconds (timeout_)) warning: zmq-sys@0.12.0: ^ warning: zmq-sys@0.12.0: /cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src/condition_variable.hpp:87:28: error: 'std::cv_status' has not been declared warning: zmq-sys@0.12.0: == std::cv_status::timeout) { warning: zmq-sys@0.12.0: ^ warning: zmq-sys@0.12.0: /cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src/condition_variable.hpp: In member function 'void zmq::condition_variable_t::broadcast()': warning: zmq-sys@0.12.0: /cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src/condition_variable.hpp:98:9: error: '_cv' was not declared in this scope warning: zmq-sys@0.12.0: _cv.notify_all (); warning: zmq-sys@0.12.0: ^ warning: zmq-sys@0.12.0: ToolExecError: Command "aarch64-linux-gnu-g++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-gdwarf-4" "-fno-omit-frame-pointer" "-I" "/cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/include" "-I" "/cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src" "-I" "/cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src" "-I" "/cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/external/sha1" "-I" "/target/aarch64-unknown-linux-gnu/debug/build/zmq-sys-8d8854777a617d31/out" "-Wall" "-Wextra" "-DZMQ_BUILD_TESTS=OFF" "-DZMQ_USE_CV_IMPL_STL11=1" "-DZMQ_STATIC=1" "-DZMQ_USE_BUILTIN_SHA1=1" "-DZMQ_HAVE_WS=1" "-DZMQ_IOTHREAD_POLLER_USE_EPOLL=1" "-DZMQ_POLL_BASED_ON_POLL=1" "-DZMQ_HAVE_IPC=1" "-DHAVE_STRNLEN=1" "-DZMQ_HAVE_UIO=1" "-DZMQ_HAVE_STRUCT_SOCKADDR_UN=1" "-o" "/target/aarch64-unknown-linux-gnu/debug/build/zmq-sys-8d8854777a617d31/out/lib/b5831782cc127234-socket_base.o" "-c" "/cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src/socket_base.cpp" with args aarch64-linux-gnu-g++ did not execute successfully (status code exit status: 1). warning: zmq-sys@0.12.0: /cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src/zmq.cpp:1355:32: warning: unused parameter 'items_' [-Wunused-parameter] warning: zmq-sys@0.12.0: int zmq_ppoll (zmq_pollitem_t *items_, warning: zmq-sys@0.12.0: ^ warning: zmq-sys@0.12.0: /cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src/zmq.cpp:1356:20: warning: unused parameter 'nitems_' [-Wunused-parameter] warning: zmq-sys@0.12.0: int nitems_, warning: zmq-sys@0.12.0: ^ warning: zmq-sys@0.12.0: /cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src/zmq.cpp:1357:21: warning: unused parameter 'timeout_' [-Wunused-parameter] warning: zmq-sys@0.12.0: long timeout_, warning: zmq-sys@0.12.0: ^ warning: zmq-sys@0.12.0: /cargo/git/checkouts/zeromq-src-rs-913d92adcfd7e1e1/b886af7/vendor/src/zmq.cpp:1358:32: warning: unused parameter 'sigmask_' [-Wunused-parameter] warning: zmq-sys@0.12.0: const sigset_t *sigmask_) warning: zmq-sys@0.12.0: ^ error: failed to run custom build command for `zmq-sys v0.12.0 (/home/