From 39e1044ab9bd9006be0f4467efa3ad607f49d835 Mon Sep 17 00:00:00 2001 From: brian Date: Wed, 7 May 2008 21:30:40 +0000 Subject: [PATCH] b=15316 i=cliffw i=wangyb Build OFED 1.3's kernel-ib and kernel-ib-devel with our patched lustre server kernel for RHEL 4 and 5 and SLES 10. SLES 9 is not supported by OFED 1.3. Since OFED 1.3 provides a newer open-iscsi stack, prefer those modules from the kernel-ib over those provided by the vendor kernels. Additionally, build Lustre with o2iblnd support. --- build/lbuild | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 59 insertions(+), 1 deletion(-) diff --git a/build/lbuild b/build/lbuild index 5c35f10..4c7294f 100755 --- a/build/lbuild +++ b/build/lbuild @@ -1047,7 +1047,20 @@ unpack_linux_rpm() LINUXOBJ="$(pwd)/$src/$objects" fi done - [ -z "$LINUX" ] && RC=255 + if [ -z "$LINUX" ]; then + RC=255 + else + # dig out the release version + local LINUXRELEASEHEADER=version.h + if test -s ${LINUXOBJ:-$LINUX}/include/linux/utsrelease.h ; then + LINUXRELEASEHEADER=utsrelease.h + fi + LINUXRELEASE=$(sed -ne 's/#define UTS_RELEASE "\(.*\)"$/\1/p' ${LINUXOBJ:-$LINUX}/include/linux/$LINUXRELEASEHEADER) + if [ -z "$LINUXRELEASE" ]; then + echo "Failed to find linux release in ${LINUXOBJ:-$LINUX}/include/linux/$LINUXRELEASEHEADER" + RC=255 + fi + fi else RC=255 fi @@ -1213,6 +1226,41 @@ build_linux() return } +build_kernel_ib() +{ + # build kernel-ib{,-devel} + # some I/B drivers are architecture dependent and kernel-ib's configure + # does not figure it out for us ~sigh~ + local configure_options="" + case "$TARGET_ARCH" in + x86_64 | ia64) + configure_options="--with-ipath_inf-mod" + ;; + ppc64) + configure_options="--with-ipath_inf-mod --with-ehca-mod" + ;; + esac + $RPMBUILD --rebuild --define 'build_kernel_ib 1' --define 'build_kernel_ib_devel 1' \ + --define "_topdir ${TOPDIR}" --target ${TARGET_ARCH} \ + --define "KVERSION ${LINUXRELEASE}" \ + --define "KSRC ${LINUXOBJ:-${LINUX}}" \ + --define "LIB_MOD_DIR /lib/modules/${LINUXRELEASE}/updates" \ + --define "configure_options --without-quilt --with-core-mod --with-user_mad-mod --with-user_access-mod --with-addr_trans-mod --with-srp-target-mod --with-core-mod --with-mthca-mod --with-mlx4-mod --with-cxgb3-mod --with-nes-mod --with-ipoib-mod --with-sdp-mod --with-srp-mod --without-srp-target-mod --with-rds-mod --with-iser-mod --with-qlgc_vnic-mod --with-madeye-mod $configure_options" ${TOPDIR}/OFED/SRPMS/ofa_kernel-${OFED_VERSION}-ofed${OFED_VERSION}.src.rpm + + if [ ${PIPESTATUS[0]} != 0 ]; then + fatal 1 "Error building kernel-ib" + fi + + pushd "$TOPDIR" >/dev/null + rm -rf kernel-ib-devel + mkdir kernel-ib-devel + cd kernel-ib-devel + local rpm=$(ls $TOPDIR/RPMS/*/kernel-ib-devel-${OFED_VERSION}-${LINUXRELEASE//-/_}.*.rpm) + rpm2cpio -itv < $rpm | cpio -id + CONFIGURE_FLAGS="--with-o2ib=$(pwd)/usr/src/ofa_kernel ${CONFIGURE_FLAGS}" + popd >/dev/null +} + #build patchless lustre patchless_build_sequence() { @@ -1237,6 +1285,16 @@ patchless_build_sequence() esac unpack_linux_rpm $type $delimiter && rpmfound=true + + [ -d SRPMS ] || mkdir SRPMS + [ -d RPMS ] || mkdir RPMS + [ -d BUILD ] || mkdir BUILD + [ -d SOURCES ] || mkdir SOURCES + + # first build kernel-ib + if [ -n "$OFED_VERSION" ]; then + $rpmfound && build_kernel_ib + fi ( $rpmfound ) && build_lustre && buildsuccess=true && find_linux_source_rpm if $buildsuccess; then -- 1.8.3.1