mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-04-04 17:50:37 +02:00
We have a copy of a few linux user space headers in `src/linux-headers`.
The idea is that we want to use recent kernel API, and not depend on the
kernel UAPI headers installed on the build system (and not need to
workaround that).
However, we may not be able to simply compile them, because they too
have dependencies. For example,
../src/linux-headers/ethtool.h:1389:2: error: implicit declaration of function '__KERNEL_DIV_ROUND_UP' [-Werror=implicit-function-declaration]
__u32 queue_mask[__KERNEL_DIV_ROUND_UP(MAX_NUM_QUEUE, 32)];
^
As workaround, don't include headers from "linux-headers" directly,
but only include the new "libnm-std-aux/nm-linux-compat.h" adapter
header, which tries to solve these incompatibilities.
Fixes:
|
||
|---|---|---|
| .. | ||
| c-list-util.c | ||
| c-list-util.h | ||
| meson.build | ||
| nm-dbus-compat.h | ||
| nm-default-std.h | ||
| nm-linux-compat.h | ||
| nm-networkmanager-compilation.h | ||
| nm-std-aux.h | ||
| nm-std-utils.c | ||
| nm-std-utils.h | ||
| README.md | ||
| unaligned.h | ||
libnm-std-aux
A static helper library with general purpose helpers on top of standard C (C11).
As this has no additional dependencies, we should have all our C code use this internal helper library. It contains helpers that should be available (and used) everywhere where we write C.
Our C is gnu11, that is C11 or newer with some GCC-ism. The requirement is that it is supported by all complilers we care about (in pratice GCC and Clang).
Parts of this library are usually already included via the nm-default*.h
headers.