Files
Chen Pei 039c1ae13e package/ndctl: new package
A "device memory" enabling project encompassing tools and
libraries for CXL, NVDIMMs, DAX, memory tiering and other
platform memory device topics.

ndctl is using __struct_group() [1] which was introduced in
kernel headers in upstream commit [2], first included in v5.16.
The commit [2] was backported in v5.15.54 in [3] and v5.10.156
in [4]. Therefore, this commits sets the minimal toolchain headers
version requirement to 5.10.

[1] https://github.com/pmem/ndctl/blob/v83/cxl/fwctl/features.h#L108
[2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=50d7bd38c3aafc4749e05e8d7fcb616979143602
[3] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=d57ab893cdf8046cbe4d49746f9418020f788b1f
[4] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=9fd7bdaffe0e89833f4b1c1d3abd43023e951ec1

Signed-off-by: Chen Pei <cp0613@linux.alibaba.com>
[Julien:
  - add commit log info about __struct_group()
  - add __struct_group() comment in Config.in
  - relax toolchain headers requirements to 5.10
  - sort BR2_PACKAGE_ blocks in .mk alphabetically
]
Signed-off-by: Julien Olivain <ju.o@free.fr>
2026-03-19 21:45:52 +01:00

52 lines
1.2 KiB
Makefile

################################################################################
#
# ndctl
#
################################################################################
NDCTL_VERSION = 83
NDCTL_SITE = $(call github,pmem,ndctl,v$(NDCTL_VERSION))
NDCTL_LICENSE = \
CC0-1.0 (helper routines), \
GPL-2.0+ (tools), \
LGPL-2.1+ (libraries), \
MIT (helper routines)
NDCTL_LICENSE_FILES = \
COPYING \
LICENSES/other/CC0-1.0 \
LICENSES/other/MIT \
LICENSES/preferred/GPL-2.0 \
LICENSES/preferred/LGPL-2.1
NDCTL_DEPENDENCIES = \
iniparser \
json-c \
keyutils \
kmod \
udev \
util-linux-libs
# Currently, disabling keyutils or fwctl support will cause builds to
# fail. Therefore, always pass the -Dfwctl=enabled and -Dkeyutils=enabled.
NDCTL_CONF_OPTS = \
-Ddocs=disabled \
-Dfwctl=enabled \
-Dkeyutils=enabled \
-Diniparserdir=$(STAGING_DIR)/usr/include/iniparser
ifeq ($(BR2_PACKAGE_LIBTRACEFS)$(BR2_PACKAGE_LIBTRACEEVENT),yy)
NDCTL_CONF_OPTS += -Dlibtracefs=enabled
NDCTL_DEPENDENCIES += libtraceevent libtracefs
else
NDCTL_CONF_OPTS += -Dlibtracefs=disabled
endif
ifeq ($(BR2_PACKAGE_SYSTEMD),y)
NDCTL_CONF_OPTS += -Dsystemd=enabled
NDCTL_DEPENDENCIES += systemd
else
NDCTL_CONF_OPTS += -Dsystemd=disabled
endif
$(eval $(meson-package))