On Tue, Feb 14, 2023 at 04:37:05PM -0700, Shuah Khan wrote:
On 2/14/23 13:45, Seth Forshee wrote:
On Tue, Feb 14, 2023 at 10:10:00AM -0700, Shuah Khan wrote:
The header search looks up system headers followed by installed headers in the repo (both in-tree and out-of-tree builds). kselftest builds do depend on headers_install. Did you building after running headers_install?
I wasn't aware they depend on headers_install. Why doesn't Documentation/dev-tools/kselftest.rst mention this in the section that describes how to run tests?
It ahs always been a dependency. If you were to compile from the main (root) Makefile as below - headers_install get done before test compile:
make kselftest-all TARGETS=mount_setattr
It seems what I really need to fix the build is to include linux/mount.h, which works for me with or without headers_install, because I have the struct in /usr/include/linux/mount.h. And I suppose the makefile should use KHDR_INCLUDES. So maybe the changes below should also be included.
Yes. Makefile change to use KHDR_INCLUDES is already done. Please take a look at linux-kselftest next - this was done as part of a tree-wide change.
If including linux/mount.h is thr correct solution, please send me the patch on top of linux-kselftest next and I will pull it in.
However I know Christian has said that there are challenges with including the mount headers. He wrote this test, so I'd like to hear his thoughts about adding the include. He's on vacation this week though.
The problem is that the linux/mount.h and sys/mount.h headers may conflict depending on the libc version used. So if linux/mount.h is included care needs to be taken that no headers are included that implicitly pull in sys/mount.h and vica versa. But if that isn't a problem in this test and it solves the issue we can just include it.