summaryrefslogtreecommitdiff
path: root/baserock-bootstrap
diff options
context:
space:
mode:
authorRichard Maw <richard.maw@codethink.co.uk>2012-01-18 14:17:30 +0000
committerRichard Maw <richard.maw@codethink.co.uk>2012-01-18 14:17:30 +0000
commitb1022b4807b923de9d2df25583d8e28a70ac981e (patch)
tree6057766ff6255359347d1937d66427b51fc1c2c7 /baserock-bootstrap
parent23a74cc5d9ee42972a57b15b40f91e4797274410 (diff)
parent0a603422096852ec09e1e7b89ecc79c66d3986b1 (diff)
downloadmorph-b1022b4807b923de9d2df25583d8e28a70ac981e.tar.gz
Merge branch 'master' into richardmaw/merge
Diffstat (limited to 'baserock-bootstrap')
-rwxr-xr-xbaserock-bootstrap98
1 files changed, 73 insertions, 25 deletions
diff --git a/baserock-bootstrap b/baserock-bootstrap
index 019101b3..83e35958 100755
--- a/baserock-bootstrap
+++ b/baserock-bootstrap
@@ -12,9 +12,8 @@ sources="$LFS/sources"
tools="$LFS/tools"
SNAPSHOT="${1:-'no'}"
-JOBS=$((echo -n '1.5*'; grep -c '^processor' /proc/cpuinfo) |
- bc -lq |
- sed 's/\..*//')
+CPUS=$(grep -c '^processor' /proc/cpuinfo)
+JOBS=$(expr 2 '*' $CPUS)
export LC_ALL=C
export LFS_TGT=$(uname -m)-lfs-linux-gnu
@@ -157,31 +156,30 @@ pass1_linux_api_headers()
}
-pass1_eglibc()
+pass1_glibc()
{
- echo "Building eglibc"
+ echo "Building glibc"
if [ ! -e "$tools/lib/libc.so.6" ]
then
- unpack eglibc_2.13
- cd "$sources/eglibc-2.13"
- (cd libc && ln -s ../ports ports)
+ unpack glibc-2.14.1
+ cd "$sources/glibc-2.14.1"
+ patch -Np1 -i ../glibc-2.14.1-gcc_fix-1.patch
+ patch -Np1 -i ../glibc-2.14.1-cpuid-1.patch
- $HOST_MKDIR "$sources/eglibc-build"
- cd "$sources/eglibc-build"
- echo "CFLAGS += -O2 -U_FORTIFY_SOURCE -fno-stack-protector" > configparms
+ $HOST_MKDIR "$sources/glibc-build"
+ cd "$sources/glibc-build"
case `uname -m` in
- i?86) echo "CFLAGS += -march=i486 -mtune=native" >> configparms ;;
+ i?86) echo "CFLAGS += -march=i486 -mtune=native" > configparms ;;
esac
- ../eglibc-2.13/libc/configure --prefix="$tools" \
- --host=$LFS_TGT --build=$(../eglibc-2.13/scripts/config.guess) \
+ ../glibc-2.14.1/configure --prefix="$tools" \
+ --host=$LFS_TGT --build=$(../glibc-2.14.1/scripts/config.guess) \
--disable-profile --enable-add-ons \
--enable-kernel=2.6.25 --with-headers="$tools/include" \
--without-selinux --without-cvs \
libc_cv_forced_unwind=yes libc_cv_c_cleanup=yes libc_cv_ssp=no
-
make -j$JOBS
make install vardbdir="$tools/var/db"
- rm -rf "$sources/eglibc-2.13"
+ rm -rf "$sources/glibc-2.14.1"
fi
}
@@ -674,14 +672,14 @@ pass1_cliapp()
echo "Building cliapp"
if [ ! -e "$tools/lib/python2.7/site-packages/cliapp" ]
then
- cp "$sources/python-cliapp_0.22.orig.tar.gz" \
- "$sources/cliapp-0.22.tar.gz"
- unpack cliapp-0.22
- cd "$sources/cliapp-0.22"
+ cp "$sources/python-cliapp_0.23.orig.tar.gz" \
+ "$sources/cliapp-0.23.tar.gz"
+ unpack cliapp-0.23
+ cd "$sources/cliapp-0.23"
$HOST_SED -i '/^import cliapp/d' setup.py
- $HOST_SED -i 's/cliapp.__version__/"0.22"/g' setup.py
+ $HOST_SED -i 's/cliapp.__version__/"0.23"/g' setup.py
python setup.py install --prefix="$tools"
- rm -rf "$sources/cliapp-0.22"
+ rm -rf "$sources/cliapp-0.23"
fi
}
@@ -780,10 +778,13 @@ pass2_build_with_morph_in_chroot()
#!/tools/bin/bash
set -e
set -x
+
/tools/bin/ldconfig -f /etc/ld.so.conf -C /etc/ld.so.cache
cd /baserock/gits/morph
mkdir -p /baserock/cache
python ./morph --verbose build \
+ file:///baserock/gits/morphs/ master linux-stratum.morph \
+ file:///baserock/gits/morphs/ master foundation.morph \
file:///baserock/gits/morphs/ master devel.morph \
--bootstrap \
--cachedir=/baserock/cache \
@@ -818,18 +819,65 @@ EOF
}
+pass2_build_devel_system_outside_chroot()
+{
+ cd "$LFS/.."
+ img="devsys.img"
+
+ $HOST_SUDO qemu-img create -f raw "$img" 1G
+ $HOST_SUDO parted -s "$img" mklabel msdos
+ $HOST_SUDO parted -s "$img" mkpart primary 0% 100%
+ $HOST_SUDO parted -s "$img" set 1 boot on
+ $HOST_SUDO install-mbr "$img"
+ part=/dev/mapper/$($HOST_SUDO kpartx -av "$img" | awk '/^add map/ { print $3 }' | head -n1)
+ trap "$HOST_SUDO kpartx -dv $img" EXIT
+ $HOST_SUDO mkfs -t ext4 "$part"
+ mp="$(mktemp -d)"
+ $HOST_SUDO mount "$part" "$mp"
+
+ for stratum in "$LFS"/baserock/cache/*.stratum.{foundation,linux-stratum,devel}
+ do
+ $HOST_SUDO tar -C "$mp" -xf "$stratum"
+ done
+
+ cat <<EOF | $HOST_SUDO tee "$mp/etc/fstab"
+proc /proc proc defaults 0 0
+sysfs /sys sysfs defaults 0 0
+/dev/sda1 / ext4 errors=remount-ro 0 1
+EOF
+
+ cat <<EOF | $HOST_SUDO tee "$mp/extlinux.conf"
+default linux
+timeout 1
+
+label linux
+kernel /vmlinuz
+append root=/dev/sda1 init=/sbin/init quiet rw
+EOF
+
+ $HOST_SUDO extlinux --install "$mp"
+ sync
+ sleep 2
+
+ $HOST_SUDO umount "$mp"
+}
+
+
echo "Bootstrapping Baserock development environment"
echo "LFS_TGT=$LFS_TGT"
pass1_directories
-$HOST_CP -alu "$allsources/." "$LFS/sources/." || true
+if [ -e "$allsources" ]
+then
+ $HOST_CP -au "$allsources/." "$LFS/sources/."
+fi
download_all
pass1_binutils_1
pass1_gcc_1
pass1_linux_api_headers
-pass1_eglibc
+pass1_glibc
pass1_adjust_gcc_specs
pass1_sanity_check
pass1_binutils_2
@@ -873,4 +921,4 @@ fi
pass2_get_sources
pass2_prepare_for_chroot
pass2_build_with_morph_in_chroot
-
+pass2_build_devel_system_outside_chroot