编译flycast时发现很多函数龙架构的函数库里没有,例如sys_pipe
、sys_read、sys_sendmsg、sys_close等,请问这些函数是不是只在x86平台有?龙架构上是否有能替代的函数?多谢了
./flycast/core/deps/breakpad/src/client/linux/crash_generation/crash_generation_client.cc: In member function ‘virtual bool google_breakpad::{anonymous}::CrashGenerationClientImpl::RequestDump(const void*, size_t)’:
./flycast/core/deps/breakpad/src/client/linux/crash_generation/crash_generation_client.cc:53:9: error: ‘sys_pipe’ was not declared in this scope
if (sys_pipe(fds) < 0)
^~~~~~~~
./flycast/core/deps/breakpad/src/client/linux/crash_generation/crash_generation_client.cc:53:9: note: suggested alternative: ‘sys_nerr’
if (sys_pipe(fds) < 0)
^~~~~~~~
sys_nerr
./flycast/core/deps/breakpad/src/client/linux/crash_generation/crash_generation_client.cc:57:25: error: aggregate ‘google_breakpad::{anonymous}::CrashGenerationClientImpl::RequestDump(const void*, size_t)::kernel_iovec iov’ has incomplete type and cannot be defined
struct kernel_iovec iov;
^~~
./flycast/core/deps/breakpad/src/client/linux/crash_generation/crash_generation_client.cc:61:26: error: variable ‘google_breakpad::{anonymous}::CrashGenerationClientImpl::RequestDump(const void*, size_t)::kernel_msghdr msg’ has initializer but incomplete type
struct kernel_msghdr msg = { 0 };
^~~
In file included from ./flycast/core/deps/breakpad/src/client/linux/crash_generation/crash_generation_client.cc:38:
./flycast/core/deps/breakpad/src/client/linux/crash_generation/crash_generation_client.cc:75:32: error: ‘sys_sendmsg’ was not declared in this scope
ssize_t ret = HANDLE_EINTR(sys_sendmsg(server_fd_, &msg, 0));
^~~~~~~~~~~
./flycast/core/deps/breakpad/src/common/linux/eintr_wrapper.h:40:14: note: in definition of macro ‘HANDLE_EINTR’
__typeof__(x) eintr_wrapper_result; \
^
./flycast/core/deps/breakpad/src/client/linux/crash_generation/crash_generation_client.cc:75:32: note: suggested alternative: ‘sendmsg’
ssize_t ret = HANDLE_EINTR(sys_sendmsg(server_fd_, &msg, 0));
^~~~~~~~~~~
./flycast/core/deps/breakpad/src/common/linux/eintr_wrapper.h:40:14: note: in definition of macro ‘HANDLE_EINTR’
__typeof__(x) eintr_wrapper_result; \
^
./flycast/core/deps/breakpad/src/client/linux/crash_generation/crash_generation_client.cc:76:5: error: ‘sys_close’ was not declared in this scope
sys_close(fds[1]);
^~~~~~~~~
./flycast/core/deps/breakpad/src/client/linux/crash_generation/crash_generation_client.cc:76:5: note: suggested alternative: ‘pclose’
sys_close(fds[1]);
^~~~~~~~~
pclose
In file included from ./flycast/core/deps/breakpad/src/client/linux/crash_generation/crash_generation_client.cc:39:
./flycast/core/deps/breakpad/src/client/linux/crash_generation/crash_generation_client.cc:84:29: error: ‘sys_read’ was not declared in this scope
IGNORE_RET(HANDLE_EINTR(sys_read(fds[0], &b, 1)));
^~~~~~~~
./flycast/core/deps/breakpad/src/common/linux/ignore_ret.h:38:32: note: in definition of macro ‘IGNORE_RET’
#define IGNORE_RET(x) do { if (x) {} } while (0)
^
./flycast/core/deps/breakpad/src/client/linux/crash_generation/crash_generation_client.cc:84:16: note: in expansion of macro ‘HANDLE_EINTR’
IGNORE_RET(HANDLE_EINTR(sys_read(fds[0], &b, 1)));
^~~~~~~~~~~~
./flycast/core/deps/breakpad/src/client/linux/crash_generation/crash_generation_client.cc:84:29: note: suggested alternative: ‘sys_nerr’
IGNORE_RET(HANDLE_EINTR(sys_read(fds[0], &b, 1)));
^~~~~~~~
./flycast/core/deps/breakpad/src/common/linux/ignore_ret.h:38:32: note: in definition of macro ‘IGNORE_RET’
#define IGNORE_RET(x) do { if (x) {} } while (0)
^
./flycast/core/deps/breakpad/src/client/linux/crash_generation/crash_generation_client.cc:84:16: note: in expansion of macro ‘HANDLE_EINTR’
IGNORE_RET(HANDLE_EINTR(sys_read(fds[0], &b, 1)));
--