1
0
mirror of https://github.com/Zygo/bees.git synced 2025-08-02 05:43:29 +02:00
Files
bees/lib
Zygo Blaxell e852e3998a openat2: LINUX_VERSION_CODE is defined by linux-libc-dev, not libc
With new kernel headers and old libc, `SYS_openat2` can still end up
undefined, which triggers the fallback build-time code, that doesn't build:

```
openat2.cc: In function 'int openat2(int, const char*, open_how*, size_t)':
openat2.cc:35:2: error: 'errno' was not declared in this scope
   35 |  errno = ENOSYS;
      |  ^~~~~
openat2.cc:24:1: note: 'errno' is defined in header '<cerrno>'; did you forget to '#include <cerrno>'?
   23 | #include <unistd.h>
  +++ |+#include <cerrno>
   24 |
openat2.cc:35:10: error: 'ENOSYS' was not declared in this scope
   35 |  errno = ENOSYS;
      |          ^~~~~~
openat2.cc:29:19: error: unused parameter 'dirfd' [-Werror=unused-parameter]
   29 | openat2(int const dirfd, const char *const pathname, struct open_how *const how, size_t const size)
      |         ~~~~~~~~~~^~~~~
openat2.cc:29:44: error: unused parameter 'pathname' [-Werror=unused-parameter]
   29 | openat2(int const dirfd, const char *const pathname, struct open_how *const how, size_t const size)
      |                          ~~~~~~~~~~~~~~~~~~^~~~~~~~
openat2.cc:29:77: error: unused parameter 'how' [-Werror=unused-parameter]
   29 | t dirfd, const char *const pathname, struct open_how *const how, size_t const size)
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~^~~

openat2.cc:29:95: error: unused parameter 'size' [-Werror=unused-parameter]
   29 | st char *const pathname, struct open_how *const how, size_t const size)
      |                                                      ~~~~~~~~~~~~~^~~~
```

Skip the kernel version check and test for the definition of `SYS_openat2`
directly.  If it's not there, plug in the constant so we can send the
call directly to the kernel, bypassing libc completely.

Fixes: https://github.com/Zygo/bees/issues/318
Signed-off-by: Zygo Blaxell <bees@furryterror.org>
2025-07-21 21:21:54 -04:00
..
2017-01-18 22:17:02 -05:00
2019-06-12 22:48:06 -04:00
2016-12-13 12:52:26 +11:00
2025-06-18 21:17:48 -04:00
2024-11-30 23:30:33 -05:00
2025-06-18 21:17:48 -04:00