sles15.1) target="$(uname -r | cut -d . -f 1,2)-sles15sp1";;
sles15.2) target="$(uname -r | cut -d . -f 1,2)-sles15sp2";;
sles15.3) target="$(uname -r | cut -d . -f 1,2)-sles15sp3";;
+ sles15.4) target="$(uname -r | cut -d . -f 1,2)-sles15sp4";;
fc18) target="3.x-fc18";;
*) fatal 1 "I don't know what distro $distro is.\nEither update autodetect_target() or use the --target argument.";;
esac
if ! $RPMBUILD $BUILD_TYPE \
${FIND_REQUIRES:+--define "__find_requires $FIND_REQUIRES"} \
${FIND_KSYMS_REQUIRES:+--define "__required_ksyms_requires $FIND_KSYMS_REQUIRES"} \
+ ${MOFED_FLAVOR:+--define "flavors_to_build $MOFED_FLAVOR"} \
--define "_topdir ${TOPDIR}" --target ${TARGET_ARCH} \
--define "KVERSION ${linuxrelease}" \
--define "KMP 1" \
DEVEL_KERNEL_TYPE="default-devel"
RPM_HELPERS_DIR="/usr/lib/rpm"
RMAC=$HOME/.rpmmacros
-SUSE_MACROS=/etc/rpm/macros.kernel-source
prepare_and_build_srpm() {
find_linux_devel_paths() {
local path="$1"
local linuxobjpath=$path/usr/src/linux-${lnxmaj}${lnxmin}-${lnxrel}-obj/$(resolve_arch $TARGET_ARCH $PATCHLESS)/$RPMSMPTYPE
+ local linuxmodpath=$path/lib/modules/${lnxmaj}${lnxmin}-${lnxrel}-$RPMSMPTYPE
LINUX=$path/usr/src/linux-${lnxmaj}${lnxmin}-${lnxrel}
LINUXOBJ=$path/usr/src/linux-obj/$(resolve_arch $TARGET_ARCH $PATCHLESS)/$RPMSMPTYPE
+ # symlink the build and source to the local path instead of system's
+ ln -sf $linuxobjpath $linuxmodpath/build
+ ln -sf $LINUX $linuxmodpath/source
# symlink the linux-obj to linux-version-obj
ln -s $linuxobjpath $LINUXOBJ
# We need to copy the headers from the source to the object tree for
fi
# We modify %kernel_module_package macro to use the linux obj
# that lbuild install, not the OS installed /usr/src
- sed -i -e "/^%kernel_module_package/,/^)}$/d" \
- -e "/^# A few cross-distro definitions/d" $RMAC
sed -e "s/\/usr\/src/${path//\//\\/}\/usr\/src/" \
- -e "s/\/boot/${path//\//\\/}\/boot/" ${SUSE_MACROS} >> $RMAC
+ -e "s/\/boot/${path//\//\\/}\/boot/" ${SUSE_MACROS} > $RMAC
return 0
}
# This distro does not support zfs, so define WITH_ZFS
# use words that make the bash log readable.
WITH_ZFS="Zfs Not Supported"
+SUSE_MACROS=/etc/rpm/macros.kernel-source
source ${LBUILD_DIR}/lbuild-sles
# This distro does not support zfs, so define WITH_ZFS
# use words that make the bash log readable.
WITH_ZFS="Zfs Not Supported"
+SUSE_MACROS=/usr/lib/rpm/macros.d/macros.kernel-source
source ${LBUILD_DIR}/lbuild-sles
;;
esac
;;
+ 5.14)
+ kdir=updates-sles15.4-src
+ ;;
esac
site="http://mgmt/cobbler/repo_mirror/$kdir"
;;
esac
;;
+ 5.14)
+ distro=sles15.4
+ ;;
esac
base_dir=updates-basesystem-$distro-x86_64
5.14.0-70.22.1.el9 (RHEL9.0)
4.18.0-372.16.1.el8 (RHEL8.6)
5.4.0-37 (Ubuntu 20.04)
- 5.3.18-59.27 (SLES15 SP3)
+ 5.14.21-150400.24.18 (SLES15 SP4)
* Other clients known to build on these kernels at some point (others may also work):
3.10.0-862.14.4.el7 (RHEL7.5)
3.10.0-957.27.2.el7 (RHEL7.6)
4.12.14-122.116 (SLES12 SP5)
4.12.14-197.75 (SLES15 SP1)
5.3.18-24.96 (SLES15 SP2)
+ 5.3.18-59.27 (SLES15 SP3)
4.4.0-131 (Ubuntu 16.04)
4.15.0-48 (Ubuntu 18.04)
5.8.0-53 (Ubuntu 20.04.2 HWE)
lustre/kernel_patches/targets/4.12-sles15sp1.target
lustre/kernel_patches/targets/5.3-sles15sp2.target
lustre/kernel_patches/targets/5.3-sles15sp3.target
+lustre/kernel_patches/targets/5.14-sles15sp4.target
lustre/kernel_patches/targets/3.x-fc18.target
lustre/ldlm/Makefile
lustre/ec/autoMakefile
--- /dev/null
+lnxmaj="5.14"
+lnxmin=".21"
+lnxrel="150400.24.18"
+# use this when there is an "RPM fix" which means that the name of the
+# (source) RPM has been updated but the version of the kernel inside the
+# RPM is not also updated
+rpmfix=".1"
+
+# this is the delimeter that goes before the "smp" at the end of the version
+# defaults to empty
+FLAVOR_DELIMITER="-"
+
+KERNEL_SRPM=kernel-source-${lnxmaj}${lnxmin}-${lnxrel}${rpmfix}.src.rpm
+SERIES=""
+VERSION=$lnxmaj
+EXTRA_VERSION="${lnxmin#.}-${lnxrel}_lustre.@VERSION@"
+LUSTRE_VERSION=@VERSION@
+
+OFED_VERSION=inkernel
+
+BASE_ARCHS="i686 ppc x86_64 ia64 ppc64"
+BIGMEM_ARCHS=""
+BOOT_ARCHS=""
+JENSEN_ARCHS=""
+DEFAULT_ARCHS="i686 x86_64 ia64 ppc64"
+BIGSMP_ARCHS=""
+PSERIES64_ARCHS="ppc"
+UP_ARCHS=""
+SRC_ARCHS=""
+#RPMSMPTYPE="smp"
+
+for cc in gcc ; do
+ if which $cc >/dev/null 2>/dev/null ; then
+ export CC=$cc
+ break
+ fi
+done
LUSTRE_VERSION=@VERSION@
OFED_VERSION=inkernel
+MOFED_FLAVOR=default
BASE_ARCHS="i686 ppc x86_64 ia64 ppc64"
BIGMEM_ARCHS=""
int vvp_global_init(void);
void vvp_global_fini(void);
-#ifndef HAVE_ACCOUNT_PAGE_DIRTIED_EXPORT
+#if !defined(HAVE_ACCOUNT_PAGE_DIRTIED_EXPORT) || \
+defined(HAVE_KALLSYMS_LOOKUP_NAME)
extern unsigned int (*vvp_account_page_dirtied)(struct page *page,
struct address_space *mapping);
#endif
for (i = 0; i < count; i++)
__set_page_dirty_nobuffers(pvec->pages[i]);
#else
+ /*
+ * In kernel 5.14.21, kallsyms_lookup_name is defined but
+ * account_page_dirtied is not exported.
+ */
+ if (!vvp_account_page_dirtied) {
+ for (i = 0; i < count; i++)
+ __set_page_dirty_nobuffers(pvec->pages[i]);
+ goto end;
+ }
+
for (i = 0; i < count; i++) {
page = pvec->pages[i];
/* !PageAnon && !swapper_space */
__mark_inode_dirty(mapping->host, I_DIRTY_PAGES);
}
+end:
#endif
EXIT;
}