tools-musl: fix .gitignore and missed files
This commit is contained in:
parent
1b33ae243f
commit
a7dae541f2
12 changed files with 1231 additions and 2 deletions
127
tools-musl/stage4/run.sh
Executable file
127
tools-musl/stage4/run.sh
Executable file
|
@ -0,0 +1,127 @@
|
|||
#!/bin/bash
|
||||
|
||||
TEST_ARCH=$(file -b /usr/lib/libc.so | sed -e 's/^.*shared object, //' -e 's/,.*$//')
|
||||
|
||||
if [[ "${TEST_ARCH}" == "Intel 80386" ]]; then
|
||||
MY_ARCH="i686"
|
||||
MY_CHOST="i686-gentoo-linux-musl"
|
||||
MY_CFLAGS=""
|
||||
MY_PROF="x86"
|
||||
MY_PATH="i386"
|
||||
elif [[ "${TEST_ARCH}" == "x86-64" ]]; then
|
||||
MY_ARCH="amd64"
|
||||
MY_CHOST="x86_64-gentoo-linux-musl"
|
||||
MY_CFLAGS=""
|
||||
MY_PROF="amd64"
|
||||
MY_PATH="x86_64"
|
||||
elif [[ "${TEST_ARCH}" == "ARM" ]]; then
|
||||
# Need better logic for alternative subarches and hard/softfloat
|
||||
MY_ARCH="armv7a_hardfp"
|
||||
MY_CHOST="armv7a-hardfloat-linux-musleabi"
|
||||
MY_CFLAGS=" -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard"
|
||||
MY_PROF="arm/armv7a"
|
||||
MY_PATH="armhf"
|
||||
elif [[ "${TEST_ARCH}" == "MIPS" ]]; then
|
||||
MY_ARCH="MIPS"
|
||||
MY_CHOST="mipsel-gentoo-linux-musl"
|
||||
MY_CFLAGS=""
|
||||
MY_PROF="mips/mipsel"
|
||||
MY_PATH="mipsel"
|
||||
else
|
||||
echo "Unsupported arch $TEST_ARCH"
|
||||
exit
|
||||
fi
|
||||
|
||||
ROOTFS="stage4-${MY_ARCH}-musl-vanilla"
|
||||
PWD="$(pwd)"
|
||||
|
||||
prepare_etc () {
|
||||
mkdir -p "${ROOTFS}"/etc
|
||||
if [[ "${MY_ARCH}" == "MIPS" ]]; then
|
||||
cp -a "${PWD}"/portage.mips/ "${ROOTFS}"/etc/portage
|
||||
else
|
||||
cp -a "${PWD}"/portage/ "${ROOTFS}"/etc/
|
||||
fi
|
||||
sed -i "s/MY_CHOST/${MY_CHOST}/" "${ROOTFS}"/etc/portage/make.conf
|
||||
sed -i "s/MY_CFLAGS/${MY_CFLAGS}/" "${ROOTFS}"/etc/portage/make.conf
|
||||
ln -sf ../../usr/portage/profiles/hardened/linux/musl/"${MY_PROF}" "${ROOTFS}"/etc/portage/make.profile
|
||||
}
|
||||
|
||||
prepare_usr_etc() {
|
||||
mkdir -p "${ROOTFS}"/usr/etc
|
||||
|
||||
cat <<-EOF > "${ROOTFS}"/usr/etc/ld-musl-${MY_PATH}.path
|
||||
/lib
|
||||
/usr/lib
|
||||
/usr/lib/gcc/${MY_CHOST}/4.7.3
|
||||
/usr/${MY_CHOST}/lib
|
||||
EOF
|
||||
|
||||
# mips-muls needs some tlc upstream
|
||||
if [[ "${MY_ARCH}" == "MIPS" ]]; then
|
||||
ln -sf ld-musl-${MY_PATH}.path "${ROOTFS}"/etc/ld-musl.path
|
||||
else
|
||||
ln -sf ld-musl-${MY_PATH}.path "${ROOTFS}"/usr/etc/ld-musl.path
|
||||
fi
|
||||
}
|
||||
|
||||
prepare_overlay() {
|
||||
# This is intensely ugly, but for now ...
|
||||
mkdir -p "${ROOTFS}"/var/lib/layman/
|
||||
cp -a /var/lib/layman/* "${ROOTFS}"/var/lib/layman/
|
||||
}
|
||||
|
||||
emerge_system() {
|
||||
ROOT="${ROOTFS}" emerge --keep-going --with-bdeps=y -uvq @system
|
||||
FEATURES="-sandbox" ROOT="${ROOTFS}" emerge --keep-going --with-bdeps=y -uvq sandbox
|
||||
}
|
||||
|
||||
mk_top_level_dirs() {
|
||||
mkdir "${ROOTFS}"/{boot,dev,home,media,mnt,opt,proc,root,sys}
|
||||
}
|
||||
|
||||
setup_configs() {
|
||||
sed -i '/^SYNC/d' "${ROOTFS}"/etc/portage/make.conf
|
||||
sed -i '/^GENTOO_MIRRORS/d' "${ROOTFS}"/etc/portage/make.conf
|
||||
sed -i 's/^MAKEOPTS/#MAKEOPTS/' "${ROOTFS}"/etc/portage/make.conf
|
||||
|
||||
# There are some issue with python3, so let's select python2
|
||||
# which so far is option 1 in elesect python.
|
||||
chroot "${ROOTFS}" eselect python set 1
|
||||
}
|
||||
|
||||
bundle_it() {
|
||||
local DATE=$(date +%Y%m%d)
|
||||
local NAME="${ROOTFS}"-"${DATE}".tar.bz2
|
||||
local DIGESTS="${NAME}".DIGESTS
|
||||
|
||||
cd "${ROOTFS}"
|
||||
tar -j -c -f ../"${NAME}" .
|
||||
|
||||
cd ..
|
||||
>"${DIGESTS}"
|
||||
|
||||
echo "# MD5 HASH" >> "${DIGESTS}"
|
||||
md5sum "${NAME}" >> "${DIGESTS}"
|
||||
|
||||
echo "# SHA1 HASH" >> "${DIGESTS}"
|
||||
sha1sum "${NAME}" >> "${DIGESTS}"
|
||||
|
||||
echo "# SHA512 HASH" >> "${DIGESTS}"
|
||||
sha512sum "${NAME}" >> "${DIGESTS}"
|
||||
|
||||
echo "# WHIRLPOOL HASH" >> "${DIGESTS}"
|
||||
whirlpooldeep "${NAME}" >> "${DIGESTS}"
|
||||
}
|
||||
|
||||
main (){
|
||||
prepare_etc
|
||||
prepare_usr_etc
|
||||
prepare_overlay
|
||||
emerge_system
|
||||
mk_top_level_dirs
|
||||
setup_configs
|
||||
bundle_it
|
||||
}
|
||||
|
||||
main > zzz.log 2>&1 &
|
Loading…
Add table
Add a link
Reference in a new issue