Messages in this thread | | | Subject | Re: [PATCH 1/1] libbpf: ensure F_DUPFD_CLOEXEC is defined | From | Daniel Borkmann <> | Date | Fri, 4 Mar 2022 22:54:54 +0100 |
| |
On 3/4/22 8:01 PM, Andrii Nakryiko wrote: > On Mon, Feb 28, 2022 at 7:00 AM Daniel Borkmann <daniel@iogearbox.net> wrote: >> On 2/27/22 3:25 PM, James Hilliard wrote: >>> This definition seems to be missing from some older toolchains. >>> >>> Note that the fcntl.h in libbpf_internal.h is not a kernel header >>> but rather a toolchain libc header. >>> >>> Fixes: >>> libbpf_internal.h:521:18: error: 'F_DUPFD_CLOEXEC' undeclared (first use in this function); did you mean 'FD_CLOEXEC'? >>> fd = fcntl(fd, F_DUPFD_CLOEXEC, 3); >>> ^~~~~~~~~~~~~~~ >>> FD_CLOEXEC >>> >>> Signed-off-by: James Hilliard <james.hilliard1@gmail.com> >> >> Do you have some more info on your env (e.g. libc)? Looks like F_DUPFD_CLOEXEC >> was added back in 2.6.24 kernel. When did libc add it? > > It seems like it's guarded by __USE_XOPEN2K8 in glibc (from a quick > glance at glibc code). But it's been there since 2010 or so, at the > very least. > >> Should we instead just add an include for <linux/fcntl.h> to libbpf_internal.h >> (given it defines F_DUPFD_CLOEXEC as well)? > > yep, this is UAPI header so we can use it easily (we'll need to sync > it into Github repo, but that's not a problem)
Sgtm, James, could you respin with using the include?
Thanks, Daniel
| |