[LU-16058] Generation and using of the config.cache in b2_15 Created: 29/Jul/22 Updated: 10/Sep/22 Resolved: 01/Sep/22 |
|
| Status: | Resolved |
| Project: | Lustre |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | Lustre 2.16.0, Lustre 2.15.2 |
| Type: | Bug | Priority: | Minor |
| Reporter: | Dominika Wanat | Assignee: | Shaun Tancheff |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Environment: |
Rocky Linux 9, kernel 5.14.0-70.17.1.el9_0.x86_64, sysofed, Lustre 2.15.1_RC1 (based on b2_15) |
||
| Severity: | 1 |
| Rank (Obsolete): | 9223372036854775807 |
| Description |
|
We are maintaining a small CI/CD infrastructure based on GitlabCI to build different Lustre client packages for worker nodes. In the pipeline we are usually configuring Lustre build using checks caching via -C parameter:
./configure --disable-tests --disable-server --enable-client --with-zfs=no --with-o2ib=yes --disable-gss --with-linux=/usr/src/kernels/${CLIENT_KERNEL_VER}.x86_64 -C
and using `config.cache` as build cache. This solution speeds up the build process. However, the latest branch based on the b2_15 causes the following errors when invoking `make rpms`:
config.status: creating lustre/utils/gss/Makefile
config.status: creating lustre/osp/Makefile
config.status: creating lustre/osp/autoMakefile
config.status: creating lustre/lod/Makefile
config.status: creating lustre/lod/autoMakefile
config.status: creating snmp/Makefile
config.status: creating snmp/autoconf/Makefile
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
CC: gcc
LD: /usr/bin/ld -m elf_x86_64
CPPFLAGS: -include /tmp/rpmbuild-lustre--mshmt5CL/BUILD/lustre-2.15.1_RC1/undef.h -include /tmp/rpmbuild-lustre--mshmt5CL/BUILD/lustre-2.15.1_RC1/config.h -I/tmp/rpmbuild-lustre--mshmt5CL/BUILD/lustre-2.15.1_RC1/lnet/include/uapi -I/tmp/rpmbuild-lustre--mshmt5CL/BUILD/lustre-2.15.1_RC1/lustre/include/uapi -I/tmp/rpmbuild-lustre--mshmt5CL/BUILD/lustre-2.15.1_RC1/libcfs/include -I/tmp/rpmbuild-lustre--mshmt5CL/BUILD/lustre-2.15.1_RC1/lnet/utils/ -I/tmp/rpmbuild-lustre--mshmt5CL/BUILD/lustre-2.15.1_RC1/lustre/include
CFLAGS: -g -O2 -Werror -Wall -Werror
EXTRA_KCFLAGS: -include /tmp/rpmbuild-lustre--mshmt5CL/BUILD/lustre-2.15.1_RC1/undef.h -include /tmp/rpmbuild-lustre--mshmt5CL/BUILD/lustre-2.15.1_RC1/config.h -g -I/tmp/rpmbuild-lustre--mshmt5CL/BUILD/lustre-2.15.1_RC1/libcfs/include -I/tmp/rpmbuild-lustre--mshmt5CL/BUILD/lustre-2.15.1_RC1/libcfs/include/libcfs -I/tmp/rpmbuild-lustre--mshmt5CL/BUILD/lustre-2.15.1_RC1/lnet/include/uapi -I/tmp/rpmbuild-lustre--mshmt5CL/BUILD/lustre-2.15.1_RC1/lnet/include -I/tmp/rpmbuild-lustre--mshmt5CL/BUILD/lustre-2.15.1_RC1/lustre/include/uapi -I/tmp/rpmbuild-lustre--mshmt5CL/BUILD/lustre-2.15.1_RC1/lustre/include -Wno-format-truncation -Wno-stringop-truncation -Wno-stringop-overflow
Type 'make' to build Lustre.
+ make -j2 -s
Making all in .
In file included from /tmp/rpmbuild-lustre--mshmt5CL/BUILD/lustre-2.15.1_RC1/lustre/include/lustre_compat.h:46,
from /tmp/rpmbuild-lustre--mshmt5CL/BUILD/lustre-2.15.1_RC1/libcfs/libcfs/libcfs_mem.c:37:
/tmp/rpmbuild-lustre--mshmt5CL/BUILD/lustre-2.15.1_RC1/libcfs/include/libcfs/linux/linux-fs.h:66:18: error: redefinition of 'struct file_operations'
66 | #define proc_ops file_operations
| ^~~~~~~~~~~~~~~
include/linux/proc_fs.h:29:8: note: in expansion of macro 'proc_ops'
29 | struct proc_ops {
| ^~~~~~~~
In file included from /tmp/rpmbuild-lustre--mshmt5CL/BUILD/lustre-2.15.1_RC1/libcfs/include/libcfs/linux/linux-misc.h:35,
from /tmp/rpmbuild-lustre--mshmt5CL/BUILD/lustre-2.15.1_RC1/libcfs/include/libcfs/libcfs.h:43,
from /tmp/rpmbuild-lustre--mshmt5CL/BUILD/lustre-2.15.1_RC1/libcfs/libcfs/libcfs_mem.c:36:
include/linux/fs.h:2060:8: note: originally defined here
2060 | struct file_operations {
| ^~~~~~~~~~~~~~~
make[7]: *** [scripts/Makefile.build:271: /tmp/rpmbuild-lustre--mshmt5CL/BUILD/lustre-2.15.1_RC1/libcfs/libcfs/libcfs_mem.o] Error 1
make[6]: *** [scripts/Makefile.build:514: /tmp/rpmbuild-lustre--mshmt5CL/BUILD/lustre-2.15.1_RC1/libcfs/libcfs] Error 2
make[5]: *** [scripts/Makefile.build:514: /tmp/rpmbuild-lustre--mshmt5CL/BUILD/lustre-2.15.1_RC1/libcfs] Error 2
make[5]: *** Waiting for unfinished jobs....
make[4]: *** [Makefile:1862: /tmp/rpmbuild-lustre--mshmt5CL/BUILD/lustre-2.15.1_RC1] Error 2
make[3]: *** [autoMakefile:1093: modules] Error 2
make[2]: *** [autoMakefile:625: all-recursive] Error 1
make[1]: *** [autoMakefile:509: all] Error 2
error: Bad exit status from /tmp/rpmbuild-lustre--mshmt5CL/TMP/rpm-tmp.Cqd8xu (%build)
RPM build errors:
Bad exit status from /tmp/rpmbuild-lustre--mshmt5CL/TMP/rpm-tmp.Cqd8xu (%build)
make: *** [autoMakefile:1203: rpms] Error 1
The build without -C works properly. |
| Comments |
| Comment by Andreas Dilger [ 29/Jul/22 ] |
|
Shaun, you've some work with configure, any suggestions here? |
| Comment by Shaun Tancheff [ 30/Jul/22 ] |
|
These commits should resolve the config-cache issue: |
| Comment by Dominika Wanat [ 01/Aug/22 ] |
|
I've checked this commits and its source code and they've already been commited to this branch. |
| Comment by Shaun Tancheff [ 01/Aug/22 ] |
|
I checked master and it seems this issue currently breaks on master as well. It is fixed in this pending series: Seems the first commit is enough: |
| Comment by Dominika Wanat [ 01/Aug/22 ] |
|
Yes, the first commit solves the problem. Thank you. |
| Comment by Shaun Tancheff [ 01/Aug/22 ] |
|
The root cause is $SUBARCH may not be defined at the time the parallel config test is generated, causing the configure test to fail when it should have succeeded. |
| Comment by Gerrit Updater [ 01/Aug/22 ] |
|
"Shaun Tancheff <shaun.tancheff@hpe.com>" uploaded a new patch: https://review.whamcloud.com/48101 |
| Comment by Gerrit Updater [ 01/Sep/22 ] |
|
"Oleg Drokin <green@whamcloud.com>" merged in patch https://review.whamcloud.com/48101/ |
| Comment by Peter Jones [ 01/Sep/22 ] |
|
Landed for 2.16 |