Kernel commit a85cbe6159ff ("uapi: move constants from
<linux/kernel.h> to <linux/const.h>") breaks our script
because of the unrecognized include. Let's add that to
our processing.
Signed-off-by: Eric Farman <farman@linux.ibm.com>
---
scripts/update-linux-headers.sh | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/scripts/update-linux-headers.sh b/scripts/update-linux-headers.sh
index 9efbaf2f84..fa6f2b6272 100755
--- a/scripts/update-linux-headers.sh
+++ b/scripts/update-linux-headers.sh
@@ -41,6 +41,7 @@ cp_portable() {
-e 'pvrdma_verbs' \
-e 'drm.h' \
-e 'limits' \
+ -e 'linux/const' \
-e 'linux/kernel' \
-e 'linux/sysinfo' \
-e 'asm-generic/kvm_para' \
@@ -190,7 +191,9 @@ for i in "$tmpdir"/include/linux/*virtio*.h \
"$tmpdir/include/linux/input.h" \
"$tmpdir/include/linux/input-event-codes.h" \
"$tmpdir/include/linux/pci_regs.h" \
- "$tmpdir/include/linux/ethtool.h" "$tmpdir/include/linux/kernel.h" \
+ "$tmpdir/include/linux/ethtool.h" \
+ "$tmpdir/include/linux/const.h" \
+ "$tmpdir/include/linux/kernel.h" \
"$tmpdir/include/linux/vhost_types.h" \
"$tmpdir/include/linux/sysinfo.h"; do
cp_portable "$i" "$output/include/standard-headers/linux"
--
2.17.1
On Mon, Jan 04, 2021 at 09:20:55PM +0100, Eric Farman wrote:
> Kernel commit a85cbe6159ff ("uapi: move constants from
> <linux/kernel.h> to <linux/const.h>") breaks our script
> because of the unrecognized include. Let's add that to
> our processing.
>
> Signed-off-by: Eric Farman <farman@linux.ibm.com>
> ---
> scripts/update-linux-headers.sh | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/scripts/update-linux-headers.sh b/scripts/update-linux-headers.sh
> index 9efbaf2f84..fa6f2b6272 100755
> --- a/scripts/update-linux-headers.sh
> +++ b/scripts/update-linux-headers.sh
> @@ -41,6 +41,7 @@ cp_portable() {
> -e 'pvrdma_verbs' \
> -e 'drm.h' \
> -e 'limits' \
> + -e 'linux/const' \
> -e 'linux/kernel' \
> -e 'linux/sysinfo' \
> -e 'asm-generic/kvm_para' \
> @@ -190,7 +191,9 @@ for i in "$tmpdir"/include/linux/*virtio*.h \
> "$tmpdir/include/linux/input.h" \
> "$tmpdir/include/linux/input-event-codes.h" \
> "$tmpdir/include/linux/pci_regs.h" \
> - "$tmpdir/include/linux/ethtool.h" "$tmpdir/include/linux/kernel.h" \
> + "$tmpdir/include/linux/ethtool.h" \
> + "$tmpdir/include/linux/const.h" \
> + "$tmpdir/include/linux/kernel.h" \
> "$tmpdir/include/linux/vhost_types.h" \
> "$tmpdir/include/linux/sysinfo.h"; do
> cp_portable "$i" "$output/include/standard-headers/linux"
> --
> 2.17.1
So I think I came to the same change when trying to update the headers. :)
Reviewed-by: Peter Xu <peterx@redhat.com>
Could I ask why the const.h is installed into include/standard-headers/linux
rather than linux-headers/linux? When I was working on my version I failed to
figure out the difference.
One answer is ethtool.h is there which included const.h, but I guess that's not
the real one.
Thanks,
--
Peter Xu
On 1/6/21 2:03 PM, Peter Xu wrote:
> On Mon, Jan 04, 2021 at 09:20:55PM +0100, Eric Farman wrote:
>> Kernel commit a85cbe6159ff ("uapi: move constants from
>> <linux/kernel.h> to <linux/const.h>") breaks our script
>> because of the unrecognized include. Let's add that to
>> our processing.
>>
>> Signed-off-by: Eric Farman <farman@linux.ibm.com>
>> ---
>> scripts/update-linux-headers.sh | 5 ++++-
>> 1 file changed, 4 insertions(+), 1 deletion(-)
>>
>> diff --git a/scripts/update-linux-headers.sh b/scripts/update-linux-headers.sh
>> index 9efbaf2f84..fa6f2b6272 100755
>> --- a/scripts/update-linux-headers.sh
>> +++ b/scripts/update-linux-headers.sh
>> @@ -41,6 +41,7 @@ cp_portable() {
>> -e 'pvrdma_verbs' \
>> -e 'drm.h' \
>> -e 'limits' \
>> + -e 'linux/const' \
>> -e 'linux/kernel' \
>> -e 'linux/sysinfo' \
>> -e 'asm-generic/kvm_para' \
>> @@ -190,7 +191,9 @@ for i in "$tmpdir"/include/linux/*virtio*.h \
>> "$tmpdir/include/linux/input.h" \
>> "$tmpdir/include/linux/input-event-codes.h" \
>> "$tmpdir/include/linux/pci_regs.h" \
>> - "$tmpdir/include/linux/ethtool.h" "$tmpdir/include/linux/kernel.h" \
>> + "$tmpdir/include/linux/ethtool.h" \
>> + "$tmpdir/include/linux/const.h" \
>> + "$tmpdir/include/linux/kernel.h" \
>> "$tmpdir/include/linux/vhost_types.h" \
>> "$tmpdir/include/linux/sysinfo.h"; do
>> cp_portable "$i" "$output/include/standard-headers/linux"
>> --
>> 2.17.1
>
> So I think I came to the same change when trying to update the headers. :)
>
> Reviewed-by: Peter Xu <peterx@redhat.com>
Thank you! :)
>
> Could I ask why the const.h is installed into include/standard-headers/linux
> rather than linux-headers/linux? When I was working on my version I failed to
> figure out the difference.
Considering the main difference is whether the header file is copied
directly or edited with a bunch of substitutions, and const.h doesn't
get modified by those substitutions, I suppose it could go in
linux-headers itself. But I opted to just keep it near its friends
(ethtool.h and kernel.h both include const.h, and end up including
if_ether.h, sysinfo.h, and types.h) in include/standard-headers.
>
> One answer is ethtool.h is there which included const.h, but I guess that's not
> the real one.
>
> Thanks,
>
On Thu, 7 Jan 2021 at 16:52, Eric Farman <farman@linux.ibm.com> wrote: > On 1/6/21 2:03 PM, Peter Xu wrote: > > Could I ask why the const.h is installed into include/standard-headers/linux > > rather than linux-headers/linux? When I was working on my version I failed to > > figure out the difference. > > Considering the main difference is whether the header file is copied > directly or edited with a bunch of substitutions, and const.h doesn't > get modified by those substitutions, I suppose it could go in > linux-headers itself. No, it can't, because linux-headers/ only goes on the include path when on a Linux host and on a CPU architecture with KVM support, whereas include/standard-headers/ headers are available and used on all host OSes/architectures. Because include/standard-headers/linux/ethtool.h will end up with a line #include "standard-headers/linux/const.h" we need to provide a const.h in that location so that the #include pulls in the file correctly. thanks -- PMM
On 1/7/21 12:05 PM, Peter Maydell wrote: > On Thu, 7 Jan 2021 at 16:52, Eric Farman <farman@linux.ibm.com> wrote: >> On 1/6/21 2:03 PM, Peter Xu wrote: >>> Could I ask why the const.h is installed into include/standard-headers/linux >>> rather than linux-headers/linux? When I was working on my version I failed to >>> figure out the difference. >> >> Considering the main difference is whether the header file is copied >> directly or edited with a bunch of substitutions, and const.h doesn't >> get modified by those substitutions, I suppose it could go in >> linux-headers itself. > > No, it can't, because linux-headers/ only goes on the include > path when on a Linux host and on a CPU architecture with KVM support, > whereas include/standard-headers/ headers are available and > used on all host OSes/architectures. > > Because include/standard-headers/linux/ethtool.h will end up > with a line > #include "standard-headers/linux/const.h" > we need to provide a const.h in that location so that the #include > pulls in the file correctly. Ah, today I learned. Thanks, Peter. - Eric > > thanks > -- PMM >
On Thu, Jan 07, 2021 at 12:50:34PM -0500, Eric Farman wrote: > > > On 1/7/21 12:05 PM, Peter Maydell wrote: > > On Thu, 7 Jan 2021 at 16:52, Eric Farman <farman@linux.ibm.com> wrote: > > > On 1/6/21 2:03 PM, Peter Xu wrote: > > > > Could I ask why the const.h is installed into include/standard-headers/linux > > > > rather than linux-headers/linux? When I was working on my version I failed to > > > > figure out the difference. > > > > > > Considering the main difference is whether the header file is copied > > > directly or edited with a bunch of substitutions, and const.h doesn't > > > get modified by those substitutions, I suppose it could go in > > > linux-headers itself. > > > > No, it can't, because linux-headers/ only goes on the include > > path when on a Linux host and on a CPU architecture with KVM support, > > whereas include/standard-headers/ headers are available and > > used on all host OSes/architectures. > > > > Because include/standard-headers/linux/ethtool.h will end up > > with a line > > #include "standard-headers/linux/const.h" > > we need to provide a const.h in that location so that the #include > > pulls in the file correctly. > > Ah, today I learned. Thanks, Peter. Yeah. Peter taught me the rules on IRC after I posted the email, and I didn't update later. So I guess my r-b stands. :) Thanks, -- Peter Xu
On 1/4/21 9:20 PM, Eric Farman wrote:
> Kernel commit a85cbe6159ff ("uapi: move constants from
> <linux/kernel.h> to <linux/const.h>") breaks our script
> because of the unrecognized include. Let's add that to
> our processing.
>
> Signed-off-by: Eric Farman <farman@linux.ibm.com>
> ---
> scripts/update-linux-headers.sh | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
© 2016 - 2026 Red Hat, Inc.