From: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
To: Shuah Khan <skhan@linuxfoundation.org>, Ingo Molnar <mingo@kernel.org>
Cc: kernel test robot <lkp@intel.com>, Shuah Khan <shuah@kernel.org>,
oe-kbuild-all@lists.linux.dev, linux-kernel@vger.kernel.org,
x86@kernel.org, Peter Zijlstra <peterz@infradead.org>,
linux-kselftest@vger.kernel.org
Subject: Re: [tip:sched/core 7/28] rseq.c:139:37: error: 'AT_RSEQ_ALIGN' undeclared; did you mean 'R_SH_ALIGN'?
Date: Tue, 17 Jan 2023 15:14:52 -0500 [thread overview]
Message-ID: <378731e7-eec5-44ca-eded-3277792b061e@efficios.com> (raw)
In-Reply-To: <1eed08d1-c100-6ca5-63f3-73487970b08e@linuxfoundation.org>
On 2023-01-17 14:11, Shuah Khan wrote:
> On 1/17/23 10:44, Mathieu Desnoyers wrote:
>> On 2023-01-17 04:06, Ingo Molnar wrote:
>>>
>>> * Shuah Khan <skhan@linuxfoundation.org> wrote:
>>>
>>>> On 1/16/23 13:18, Mathieu Desnoyers wrote:
>>>>> On 2023-01-16 14:40, kernel test robot wrote:
>>>>>> tree:
>>>>>> https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git
>>>>>> sched/core
>>>>>> head: 79ba1e607d68178db7d3fe4f6a4aa38f06805e7b
>>>>>> commit: 03f5c0272d1b59343144e199becc911dae52c37e [7/28]
>>>>>> selftests/rseq: Use ELF auxiliary vector for extensible rseq
>>>>>> compiler: gcc-11 (Debian 11.3.0-8) 11.3.0
>>>>>> reproduce:
>>>>>> #
>>>>>> https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git/commit/?id=03f5c0272d1b59343144e199becc911dae52c37e
>>>>>> git remote add tip
>>>>>> https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git
>>>>>> git fetch --no-tags tip sched/core
>>>>>> git checkout 03f5c0272d1b59343144e199becc911dae52c37e
>>>>>> make O=/tmp/kselftest headers
>>>>>> make O=/tmp/kselftest -C tools/testing/selftests
>>>>>>
>>>>>> If you fix the issue, kindly add following tag where applicable
>>>>>> | Reported-by: kernel test robot <lkp@intel.com>
>>>>>
>>>>> In order to fix this, I need to change -I../../../../usr/include/
>>>>> for $(KHDR_INCLUDES) in tools/testing/selftests/rseq/Makefile
>>>>>
>>>>> I can find 25 odd uses of the same pattern in the kernel selftests.
>>>>> Should I fix them all in one go ?
>>>>
>>>> kselftest build depends on headers installed in the root directory.
>>
>> By "root directory", do you mean kernel sources root directory or
>> build output root directory ?
>>
>>>> The main makefile enforces this dependency.
>>
>> How ? I figure that tools/testing/selftests/lib.mk overrides
>> KHDR_INCLUDES if it is not defined yet:
>>
>> ifeq ($(KHDR_INCLUDES),)
>> KHDR_INCLUDES := -isystem $(top_srcdir)/usr/include
>> endif
>>
>> and selftests makefiles include ../lib.mk.
>>
>> This KHDR_INCLUDES can be modified by O=... when built from the kernel
>> top level, thus using tools/testing/selftests/Makefile:
>>
>> ifneq ($(KBUILD_OUTPUT),)
>> [...]
>> KHDR_INCLUDES := -isystem ${abs_objtree}/usr/include
>> else
>> [...]
>> KHDR_INCLUDES := -isystem ${abs_srctree}/usr/include
>> endif
>>
>> But it's up to the individual selftests to actually use
>> $(KHDR_INCLUDES). In many cases, they hardcode
>> -I../../../../usr/include/ which is bogus when the build root (O=...)
>> differs from the source root.
>>
>> If this test is being
>>>> built without installing headers by itself, I think the scripts that
>>>> build individual tests have to makes sure headers are installed first.
>>
>> The headers were previously built by "make O=/tmp/kselftest headers",
>> as it should, it's just that the selftest makefile uses a hardcoded
>> path that is relative to the source directory, and it appears that
>> this pattern is repeated all across the selftests.
>>
>
> selftests Makefile used to install headers and there has been a recent
> change to have mani Makefile (root) to install it. As a result individual
> test builds (running make in the test directory) requires header install
> now.
>
> I think the hard-coded includes are a problem and we have to fix them for
> all cases i.e make O=, individual test builds.
>
> If you are still up for it, please send patch.
Sure.
Now that I dig a bit more, we could try using "-nostdinc" to tell the
compiler not to search the standard system directories, but I've noticed
that a few selftests depend on userspace library header files found in
the build environment.
I'm not sure how we should approach this.
Thoughts ?
Thanks,
Mathieu
>
> thanks,
> -- Shuah
>
--
Mathieu Desnoyers
EfficiOS Inc.
https://www.efficios.com
prev parent reply other threads:[~2023-01-17 22:11 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-16 19:40 [tip:sched/core 7/28] rseq.c:139:37: error: 'AT_RSEQ_ALIGN' undeclared; did you mean 'R_SH_ALIGN'? kernel test robot
2023-01-16 20:18 ` Mathieu Desnoyers
2023-01-16 23:38 ` Shuah Khan
2023-01-17 9:06 ` Ingo Molnar
2023-01-17 17:44 ` Mathieu Desnoyers
2023-01-17 19:11 ` Shuah Khan
2023-01-17 20:14 ` Mathieu Desnoyers [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=378731e7-eec5-44ca-eded-3277792b061e@efficios.com \
--to=mathieu.desnoyers@efficios.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=lkp@intel.com \
--cc=mingo@kernel.org \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=peterz@infradead.org \
--cc=shuah@kernel.org \
--cc=skhan@linuxfoundation.org \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.