Merge pull request #6 from csmart/build_debug

Build debug kernel 

[18:00:16] <shenki> csmart: patch looks good. feel free to merge it

Signed-off-by: Chris Smart <distroguy@gmail.com>
diff --git a/build-setup.sh b/build-setup.sh
index 5009114..86891a9 100755
--- a/build-setup.sh
+++ b/build-setup.sh
@@ -52,7 +52,8 @@
 RUN dnf install -y git subversion gcc gcc-c++ make perl-Thread-Queue perl-Data-Dumper diffstat texinfo \
 chrpath wget SDL-devel patch bzip2 tar cpio findutils socat which python-devel perl-bignum
 
-RUN groupadd -g ${GROUPS} ${USER} && useradd -d ${HOME} -m -u ${UID} -g ${GROUPS} ${USER}
+RUN grep -q ${GROUPS} /etc/group || groupadd -g ${GROUPS} ${USER}
+RUN grep -q ${UID} /etc/passwd || useradd -d ${HOME} -m -u ${UID} -g ${GROUPS} ${USER}
 
 USER ${USER}
 ENV HOME ${HOME}
@@ -76,7 +77,9 @@
 RUN DEBIAN_FRONTEND=noninteractive apt-get install -y build-essential git subversion diffstat texinfo \
   chrpath wget libthread-queue-any-perl libdata-dumper-simple-perl python libsdl1.2-dev gawk socat debianutils
 
-RUN groupadd -g ${GROUPS} ${USER} && useradd -d ${HOME} -m -u ${UID} -g ${GROUPS} ${USER}
+RUN grep -q ${GROUPS} /etc/group || groupadd -g ${GROUPS} ${USER}
+RUN grep -q ${UID} /etc/passwd || useradd -d ${HOME} -m -u ${UID} -g ${GROUPS} ${USER}
+
 
 USER ${USER}
 ENV HOME ${HOME}
@@ -115,7 +118,7 @@
 # Configure proxies for bitbake
 if [[ -n "${http_proxy}" ]]; then
 
-  cat > ${WORKSPACE}/bin/git-proxy << EOF_GIT
+  cat > ${WORKSPACE}/bin/git-proxy << \EOF_GIT
 #!/bin/bash
 # \$1 = hostname, \$2 = port
 PROXY=${PROXY_HOST}
diff --git a/kernel-build.sh b/kernel-build.sh
index f74747a..af2bec0 100755
--- a/kernel-build.sh
+++ b/kernel-build.sh
@@ -23,9 +23,16 @@
 
 ${PROXY}
 
-RUN echo $(date +%s) && apt-get update
+# If we need to fetch new apt repo data, update the timestamp
+RUN echo 201603031716 && apt-get update
 RUN DEBIAN_FRONTEND=noninteractive apt-get upgrade -yy
 RUN DEBIAN_FRONTEND=noninteractive apt-get install -yy bc build-essential git gcc-powerpc64le-linux-gnu
+RUN DEBIAN_FRONTEND=noninteractive apt-get install -yy software-properties-common
+RUN apt-add-repository -y multiverse
+# If we need to fetch new apt repo data, update the timestamp
+RUN echo 201603031716 && apt-get update
+RUN apt-get update
+RUN DEBIAN_FRONTEND=noninteractive apt-get install -yy dwarves sparse
 RUN groupadd -g ${GROUPS} ${USER} && useradd -d ${HOME} -m -u ${UID} -g ${GROUPS} ${USER}
 
 USER ${USER}
@@ -61,9 +68,18 @@
 # Record the version in the logs
 powerpc64le-linux-gnu-gcc --version || exit 1
 
-# Build kernel
+# Build kernel prep
 ARCH=powerpc CROSS_COMPILE=powerpc64le-linux-gnu- make clean || exit 1
 ARCH=powerpc CROSS_COMPILE=powerpc64le-linux-gnu- make mrproper || exit 1
+
+# Build kernel with debug
+ARCH=powerpc CROSS_COMPILE=powerpc64le-linux-gnu- make pseries_le_defconfig || exit 1
+echo "CONFIG_DEBUG_INFO=y" >> .config
+ARCH=powerpc CROSS_COMPILE=powerpc64le-linux-gnu- make olddefconfig || exit 1
+ARCH=powerpc CROSS_COMPILE=powerpc64le-linux-gnu- make -j$(nproc) -s C=2 CF=-D__CHECK_ENDIAN__ 2>&1 | gzip > sparse.log.gz
+pahole vmlinux 2>&1 | gzip > structs.dump.gz
+
+# Build kernel
 ARCH=powerpc CROSS_COMPILE=powerpc64le-linux-gnu- make pseries_le_defconfig || exit 1
 ARCH=powerpc CROSS_COMPILE=powerpc64le-linux-gnu- make -j$(nproc) || exit 1