jjb: Adjust gcc and flags for building old kernels with gcc-11/12
[lttng-ci.git] / scripts / system-tests / check-build-needs.sh
index 21acde43cc7a2f1f3fd3eec4ab688f4e784d4653..363b53553c416f262831ba025866b0d81cfc9cb2 100644 (file)
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
+# Version compare functions
+vercomp () {
+    set +u
+    if [[ "$1" == "$2" ]]; then
+        return 0
+    fi
+    local IFS=.
+    local i ver1=($1) ver2=($2)
+    # fill empty fields in ver1 with zeros
+    for ((i=${#ver1[@]}; i<${#ver2[@]}; i++)); do
+        ver1[i]=0
+    done
+    for ((i=0; i<${#ver1[@]}; i++)); do
+        if [[ -z ${ver2[i]} ]]; then
+            # fill empty fields in ver2 with zeros
+            ver2[i]=0
+        fi
+        if ((10#${ver1[i]} > 10#${ver2[i]})); then
+            return 1
+        fi
+        if ((10#${ver1[i]} < 10#${ver2[i]})); then
+            return 2
+        fi
+    done
+    set -u
+    return 0
+}
+
+verlte() {
+    vercomp "$1" "$2"; local res="$?"
+    [ "$res" -eq "0" ] || [ "$res" -eq "2" ]
+}
+
+verlt() {
+    vercomp "$1" "$2"; local res="$?"
+    [ "$res" -eq "2" ]
+}
+
+vergte() {
+    vercomp "$1" "$2"; local res="$?"
+    [ "$res" -eq "0" ] || [ "$res" -eq "1" ]
+}
+
+vergt() {
+    vercomp "$1" "$2"; local res="$?"
+    [ "$res" -eq "1" ]
+}
+
+verne() {
+    vercomp "$1" "$2"; local res="$?"
+    [ "$res" -ne "0" ]
+}
+
 mkdir -p "$DEPLOYDIR"
 
 NEED_MODULES_BUILD=0
@@ -27,7 +80,7 @@ if [ $? -ne 0 ]; then
   NEED_MODULES_BUILD=1
 fi
 
-$S3_COMMAND info "$S3_STORAGE_KERNEL_IMAGE"
+$S3_COMMAND info "s3://$S3_STORAGE_KERNEL_IMAGE"
 if [ $? -ne 0 ]; then
   NEED_KERNEL_BUILD=1
   # We need to build the lttng modules if the kernel has changed.
@@ -39,7 +92,7 @@ if [ $? -ne 0 ]; then
   NEED_MODULES_BUILD=1
 fi
 
-$S3_COMMAND info "$S3_STORAGE_LTTNG_MODULES"
+$S3_COMMAND info "s3://$S3_STORAGE_LTTNG_MODULES"
 if [ $? -ne 0 ]; then
   NEED_MODULES_BUILD=1
 fi
@@ -49,12 +102,29 @@ set -e
 # We need to fetch the kernel source and lttng-modules to build either the
 # kernel or modules
 if [ $NEED_MODULES_BUILD -eq 1 ] || [ $NEED_KERNEL_BUILD -eq 1 ] ; then
+  mkdir -p "$LINUX_PATH"
+  pushd "$LINUX_PATH"
+  git init
+  git remote add origin "$KGITREPO"
+  git fetch --depth 1 origin "$KERNEL_COMMIT_ID"
+  git checkout FETCH_HEAD
+  version=$(make -s kernelversion)
+  popd
+
+
+  # Prepare version string for comparison.
+  # Strip any '-rc tag'.
+  version=${version%%"-"*}
 
   cp src/lttng-ci/lava/kernel/vanilla/x86_64_server.config "$LINUX_PATH/.config"
   make --directory="$LINUX_PATH" olddefconfig
 
   if [ $BUILD_DEVICE = 'kvm' ] ; then
-    make --directory="$LINUX_PATH" kvmconfig
+    if vergte "$version" "3.19"; then
+      make --directory="$LINUX_PATH" kvm_guest.config
+    else
+      make --directory="$LINUX_PATH" kvmconfig
+    fi
   fi
 
   make --directory="$LINUX_PATH" modules_prepare
This page took 0.039937 seconds and 4 git commands to generate.