[LTP] latest ltp not building on RHEL 9.6 ?
Li Wang
liwang@redhat.com
Wed May 21 04:00:48 CEST 2025
On Tue, May 20, 2025 at 11:16 PM Chuck Lever <chuck.lever@oracle.com> wrote:
>
> On 5/19/25 8:38 PM, Li Wang wrote:
> > On Tue, May 20, 2025 at 2:40 AM Chuck Lever via ltp <ltp@lists.linux.it> wrote:
> >>
> >> Hi -
> >>
> >> My daily CI builds ltp and runs it against my nfsd-testing branch.
> >> For the past week or so, the ltp build fails with:
> >>
> >> In file included from cve-2017-16939.c:28:
> >> ../../include/lapi/sched.h:18:8: error: redefinition of ‘struct sched_attr’
> >> 18 | struct sched_attr {
> >> | ^~~~~~~~~~
> >> In file included from /usr/include/bits/sched.h:60,
> >> from /usr/include/sched.h:43,
> >> from ../../include/lapi/sched.h:10,
> >> from cve-2017-16939.c:28:
> >> /usr/include/linux/sched/types.h:102:8: note: originally defined here
> >> 102 | struct sched_attr {
> >> | ^~~~~~~~~~
> >>
> >> The test runner is a RHEL 9.6 guest. I don't see any recent changes to
> >> ltp in this area, so perhaps 9.6 modified /usr/include/linux/sched.h ?
> >
> > I saw that LTP has already handle that conflict in lapi header file, in commit
> > https://github.com/linux-test-project/ltp/commit/c48700d8cdbe6d0d78fda6e6cc658972464b5ccd
> >
> > Can you provide the version of your kernel-header and glibc?
> >
> > e.g.
> > $ rpm -qf /usr/include/linux/sched/types.h
> >
> > $ rpm -qf /usr/include/bits/sched.h
>
> Hi!
>
> I test recent kernels in this set-up, so I included the output of
> "uname" in case that is relevant.
>
> [kdevops@ltp-notify ~]$ uname -r
> 6.15.0-rc6-g7278569740f6
> [kdevops@ltp-notify ~]$ rpm -qf /usr/include/linux/sched/types.h
> kernel-headers-5.14.0-570.17.1.el9_6.x86_64
> [kdevops@ltp-notify ~]$ rpm -qf /usr/include/bits/sched.h
> glibc-headers-2.34-168.el9_6.14.x86_64
> [kdevops@ltp-notify ~]$ cat /etc/redhat-release
> Red Hat Enterprise Linux release 9.6 (Plow)
> [kdevops@ltp-notify ~]$
>
> I guess one thing I might try is running the ltp build on a stock
> RHEL 9.6 kernel. I'm not sure if the test workflow replaces the
> kernel headers under /usr/include.
That's weird, I wasn't able to reproduce this on the same env.
Your test system may be polluted with new kernel headers.
And, you might need to manually check the struct sched_attr
in both /usr/include/bits/sched.h and /usr/include/linux/sched/types.h
to see if something different.
# cat /usr/include/bits/sched.h
...
54 /* Use "" to work around incorrect macro expansion of the
55 __has_include argument (GCC PR 80005). */
56 # ifdef __has_include
57 # if __has_include ("linux/sched/types.h")
58 /* Some older Linux versions defined sched_param in
<linux/sched/types.h>. */
59 # define sched_param __glibc_mask_sched_param
60 # include <linux/sched/types.h>
61 # undef sched_param
62 # endif
63 # endif
64 # ifndef SCHED_ATTR_SIZE_VER0
65 # include <linux/types.h>
66 # define SCHED_ATTR_SIZE_VER0 48
67 # define SCHED_ATTR_SIZE_VER1 56
68 struct sched_attr
69 {
70 __u32 size;
71 __u32 sched_policy;
72 __u64 sched_flags;
73 __s32 sched_nice;
74 __u32 sched_priority;
75 __u64 sched_runtime;
76 __u64 sched_deadline;
77 __u64 sched_period;
78 __u32 sched_util_min;
79 __u32 sched_util_max;
80 /* Additional fields may be added at the end. */
81 };
82 # endif /* !SCHED_ATTR_SIZE_VER0 */
# cat /usr/include/linux/sched/types.h
...
#define SCHED_ATTR_SIZE_VER0 48 /* sizeof first published struct */
#define SCHED_ATTR_SIZE_VER1 56 /* add: util_{min,max} */
struct sched_attr {
__u32 size;
__u32 sched_policy;
__u64 sched_flags;
/* SCHED_NORMAL, SCHED_BATCH */
__s32 sched_nice;
/* SCHED_FIFO, SCHED_RR */
__u32 sched_priority;
/* SCHED_DEADLINE */
__u64 sched_runtime;
__u64 sched_deadline;
__u64 sched_period;
/* Utilization hints */
__u32 sched_util_min;
__u32 sched_util_max;
};
-------------------------- test result on my clean 9.6 --------------------
# cat /etc/redhat-release
Red Hat Enterprise Linux release 9.6 (Plow)
# uname -r
5.14.0-570.17.1.el9_6.x86_64
# rpm -qf /usr/include/linux/sched/types.h
kernel-headers-5.14.0-570.17.1.el9_6.x86_64
# rpm -qf /usr/include/bits/sched.h
glibc-headers-2.34-168.el9_6.14.x86_64
# V=1 make
gcc -I../../include -I../../include -I../../include/old/ -Wformat
-Werror=format-security -Werror=implicit-function-declaration
-Werror=return-type -fno-common -g -O2 -fno-strict-aliasing -pipe
-Wall -W -Wold-style-definition -std=gnu99 -D_GNU_SOURCE -L../../lib
cve-2017-16939.c -lltp -o cve-2017-16939
# echo $?
0
--
Regards,
Li Wang
More information about the ltp
mailing list