From: Leon Romanovsky <leon@kernel.org> Date: 2017-12-01 11:04:55
From: Leon Romanovsky <redacted>
Add asm/posix_types.h header file to the list of needed includes,
because the headers files in RHEL 6.8 are too old and doesn't
have declaration of __kernel_long_t.
In file included from ../include/uapi/linux/kernel.h:5,
from ../include/uapi/linux/netfilter/x_tables.h:4,
from ../include/xtables.h:20,
from em_ipset.c:26:
../include/uapi/linux/sysinfo.h:9: error: expected specifier-qualifier-list before ‘__kernel_long_t’
Cc: Riad Abo Raed <redacted>
Cc: Guy Ergas <redacted>
Signed-off-by: Leon Romanovsky <redacted>
---
Stephen,
I don't know how to properly solve this type of errors and would like to
hear your guidance on it.
Should I simply add kernel file? Or maybe I need to add HAVE_xxx checks
to configure script to check __kernel_long_t existence and declare only
this type?
I also have another build error on RHEL 6.8 system and looking for a
solution.
In file included from em_ipset.c:26:
../include/xtables.h:35:29: error: xtables-version.h: No such file or directory
make[1]: *** [em_ipset.o] Error 1
The iptables-devel is iptables-devel-1.4.7-16.el6.x86_64 so check_xt()
success, but RH headers don't have xtable-version.h and the relevant defines
are embedded in the main xtables.h header file.
Thanks
---
include/uapi/asm/posix_types.h | 97 +++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 97 insertions(+)
create mode 100644 include/uapi/asm/posix_types.h
From: Stephen Hemminger <stephen@networkplumber.org> Date: 2017-12-01 16:48:18
On Fri, 1 Dec 2017 13:04:51 +0200
Leon Romanovsky [off-list ref] wrote:
From: Leon Romanovsky <redacted>
Add asm/posix_types.h header file to the list of needed includes,
because the headers files in RHEL 6.8 are too old and doesn't
have declaration of __kernel_long_t.
In file included from ../include/uapi/linux/kernel.h:5,
from ../include/uapi/linux/netfilter/x_tables.h:4,
from ../include/xtables.h:20,
from em_ipset.c:26:
../include/uapi/linux/sysinfo.h:9: error: expected specifier-qualifier-list before ‘__kernel_long_t’
Cc: Riad Abo Raed <redacted>
Cc: Guy Ergas <redacted>
Signed-off-by: Leon Romanovsky <redacted>
I see the problem, but the solution of dragging in posix_types.h
would be too much of a long term maintenance issue.
All the headers in uapi are regularly generated from upstream
kernel headers; I don't want to start making exceptions.
Is it just the xtables stuff (which has always been problematic)?
From: Michal Kubecek <hidden> Date: 2017-12-01 19:56:25
On Fri, Dec 01, 2017 at 08:48:07AM -0800, Stephen Hemminger wrote:
On Fri, 1 Dec 2017 13:04:51 +0200
Leon Romanovsky [off-list ref] wrote:
quoted
From: Leon Romanovsky <redacted>
Add asm/posix_types.h header file to the list of needed includes,
because the headers files in RHEL 6.8 are too old and doesn't
have declaration of __kernel_long_t.
In file included from ../include/uapi/linux/kernel.h:5,
from ../include/uapi/linux/netfilter/x_tables.h:4,
from ../include/xtables.h:20,
from em_ipset.c:26:
../include/uapi/linux/sysinfo.h:9: error: expected specifier-qualifier-list before ‘__kernel_long_t’
Cc: Riad Abo Raed <redacted>
Cc: Guy Ergas <redacted>
Signed-off-by: Leon Romanovsky <redacted>
I see the problem, but the solution of dragging in posix_types.h
would be too much of a long term maintenance issue.
All the headers in uapi are regularly generated from upstream
kernel headers; I don't want to start making exceptions.
Is it just the xtables stuff (which has always been problematic)?
Actually, the only place where __kernel_long_t and __kernel_ulong_t
appear is struct sysinfo in include/uapi/linux/sysinfo.h and this
structure isn't even used anywhere in iproute2 source (not even in the
include/uapi/linux/kernel.h file which includes <linux/sysinfo.h>).
So one could work around the problem by defining _LINUX_SYSINFO_H but
that seems a bit dirty hack.
Michal Kubecek
From: Leon Romanovsky <leon@kernel.org> Date: 2017-12-02 08:23:03
On Fri, Dec 01, 2017 at 08:56:24PM +0100, Michal Kubecek wrote:
On Fri, Dec 01, 2017 at 08:48:07AM -0800, Stephen Hemminger wrote:
quoted
On Fri, 1 Dec 2017 13:04:51 +0200
Leon Romanovsky [off-list ref] wrote:
quoted
From: Leon Romanovsky <redacted>
Add asm/posix_types.h header file to the list of needed includes,
because the headers files in RHEL 6.8 are too old and doesn't
have declaration of __kernel_long_t.
In file included from ../include/uapi/linux/kernel.h:5,
from ../include/uapi/linux/netfilter/x_tables.h:4,
from ../include/xtables.h:20,
from em_ipset.c:26:
../include/uapi/linux/sysinfo.h:9: error: expected specifier-qualifier-list before ‘__kernel_long_t’
Cc: Riad Abo Raed <redacted>
Cc: Guy Ergas <redacted>
Signed-off-by: Leon Romanovsky <redacted>
I see the problem, but the solution of dragging in posix_types.h
would be too much of a long term maintenance issue.
All the headers in uapi are regularly generated from upstream
kernel headers; I don't want to start making exceptions.
Is it just the xtables stuff (which has always been problematic)?
Actually, the only place where __kernel_long_t and __kernel_ulong_t
appear is struct sysinfo in include/uapi/linux/sysinfo.h and this
structure isn't even used anywhere in iproute2 source (not even in the
include/uapi/linux/kernel.h file which includes <linux/sysinfo.h>).
So one could work around the problem by defining _LINUX_SYSINFO_H but
that seems a bit dirty hack.
It is too dirty :). It can cause to completely unpredictable compilation
failures in the future, which won't be easy to track down.
From: Leon Romanovsky <leon@kernel.org> Date: 2017-12-02 08:28:37
On Fri, Dec 01, 2017 at 08:48:07AM -0800, Stephen Hemminger wrote:
On Fri, 1 Dec 2017 13:04:51 +0200
Leon Romanovsky [off-list ref] wrote:
quoted
From: Leon Romanovsky <redacted>
Add asm/posix_types.h header file to the list of needed includes,
because the headers files in RHEL 6.8 are too old and doesn't
have declaration of __kernel_long_t.
In file included from ../include/uapi/linux/kernel.h:5,
from ../include/uapi/linux/netfilter/x_tables.h:4,
from ../include/xtables.h:20,
from em_ipset.c:26:
../include/uapi/linux/sysinfo.h:9: error: expected specifier-qualifier-list before ‘__kernel_long_t’
Cc: Riad Abo Raed <redacted>
Cc: Guy Ergas <redacted>
Signed-off-by: Leon Romanovsky <redacted>
I see the problem, but the solution of dragging in posix_types.h
would be too much of a long term maintenance issue.
All the headers in uapi are regularly generated from upstream
kernel headers; I don't want to start making exceptions.
Is it just the xtables stuff (which has always been problematic)?
Yes, both failures are related to xtables. And this wass my naive approach to
solve first one, the second mentioned in the original commit log
(missing xtables-version.h) is more harder to fix.
Will it work if I test in configure script the existence of __kernel_long_t
and fallback to xt-internal.h?
Thanks
From: Stephen Hemminger <stephen@networkplumber.org> Date: 2017-12-06 00:59:49
On Sat, 2 Dec 2017 10:28:33 +0200
Leon Romanovsky [off-list ref] wrote:
On Fri, Dec 01, 2017 at 08:48:07AM -0800, Stephen Hemminger wrote:
quoted
On Fri, 1 Dec 2017 13:04:51 +0200
Leon Romanovsky [off-list ref] wrote:
quoted
From: Leon Romanovsky <redacted>
Add asm/posix_types.h header file to the list of needed includes,
because the headers files in RHEL 6.8 are too old and doesn't
have declaration of __kernel_long_t.
In file included from ../include/uapi/linux/kernel.h:5,
from ../include/uapi/linux/netfilter/x_tables.h:4,
from ../include/xtables.h:20,
from em_ipset.c:26:
../include/uapi/linux/sysinfo.h:9: error: expected specifier-qualifier-list before ‘__kernel_long_t’
Cc: Riad Abo Raed <redacted>
Cc: Guy Ergas <redacted>
Signed-off-by: Leon Romanovsky <redacted>
I see the problem, but the solution of dragging in posix_types.h
would be too much of a long term maintenance issue.
All the headers in uapi are regularly generated from upstream
kernel headers; I don't want to start making exceptions.
Is it just the xtables stuff (which has always been problematic)?
Yes, both failures are related to xtables. And this wass my naive approach to
solve first one, the second mentioned in the original commit log
(missing xtables-version.h) is more harder to fix.
Will it work if I test in configure script the existence of __kernel_long_t
and fallback to xt-internal.h?
Thanks
Why not just modify the part of the configure script that checks if xtables build will
work. It should fail if header files won't work.
From: Stephen Hemminger <stephen@networkplumber.org> Date: 2017-12-06 01:34:55
On Fri, 1 Dec 2017 13:04:51 +0200
Leon Romanovsky [off-list ref] wrote:
quoted hunk
From: Leon Romanovsky <redacted>
Add asm/posix_types.h header file to the list of needed includes,
because the headers files in RHEL 6.8 are too old and doesn't
have declaration of __kernel_long_t.
In file included from ../include/uapi/linux/kernel.h:5,
from ../include/uapi/linux/netfilter/x_tables.h:4,
from ../include/xtables.h:20,
from em_ipset.c:26:
../include/uapi/linux/sysinfo.h:9: error: expected specifier-qualifier-list before ‘__kernel_long_t’
Cc: Riad Abo Raed <redacted>
Cc: Guy Ergas <redacted>
Signed-off-by: Leon Romanovsky <redacted>
---
Stephen,
I don't know how to properly solve this type of errors and would like to
hear your guidance on it.
Should I simply add kernel file? Or maybe I need to add HAVE_xxx checks
to configure script to check __kernel_long_t existence and declare only
this type?
I also have another build error on RHEL 6.8 system and looking for a
solution.
In file included from em_ipset.c:26:
../include/xtables.h:35:29: error: xtables-version.h: No such file or directory
make[1]: *** [em_ipset.o] Error 1
The iptables-devel is iptables-devel-1.4.7-16.el6.x86_64 so check_xt()
success, but RH headers don't have xtable-version.h and the relevant defines
are embedded in the main xtables.h header file.
Thanks
---
include/uapi/asm/posix_types.h | 97 +++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 97 insertions(+)
create mode 100644 include/uapi/asm/posix_types.h
This isn't going to be supportable. The headers in uapi are updated by
a script from kernel, and this version posix_types.h conflicts with what
the kernel creates by make headers_install.
From: Leon Romanovsky <leon@kernel.org> Date: 2017-12-06 05:01:11
On Tue, Dec 05, 2017 at 05:33:25PM -0800, Stephen Hemminger wrote:
On Fri, 1 Dec 2017 13:04:51 +0200
Leon Romanovsky [off-list ref] wrote:
quoted
From: Leon Romanovsky <redacted>
Add asm/posix_types.h header file to the list of needed includes,
because the headers files in RHEL 6.8 are too old and doesn't
have declaration of __kernel_long_t.
In file included from ../include/uapi/linux/kernel.h:5,
from ../include/uapi/linux/netfilter/x_tables.h:4,
from ../include/xtables.h:20,
from em_ipset.c:26:
../include/uapi/linux/sysinfo.h:9: error: expected specifier-qualifier-list before ‘__kernel_long_t’
Cc: Riad Abo Raed <redacted>
Cc: Guy Ergas <redacted>
Signed-off-by: Leon Romanovsky <redacted>
---
Stephen,
I don't know how to properly solve this type of errors and would like to
hear your guidance on it.
Should I simply add kernel file? Or maybe I need to add HAVE_xxx checks
to configure script to check __kernel_long_t existence and declare only
this type?
I also have another build error on RHEL 6.8 system and looking for a
solution.
In file included from em_ipset.c:26:
../include/xtables.h:35:29: error: xtables-version.h: No such file or directory
make[1]: *** [em_ipset.o] Error 1
The iptables-devel is iptables-devel-1.4.7-16.el6.x86_64 so check_xt()
success, but RH headers don't have xtable-version.h and the relevant defines
are embedded in the main xtables.h header file.
Thanks
---
include/uapi/asm/posix_types.h | 97 +++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 97 insertions(+)
create mode 100644 include/uapi/asm/posix_types.h
This isn't going to be supportable. The headers in uapi are updated by
a script from kernel, and this version posix_types.h conflicts with what
the kernel creates by make headers_install.
At the end, I gave up to fix compilation properly for RHEL 6.8.
After I fixed posix_type and xt-tables, I discovered that glibc headers
are not updated too (missing AF_VSOCK).
My dirty hack was to copy various headers to iproute2 so verification
team can proceed with latest iproute2 on such platform was enough for
them.
Thanks