correct smp related /boot symlinks
[linux-2.6.git] / scripts / kernel-2.6-planetlab.spec
index 8970050..fff0acd 100644 (file)
@@ -326,17 +326,38 @@ BuildKernel() {
 
     # and now to start the build process
 
-    make -s ARCH=$Arch mrproper
-    cp configs/$Config .config
-
-    echo USING ARCH=$Arch
+    CC=gcc
+    gccversion=$(gcc -v 2>&1 | grep "gcc version" | awk '{print $3'} | awk -F . '{print $1}')
+    if [ "$gccversion" == "4" ] ; then
+       echo "Currently not compiling kernel with gcc 4.x"
+       echo "Trying to find a recent gcc 3.x based compiler"
+       CC=
+       gcc3=$(which gcc32 2>/dev/null || /bin/true)
+       [ "$gcc3" != "" ] && CC=gcc32
+       echo "gcc3 = $gcc3; CC=${CC}"
+       gcc3=$(which gcc33 2>/dev/null || /bin/true)
+       [ "$gcc3" != "" ] && CC=gcc33
+       echo "gcc3 = $gcc3; CC=${CC}"
+       gcc3=$(which gcc34 2>/dev/null || /bin/true)
+       [ "$gcc3" != "" ] && CC=gcc34
+       echo "gcc3 = $gcc3; CC=${CC}"
+       if [ -z "$CC" ]; then
+           echo "Could not find a gcc 3.x based compiler!"
+           echo "Aborting kernel compilation!"
+           exit -1
+       fi
+    fi
+    HOSTCC=${CC}
 
-    make -s ARCH=$Arch nonint_oldconfig > /dev/null
-    make -s ARCH=$Arch include/linux/version.h 
+    make -s CC=${CC} HOSTCC=${HOSTCC} ARCH=$Arch mrproper
+    cp configs/$Config .config
+    echo "USING ARCH=$Arch CC=${CC} HOSTCC=${HOSTCC}"
 
-    make -s ARCH=$Arch %{?_smp_mflags} $Target
-    make -s ARCH=$Arch %{?_smp_mflags} modules || exit 1
-    make ARCH=$Arch buildcheck
+    make -s CC=${CC} HOSTCC=${HOSTCC} ARCH=$Arch nonint_oldconfig > /dev/null
+    make -s CC=${CC} HOSTCC=${HOSTCC} ARCH=$Arch include/linux/version.h 
+    make -s CC=${CC} HOSTCC=${HOSTCC} ARCH=$Arch %{?_smp_mflags} $Target
+    make -s CC=${CC} HOSTCC=${HOSTCC} ARCH=$Arch %{?_smp_mflags} modules || exit 1
+    make CC=${CC} HOSTCC=${HOSTCC} ARCH=$Arch buildcheck
     
     # Start installing the results
 
@@ -569,9 +590,9 @@ fi
 
 # make some useful links
 pushd /boot > /dev/null ; {
-       ln -sf config-%{KVERREL} configsmp
-       ln -sf initrd-%{KVERREL}.img initrd-bootsmp
-       ln -sf vmlinuz-%{KVERREL} kernel-bootsmp
+       ln -sf config-%{KVERREL}smp configsmp
+       ln -sf initrd-%{KVERREL}smp.img initrd-bootsmp
+       ln -sf vmlinuz-%{KVERREL}smp kernel-bootsmp
 }
 popd > /dev/null