Uber easy arch swap

This commit is contained in:
Ciro Santilli
2017-06-28 22:27:50 +01:00
parent e480b0fc64
commit 335b4be114
4 changed files with 14 additions and 9 deletions

View File

@@ -225,11 +225,6 @@ And then tell GDB where the module was loaded with:
The portability of the kernel and toolchains is amazing.
If you already have an x86 build present, first:
cd buildroot
mv output output.x86~
First ARM build:
./run -a arm

6
run
View File

@@ -1,6 +1,5 @@
#!/usr/bin/env bash
set -e
cd buildroot
arch='x86_64'
while getopts a: OPT > /dev/null 2>&1; do
case "$OPT" in
@@ -19,6 +18,9 @@ case "$arch" in
defconfig=qemu_arm_versatile_defconfig
;;
esac
./setoutarch "$arch"
cd buildroot
for p in $(find '../buildroot_patches/' -maxdepth 1 -name '*.patch' -print); do
patch -N -r - -p 1 <"$p" || :
done
@@ -26,7 +28,6 @@ make BR2_EXTERNAL="$(pwd)/../kernel_module" "$defconfig"
# TODO Can't get rid of this for now.
# http://stackoverflow.com/questions/44078245/is-it-possible-to-use-config-fragments-with-buildroots-config
cat ../buildroot_config_fragment >> .config
# HOST_QEMU_OPTS is a hack that happens to work because the QEMU package luckly uses += at all times.
# It shouldn't be necessary in the first place: https://bugs.busybox.net/show_bug.cgi?id=9936
# Even if were an autotools package, there is no general way currently to pass extra configs to it:
@@ -43,6 +44,5 @@ env \
kernel_module-rebuild \
all \
;
cd ..
./runqemu "$@"

View File

@@ -43,6 +43,7 @@ done
shift "$(($OPTIND - 1))"
extra_flags="$extra_flags $@"
./setoutarch "$arch"
buildroot_out_dir='./buildroot/output'
images_dir="$buildroot_out_dir/images"
qemu_common="\
@@ -83,7 +84,6 @@ case "$arch" in
"
;;
esac
echo "$cmd"
if "$debug" && ! "$nographic" && [ ! "$arch" = 'arm' ]; then
eval "$cmd" &>/dev/null &
# TODO: Ctrl +C gets sent to QEMU? Why? Does not happen if I run

10
setoutarch Executable file
View File

@@ -0,0 +1,10 @@
#!/usr/bin/env bash
# Maintain different buildroot/output archs with symlinks.
if [ "$#" -ne 1 ]; then
exit 1
fi
arch="$1"
dst="output.${arch}~"
src='buildroot/output'
mkdir -p "buildroot/$dst"
ln -fns "$dst" "$src"