Add envkernel.sh argument to use gcc6 cross compiler

This commit is contained in:
Robert Yang 2018-10-05 17:03:30 -04:00
parent e27f11a705
commit a2484f2492
1 changed files with 30 additions and 4 deletions

View File

@ -89,12 +89,18 @@ check_device() {
initialize_chroot() {
gcc_pkgname="gcc"
if [ "$gcc6_arg" = "1" ]; then
gcc_pkgname="gcc6"
fi
# Don't initialize twice
flag="$chroot/tmp/envkernel/setup_done"
flag="$chroot/tmp/envkernel/${gcc_pkgname}_setup_done"
[ -e "$flag" ] && return
# Install needed packages
echo "Initializing Alpine chroot (details: 'pmbootstrap log')"
# shellcheck disable=SC2154
$pmbootstrap -q chroot -- apk -q add \
abuild \
@ -103,8 +109,8 @@ initialize_chroot() {
binutils \
bison \
flex \
gcc-"$deviceinfo_arch" \
gcc \
"$gcc_pkgname"-"$deviceinfo_arch" \
"$gcc_pkgname" \
linux-headers \
libressl-dev \
make \
@ -146,11 +152,17 @@ set_alias_make() {
arm*) arch="arm" ;;
esac
if [ "$gcc6_arg" = "1" ]; then
cross_compiler="/usr/bin/gcc6-$prefix-"
else
cross_compiler="/usr/bin/$prefix-"
fi
# Build make command
cmd="echo '*** pmbootstrap envkernel.sh active for $PWD! ***';"
cmd="$cmd pmbootstrap -q chroot --"
cmd="$cmd ARCH=$arch"
cmd="$cmd CROSS_COMPILE=/usr/bin/$prefix-"
cmd="$cmd CROSS_COMPILE=$cross_compiler"
cmd="$cmd make -C /mnt/linux O=/mnt/linux/.output"
# shellcheck disable=SC2139
alias make="$cmd"
@ -165,6 +177,13 @@ set_alias_pmbroot_kernelroot() {
}
cross_compiler_version() {
pmbootstrap chroot --user -- "${cross_compiler}gcc" --version \
2> /dev/null | grep "^.*gcc " | \
awk -F'[()]' '{ print $1 "("$2")" }'
}
print_usage() {
# shellcheck disable=SC2039
if [ -n "${BASH_SOURCE[0]}" ]; then
@ -174,12 +193,14 @@ print_usage() {
fi
echo "optional arguments:"
echo " --fish Print fish alias syntax"
echo " --gcc6 Use GCC6 cross compiler"
echo " --help Show this help message"
}
parse_args() {
unset fish_arg
unset gcc6_arg
while [ "${1:-}" != "" ]; do
case $1 in
@ -187,6 +208,10 @@ parse_args() {
fish_arg="$1"
shift
;;
--gcc6)
gcc6_arg=1
shift
;;
--help)
shift
return 0
@ -224,6 +249,7 @@ main() {
echo " * kernel source: $PWD"
echo " * output folder: $PWD/.output"
echo " * architecture: $arch ($device is $deviceinfo_arch)"
echo " * cross compile: $(cross_compiler_version)"
echo " * aliases: make, kernelroot, pmbootstrap, pmbroot" \
"(see 'type make' etc.)"
else