jjb: fix arm64 lttng-modules build on kernel >=4.13-rc1
authorMichael Jeanson <mjeanson@efficios.com>
Mon, 17 Jul 2017 19:06:40 +0000 (15:06 -0400)
committerMichael Jeanson <mjeanson@efficios.com>
Mon, 17 Jul 2017 19:06:40 +0000 (15:06 -0400)
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
jobs/lttng-modules.yaml
scripts/lttng-modules/master-rt.groovy
scripts/lttng-modules/master.groovy
scripts/lttng-modules/param-build.sh

index b5e48ac86a6e38a5ce2d3f18c6d32bf73e34b8ca..9b6533ca430ea0528597644b224157daf1527ce0 100644 (file)
           default: 'master'
           description: 'The lttng-modules branch to build.'
       - string:
-          name: 'kversion'
+          name: 'ktag'
           default: ''
           description: 'The linux kernel git tag to build against.'
       - string:
 
     builders:
       - shell: |
-          git clone --depth=1 -b "$kversion" --reference $HOME/gitcache/linux-stable.git/ "$kgitrepo" src/linux
+          git clone --depth=1 -b "$ktag" --reference $HOME/gitcache/linux-stable.git/ "$kgitrepo" src/linux
       - shell:
           !include-raw-escape: scripts/lttng-modules/param-build.sh
 
           default: 'master'
           description: 'The lttng-modules branch to build.'
       - string:
-          name: 'kversion'
+          name: 'ktag'
           default: ''
           description: 'The linux kernel git tag to build against.'
       - string:
 
     builders:
       - shell: |
-          git clone --depth=1 -b "$kversion" --reference $HOME/gitcache/linux-stable.git/ "$kgitrepo" src/linux
+          git clone --depth=1 -b "$ktag" --reference $HOME/gitcache/linux-stable.git/ "$kgitrepo" src/linux
       - shell:
           !include-raw-escape: scripts/lttng-modules/param-build.sh
 
index 177041db8ebfb2590154a24f939ff2db4813c3cb..cfcfe0938a9d0c8bce35c6163f74e7d15d31b57f 100644 (file)
@@ -173,7 +173,7 @@ while ( kversions.size() != 0 || ongoingBuild.size() != 0 ) {
     def kversion = kversions.pop()
     def job_params = [
       new StringParameterValue('mversion', mversion),
-      new StringParameterValue('kversion', kversion.toString()),
+      new StringParameterValue('ktag', kversion.toString()),
       new StringParameterValue('kgitrepo', kgitrepo),
     ]
 
@@ -217,7 +217,7 @@ while ( kversions.size() != 0 || ongoingBuild.size() != 0 ) {
         // Print results
         def matrixParent = currentBuild.get()
         allBuilds.add(matrixParent)
-        def kernelStr = matrixParent.buildVariableResolver.resolve("kversion")
+        def kernelStr = matrixParent.buildVariableResolver.resolve("ktag")
         println "${matrixParent.fullDisplayName} (${kernelStr}) completed with status ${matrixParent.result}"
 
         // Process child runs of matrixBuild
@@ -243,7 +243,7 @@ for (failedRun in failedRuns) {
 
 println "---Build report---"
 for (b in allBuilds) {
-  def kernelStr = b.buildVariableResolver.resolve("kversion")
+  def kernelStr = b.buildVariableResolver.resolve("ktag")
   println "${b.fullDisplayName} (${kernelStr}) completed with status ${b.result}"
   // Cleanup builds
   try {
index 0dbf61b475e03135e1d854a970baac665b76e747..a8bf945f195f7696553915fdf800b12518cdfca9 100644 (file)
@@ -450,7 +450,7 @@ while ( kversions.size() != 0 || ongoingBuild.size() != 0 ) {
     def kversion = kversions.pop()
     def job_params = [
       new StringParameterValue('mversion', mversion),
-      new StringParameterValue('kversion', kversion.toString()),
+      new StringParameterValue('ktag', kversion.toString()),
       new StringParameterValue('kgitrepo', kgitrepo),
     ]
 
@@ -492,7 +492,7 @@ while ( kversions.size() != 0 || ongoingBuild.size() != 0 ) {
         // Print results
         def matrixParent = currentBuild.get()
         allBuilds.add(matrixParent)
-        def kernelStr = matrixParent.buildVariableResolver.resolve("kversion")
+        def kernelStr = matrixParent.buildVariableResolver.resolve("ktag")
         println "${matrixParent.fullDisplayName} (${kernelStr}) completed with status ${matrixParent.result}"
 
         // Process child runs of matrixBuild
@@ -518,7 +518,7 @@ for (failedRun in failedRuns) {
 
 println "---Build report---"
 for (b in allBuilds) {
-  def kernelStr = b.buildVariableResolver.resolve("kversion")
+  def kernelStr = b.buildVariableResolver.resolve("ktag")
   println "${b.fullDisplayName} (${kernelStr}) completed with status ${b.result}"
   // Cleanup builds
   try {
index 6af2d57a031243ee441ca52ae0aad9bc30879fe7..443059da8d298b14efde53a940e6bf86a202f105 100644 (file)
@@ -46,7 +46,7 @@ prepare_lnx_sources() {
     fi
 
     # Generate kernel configuration
-    case "$kversion" in
+    case "$ktag" in
       Ubuntu*)
         fakeroot debian/rules clean
         fakeroot debian/rules genconfigs
@@ -88,11 +88,18 @@ prepare_lnx_sources() {
         make arch/powerpc/lib/crtsavres.o CC="$CC" ${koutput}
     fi
 
+    # On arm64 this object is required to build with ftrace support
+    if [ "${karch}" = "arm64" ]; then
+        if vergte "$KVERSION" "4.13-rc1"; then
+            make arch/arm64/kernel/ftrace-mod.o CC="$CC" ${koutput}
+        fi
+    fi
+
     # Version specific tasks
-    case "$kversion" in
+    case "$ktag" in
       Ubuntu*)
         # Add Ubuntu ABI number to kernel headers, this is normally done by the packaging code
-        ABINUM="$(echo "$kversion" | grep -P -o 'Ubuntu-(lts-)?.*-\K\d+(?=\..*)')"
+        ABINUM="$(echo "$ktag" | grep -P -o 'Ubuntu-(lts-)?.*-\K\d+(?=\..*)')"
         echo "#define UTS_UBUNTU_RELEASE_ABI $ABINUM" >> "${outdir}"/include/generated/utsrelease.h
         ;;
     esac
@@ -105,17 +112,13 @@ build_modules() {
     kdir="$1"
     bdir="$2"
 
-    # Get kernel version from source tree
-    cd "${kdir}"
-    kversion=$(make kernelversion)
-
     # Enter lttng-modules source dir
     cd "${LTTSRCDIR}"
 
     # kernels 3.10 to 3.10.13 and 3.11 to 3.11.2 introduce a deadlock in the
     # timekeeping subsystem. We want those build to fail.
-    if { vergte "$kversion" "3.10" && verlte "$kversion" "3.10.13"; } || \
-       { vergte "$kversion" "3.11" && verlte "$kversion" "3.11.2"; }; then
+    if { vergte "$KVERSION" "3.10" && verlte "$KVERSION" "3.10.13"; } || \
+       { vergte "$KVERSION" "3.11" && verlte "$KVERSION" "3.11.2"; }; then
 
         set +e
 
@@ -280,6 +283,9 @@ mkdir -p "${LNXBUILDDIR}" "${LNXHDRDIR}" "${LTTBUILDKSRCDIR}" "${LTTBUILDKHDRDIR
 # Enter linux source dir
 cd "${LNXSRCDIR}"
 
+# Get kernel version from source tree
+KVERSION=$(make kernelversion)
+
 prepare_lnx_sources "."
 
 # For RT kernels, copy version file
@@ -316,6 +322,13 @@ if [ "${karch}" = "powerpc" ]; then
     cp -a --parents arch/powerpc/lib/crtsavres.[So] "${LNXHDRDIR}/"
 fi
 
+# On arm64 this object is required to build with ftrace support
+if [ "${karch}" = "arm64" ]; then
+    if vergte "$KVERSION" "4.13-rc1"; then
+        cp -a --parents arch/arm64/kernel/ftrace-mod.[So] "${LNXHDRDIR}/"
+    fi
+fi
+
 # Copy modules related stuff, if available
 if [ -s Module.symvers ]; then
     cp Module.symvers "${LNXHDRDIR}"
This page took 0.02741 seconds and 4 git commands to generate.