[root@iaas-rpma gpio]# make gcc gpio-mockup-cdev.c -o /home/lizhijian/linux/tools/testing/selftests/gpio/gpio-mockup-cdev gpio-mockup-cdev.c: In function ‘request_line_v2’: gpio-mockup-cdev.c:24:30: error: storage size of ‘req’ isn’t known 24 | struct gpio_v2_line_request req; | ^~~ gpio-mockup-cdev.c:32:14: error: ‘GPIO_V2_LINE_FLAG_OUTPUT’ undeclared (first use in this function); did you mean ‘GPIOLINE_FLAG_IS_OUT’? 32 | if (flags & GPIO_V2_LINE_FLAG_OUTPUT) { | ^~~~~~~~~~~~~~~~~~~~~~~~
gpio-mockup-cdev.c includes <linux/gpio.h> which could be provided by kernel-headers package, and where it's expected to declare GPIO_V2_LINE_FLAG_OUTPUT. However distros or developers will not always install the same kernel-header as we are compiling.
So we can tell compiler to search headers from linux tree simply like others, such as sched.
CC: Philip Li philip.li@intel.com Reported-by: kernel test robot lkp@intel.com Signed-off-by: Li Zhijian lizhijian@cn.fujitsu.com
--- V2: add more details about the fix --- tools/testing/selftests/gpio/Makefile | 1 + 1 file changed, 1 insertion(+)
diff --git a/tools/testing/selftests/gpio/Makefile b/tools/testing/selftests/gpio/Makefile index 39f2bbe8dd3d..42ea7d2aa844 100644 --- a/tools/testing/selftests/gpio/Makefile +++ b/tools/testing/selftests/gpio/Makefile @@ -3,5 +3,6 @@ TEST_PROGS := gpio-mockup.sh TEST_FILES := gpio-mockup-sysfs.sh TEST_GEN_PROGS_EXTENDED := gpio-mockup-cdev +CFLAGS += -I../../../../usr/include
include ../lib.mk