#!/bin/sh

__BITBAKE_LAST_LINE=0

# Emit a useful diagnostic if something fails:
bb_sh_exit_handler() {
    ret=$?
    if [ "$ret" != 0 ]; then
        echo "WARNING: exit code $ret from a shell command."
    fi
    exit $ret
}

bb_bash_exit_handler() {
    ret=$?
    { set +x; } > /dev/null
    trap "" DEBUG
    if [ "$ret" != 0 ]; then
        echo "WARNING: ${BASH_SOURCE[0]}:${__BITBAKE_LAST_LINE} exit $ret from '$1'"

        echo "WARNING: Backtrace (BB generated script): "
        for i in $(seq 1 $((${#FUNCNAME[@]} - 1))); do
            if [ "$i" -eq 1 ]; then
                echo -e "	#$((i)): ${FUNCNAME[$i]}, ${BASH_SOURCE[$((i-1))]}, line ${__BITBAKE_LAST_LINE}"
            else
                echo -e "	#$((i)): ${FUNCNAME[$i]}, ${BASH_SOURCE[$((i-1))]}, line ${BASH_LINENO[$((i-1))]}"
            fi
        done
    fi
    exit $ret
}

bb_bash_debug_handler() {
    local line=${BASH_LINENO[0]}
    # For some reason the DEBUG trap trips with lineno=1 when scripts exit; ignore it
    if [ "$line" -eq 1 ]; then
        return
    fi

    # Track the line number of commands as they execute. This is so we can have access to the failing line number
    # in the EXIT trap. See http://gnu-bash.2382.n7.nabble.com/trap-echo-quot-trap-exit-on-LINENO-quot-EXIT-gt-wrong-linenumber-td3666.html
    if [ "${FUNCNAME[1]}" != "bb_bash_exit_handler" ]; then
        __BITBAKE_LAST_LINE=$line
    fi
}

case $BASH_VERSION in
"") trap 'bb_sh_exit_handler' 0
    set -e
    ;;
*)  trap 'bb_bash_exit_handler "$BASH_COMMAND"' 0
    trap '{ bb_bash_debug_handler; } 2>/dev/null' DEBUG
    set -e
    shopt -s extdebug
    ;;
esac
export AR="aarch64-poky-linux-gcc-ar"
export ARCH="arm64"
export AS="aarch64-poky-linux-as "
export BUILD_AR="ar"
export BUILD_AS="as "
export BUILD_CC="gcc "
export BUILD_CCLD="gcc "
export BUILD_CFLAGS="-isystem/home/sim/yocto/scarthgap/build/tmp/work/raspberrypi4_64-poky-linux/linux-raspberrypi/6.6.63+git/recipe-sysroot-native/usr/include -O2 -pipe"
export BUILD_CPP="gcc  -E"
export BUILD_CPPFLAGS="-isystem/home/sim/yocto/scarthgap/build/tmp/work/raspberrypi4_64-poky-linux/linux-raspberrypi/6.6.63+git/recipe-sysroot-native/usr/include"
export BUILD_CXX="g++ "
export BUILD_CXXFLAGS="-isystem/home/sim/yocto/scarthgap/build/tmp/work/raspberrypi4_64-poky-linux/linux-raspberrypi/6.6.63+git/recipe-sysroot-native/usr/include -O2 -pipe"
export BUILD_FC="gfortran "
export BUILD_LD="ld "
export BUILD_LDFLAGS="-L/home/sim/yocto/scarthgap/build/tmp/work/raspberrypi4_64-poky-linux/linux-raspberrypi/6.6.63+git/recipe-sysroot-native/usr/lib                         -L/home/sim/yocto/scarthgap/build/tmp/work/raspberrypi4_64-poky-linux/linux-raspberrypi/6.6.63+git/recipe-sysroot-native/lib                         -Wl,--enable-new-dtags                         -Wl,-rpath-link,/home/sim/yocto/scarthgap/build/tmp/work/raspberrypi4_64-poky-linux/linux-raspberrypi/6.6.63+git/recipe-sysroot-native/usr/lib                         -Wl,-rpath-link,/home/sim/yocto/scarthgap/build/tmp/work/raspberrypi4_64-poky-linux/linux-raspberrypi/6.6.63+git/recipe-sysroot-native/lib                         -Wl,-rpath,/home/sim/yocto/scarthgap/build/tmp/work/raspberrypi4_64-poky-linux/linux-raspberrypi/6.6.63+git/recipe-sysroot-native/usr/lib                         -Wl,-rpath,/home/sim/yocto/scarthgap/build/tmp/work/raspberrypi4_64-poky-linux/linux-raspberrypi/6.6.63+git/recipe-sysroot-native/lib                         -Wl,-O1 -Wl,--allow-shlib-undefined -Wl,--dynamic-linker=/home/sim/yocto/scarthgap/build/tmp/sysroots-uninative/x86_64-linux/lib/ld-linux-x86-64.so.2 -pthread"
export BUILD_NM="nm"
export BUILD_RANLIB="ranlib -D"
export BUILD_STRIP="strip"
export CC="aarch64-poky-linux-gcc  -mcpu=cortex-a72+crc -mbranch-protection=standard -fstack-protector-strong  -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/home/sim/yocto/scarthgap/build/tmp/work/raspberrypi4_64-poky-linux/linux-raspberrypi/6.6.63+git/recipe-sysroot"
export CCLD="aarch64-poky-linux-gcc  -mcpu=cortex-a72+crc -mbranch-protection=standard -fstack-protector-strong  -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/home/sim/yocto/scarthgap/build/tmp/work/raspberrypi4_64-poky-linux/linux-raspberrypi/6.6.63+git/recipe-sysroot"
export CFLAGS=" -O2 -pipe -g -feliminate-unused-debug-types -fcanon-prefix-map  -fmacro-prefix-map=/home/sim/yocto/scarthgap/build/tmp/work-shared/raspberrypi4-64/kernel-source=/usr/src/debug/linux-raspberrypi/6.6.63+git  -fdebug-prefix-map=/home/sim/yocto/scarthgap/build/tmp/work-shared/raspberrypi4-64/kernel-source=/usr/src/debug/linux-raspberrypi/6.6.63+git  -fmacro-prefix-map=/home/sim/yocto/scarthgap/build/tmp/work/raspberrypi4_64-poky-linux/linux-raspberrypi/6.6.63+git/linux-raspberrypi4_64-standard-build=/usr/src/debug/linux-raspberrypi/6.6.63+git  -fdebug-prefix-map=/home/sim/yocto/scarthgap/build/tmp/work/raspberrypi4_64-poky-linux/linux-raspberrypi/6.6.63+git/linux-raspberrypi4_64-standard-build=/usr/src/debug/linux-raspberrypi/6.6.63+git  -fdebug-prefix-map=/home/sim/yocto/scarthgap/build/tmp/work/raspberrypi4_64-poky-linux/linux-raspberrypi/6.6.63+git/recipe-sysroot=  -fmacro-prefix-map=/home/sim/yocto/scarthgap/build/tmp/work/raspberrypi4_64-poky-linux/linux-raspberrypi/6.6.63+git/recipe-sysroot=  -fdebug-prefix-map=/home/sim/yocto/scarthgap/build/tmp/work/raspberrypi4_64-poky-linux/linux-raspberrypi/6.6.63+git/recipe-sysroot-native= "
export CMDLINE_CONSOLE="console=ttyS0"
export CPP="aarch64-poky-linux-gcc -E --sysroot=/home/sim/yocto/scarthgap/build/tmp/work/raspberrypi4_64-poky-linux/linux-raspberrypi/6.6.63+git/recipe-sysroot  -mcpu=cortex-a72+crc -mbranch-protection=standard -fstack-protector-strong  -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security"
export CPPFLAGS=""
export CROSS_COMPILE="aarch64-poky-linux-"
export CXX="aarch64-poky-linux-g++  -mcpu=cortex-a72+crc -mbranch-protection=standard -fstack-protector-strong  -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/home/sim/yocto/scarthgap/build/tmp/work/raspberrypi4_64-poky-linux/linux-raspberrypi/6.6.63+git/recipe-sysroot"
export CXXFLAGS=" -O2 -pipe -g -feliminate-unused-debug-types -fcanon-prefix-map  -fmacro-prefix-map=/home/sim/yocto/scarthgap/build/tmp/work-shared/raspberrypi4-64/kernel-source=/usr/src/debug/linux-raspberrypi/6.6.63+git  -fdebug-prefix-map=/home/sim/yocto/scarthgap/build/tmp/work-shared/raspberrypi4-64/kernel-source=/usr/src/debug/linux-raspberrypi/6.6.63+git  -fmacro-prefix-map=/home/sim/yocto/scarthgap/build/tmp/work/raspberrypi4_64-poky-linux/linux-raspberrypi/6.6.63+git/linux-raspberrypi4_64-standard-build=/usr/src/debug/linux-raspberrypi/6.6.63+git  -fdebug-prefix-map=/home/sim/yocto/scarthgap/build/tmp/work/raspberrypi4_64-poky-linux/linux-raspberrypi/6.6.63+git/linux-raspberrypi4_64-standard-build=/usr/src/debug/linux-raspberrypi/6.6.63+git  -fdebug-prefix-map=/home/sim/yocto/scarthgap/build/tmp/work/raspberrypi4_64-poky-linux/linux-raspberrypi/6.6.63+git/recipe-sysroot=  -fmacro-prefix-map=/home/sim/yocto/scarthgap/build/tmp/work/raspberrypi4_64-poky-linux/linux-raspberrypi/6.6.63+git/recipe-sysroot=  -fdebug-prefix-map=/home/sim/yocto/scarthgap/build/tmp/work/raspberrypi4_64-poky-linux/linux-raspberrypi/6.6.63+git/recipe-sysroot-native=  -fvisibility-inlines-hidden"
export FC="aarch64-poky-linux-gfortran  -mcpu=cortex-a72+crc -mbranch-protection=standard -fstack-protector-strong  -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/home/sim/yocto/scarthgap/build/tmp/work/raspberrypi4_64-poky-linux/linux-raspberrypi/6.6.63+git/recipe-sysroot"
export GIT_CEILING_DIRECTORIES="/home/sim/yocto/scarthgap/build/tmp/work/raspberrypi4_64-poky-linux/linux-raspberrypi/6.6.63+git:/home/sim/yocto/scarthgap/build/tmp"
export HOME="/home/sim"
export KBUILD_BUILD_HOST="oe-host"
export KBUILD_BUILD_USER="oe-user"
export KBUILD_BUILD_VERSION="1"
export LC_ALL="en_US.UTF-8"
export LD="aarch64-poky-linux-ld --sysroot=/home/sim/yocto/scarthgap/build/tmp/work/raspberrypi4_64-poky-linux/linux-raspberrypi/6.6.63+git/recipe-sysroot "
export LDFLAGS="-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -fcanon-prefix-map  -fmacro-prefix-map=/home/sim/yocto/scarthgap/build/tmp/work-shared/raspberrypi4-64/kernel-source=/usr/src/debug/linux-raspberrypi/6.6.63+git  -fdebug-prefix-map=/home/sim/yocto/scarthgap/build/tmp/work-shared/raspberrypi4-64/kernel-source=/usr/src/debug/linux-raspberrypi/6.6.63+git  -fmacro-prefix-map=/home/sim/yocto/scarthgap/build/tmp/work/raspberrypi4_64-poky-linux/linux-raspberrypi/6.6.63+git/linux-raspberrypi4_64-standard-build=/usr/src/debug/linux-raspberrypi/6.6.63+git  -fdebug-prefix-map=/home/sim/yocto/scarthgap/build/tmp/work/raspberrypi4_64-poky-linux/linux-raspberrypi/6.6.63+git/linux-raspberrypi4_64-standard-build=/usr/src/debug/linux-raspberrypi/6.6.63+git  -fdebug-prefix-map=/home/sim/yocto/scarthgap/build/tmp/work/raspberrypi4_64-poky-linux/linux-raspberrypi/6.6.63+git/recipe-sysroot=  -fmacro-prefix-map=/home/sim/yocto/scarthgap/build/tmp/work/raspberrypi4_64-poky-linux/linux-raspberrypi/6.6.63+git/recipe-sysroot=  -fdebug-prefix-map=/home/sim/yocto/scarthgap/build/tmp/work/raspberrypi4_64-poky-linux/linux-raspberrypi/6.6.63+git/recipe-sysroot-native=  -Wl,-z,relro,-z,now"
export LOCALVERSION=""
export LOGNAME="sim"
export MAKE="make"
export NM="aarch64-poky-linux-gcc-nm"
export OBJCOPY="aarch64-poky-linux-objcopy"
export OBJDUMP="aarch64-poky-linux-objdump"
export OMP_NUM_THREADS="8"
export OS="linux"
export PATH="/home/sim/yocto/scarthgap/build/tmp/sysroots-uninative/x86_64-linux/usr/bin:/home/sim/yocto/scarthgap/poky/scripts:/home/sim/yocto/scarthgap/build/tmp/work/raspberrypi4_64-poky-linux/linux-raspberrypi/6.6.63+git/recipe-sysroot-native/usr/bin/aarch64-poky-linux:/home/sim/yocto/scarthgap/build/tmp/work/raspberrypi4_64-poky-linux/linux-raspberrypi/6.6.63+git/recipe-sysroot/usr/bin/crossscripts:/home/sim/yocto/scarthgap/build/tmp/work/raspberrypi4_64-poky-linux/linux-raspberrypi/6.6.63+git/recipe-sysroot-native/usr/sbin:/home/sim/yocto/scarthgap/build/tmp/work/raspberrypi4_64-poky-linux/linux-raspberrypi/6.6.63+git/recipe-sysroot-native/usr/bin:/home/sim/yocto/scarthgap/build/tmp/work/raspberrypi4_64-poky-linux/linux-raspberrypi/6.6.63+git/recipe-sysroot-native/sbin:/home/sim/yocto/scarthgap/build/tmp/work/raspberrypi4_64-poky-linux/linux-raspberrypi/6.6.63+git/recipe-sysroot-native/bin:/home/sim/yocto/scarthgap/poky/bitbake/bin:/home/sim/yocto/scarthgap/build/tmp/hosttools"
export PERL_HASH_SEED="0"
export PKG_CONFIG_DIR="/home/sim/yocto/scarthgap/build/tmp/work/raspberrypi4_64-poky-linux/linux-raspberrypi/6.6.63+git/recipe-sysroot/usr/lib/pkgconfig"
export PKG_CONFIG_DISABLE_UNINSTALLED="yes"
export PKG_CONFIG_LIBDIR="/home/sim/yocto/scarthgap/build/tmp/work/raspberrypi4_64-poky-linux/linux-raspberrypi/6.6.63+git/recipe-sysroot/usr/lib/pkgconfig"
export PKG_CONFIG_PATH="/home/sim/yocto/scarthgap/build/tmp/work/raspberrypi4_64-poky-linux/linux-raspberrypi/6.6.63+git/recipe-sysroot/usr/lib/pkgconfig:/home/sim/yocto/scarthgap/build/tmp/work/raspberrypi4_64-poky-linux/linux-raspberrypi/6.6.63+git/recipe-sysroot/usr/share/pkgconfig"
export PKG_CONFIG_SYSROOT_DIR="/home/sim/yocto/scarthgap/build/tmp/work/raspberrypi4_64-poky-linux/linux-raspberrypi/6.6.63+git/recipe-sysroot"
export PKG_CONFIG_SYSTEM_INCLUDE_PATH="/usr/include"
export PKG_CONFIG_SYSTEM_LIBRARY_PATH="/usr/lib:/usr/lib"
export PSEUDO_DISABLED="1"
export PSEUDO_UNLOAD="1"
export PYTHONHASHSEED="0"
export RANLIB="aarch64-poky-linux-gcc-ranlib"
export READELF="aarch64-poky-linux-readelf"
unset SHELL
export SOURCE_DATE_EPOCH="1733479805"
export STRINGS="aarch64-poky-linux-strings"
export STRIP="aarch64-poky-linux-strip"
export TZ="UTC"
export UBOOT_ARCH="arm64"
export USER="sim"
export base_bindir="/usr/bin"
export base_libdir="/usr/lib"
export base_prefix=""
export base_sbindir="/usr/sbin"
export bindir="/usr/bin"
export datadir="/usr/share"
export docdir="/usr/share/doc"
export exec_prefix="/usr"
export includedir="/usr/include"
export infodir="/usr/share/info"
export libdir="/usr/lib"
export libexecdir="/usr/libexec"
export localstatedir="/var"
export mandir="/usr/share/man"
export nonarch_base_libdir="/usr/lib"
export nonarch_libdir="/usr/lib"
export prefix="/usr"
export sbindir="/usr/sbin"
export servicedir="/srv"
export sharedstatedir="/com"
export sysconfdir="/etc"
export systemd_system_unitdir="/usr/lib/systemd/system"
export systemd_unitdir="/usr/lib/systemd"
export systemd_user_unitdir="/usr/lib/systemd/user"

# line: 667, file: /home/sim/yocto/scarthgap/poky/meta/classes-recipe/kernel-yocto.bbclass
do_validate_branches() {
	set +e
	cd /home/sim/yocto/scarthgap/build/tmp/work-shared/raspberrypi4-64/kernel-source

	machine_branch="rpi-6.6.y"
	machine_srcrev="e442e5c1ab6bff5b5460b4fc949beb72aaf77970"

	# if SRCREV is AUTOREV it shows up as AUTOINC there's nothing to
	# check and we can exit early
	if [ "${machine_srcrev}" = "AUTOINC" ]; then
	    linux_yocto_dev=''
	    if [ -n "$linux_yocto_dev" ]; then
		git checkout -q -f ${machine_branch}
		ver=$(grep "^VERSION =" /home/sim/yocto/scarthgap/build/tmp/work-shared/raspberrypi4-64/kernel-source/Makefile | sed s/.*=\ *//)
		patchlevel=$(grep "^PATCHLEVEL =" /home/sim/yocto/scarthgap/build/tmp/work-shared/raspberrypi4-64/kernel-source/Makefile | sed s/.*=\ *//)
		sublevel=$(grep "^SUBLEVEL =" /home/sim/yocto/scarthgap/build/tmp/work-shared/raspberrypi4-64/kernel-source/Makefile | sed s/.*=\ *//)
		kver="$ver.$patchlevel"
		bbnote "dev kernel: performing version -> branch -> SRCREV validation"
		bbnote "dev kernel: recipe version 6.6.63, src version: $kver"
		echo "6.6.63" | grep -q $kver
		if [ $? -ne 0 ]; then
		    version="$(echo 6.6.63 | sed 's/\+.*$//g')"
		    versioned_branch="v$version/$machine_branch"

		    machine_branch=$versioned_branch
		    force_srcrev="$(git rev-parse $machine_branch 2> /dev/null)"
		    if [ $? -ne 0 ]; then
			bbfatal "kernel version mismatch detected, and no valid branch $machine_branch detected"
		    fi

		    bbnote "dev kernel: adjusting branch to $machine_branch, srcrev to: $force_srcrev"
		fi
	    else
		bbnote "SRCREV validation is not required for AUTOREV"
	    fi
	elif [ "${machine_srcrev}" = "" ]; then
		if [ "INVALID" != "AUTOINC" ] && [ "INVALID" != "INVALID" ]; then
		       # SRCREV_machine_<MACHINE> was not set. This means that a custom recipe
		       # that doesn't use the SRCREV_FORMAT "machine_meta" is being built. In
		       # this case, we need to reset to the give SRCREV before heading to patching
		       bbnote "custom recipe is being built, forcing SRCREV to INVALID"
		       force_srcrev="INVALID"
		fi
	else
		git cat-file -t ${machine_srcrev} > /dev/null
		if [ $? -ne 0 ]; then
			bberror "${machine_srcrev} is not a valid commit ID."
			bbfatal_log "The kernel source tree may be out of sync"
		fi
		force_srcrev=${machine_srcrev}
	fi

	git checkout -q -f ${machine_branch}
	if [ -n "${force_srcrev}" ]; then
		# see if the branch we are about to patch has been properly reset to the defined
		# SRCREV .. if not, we reset it.
		branch_head=`git rev-parse HEAD`
		if [ "${force_srcrev}" != "${branch_head}" ]; then
			current_branch=`git rev-parse --abbrev-ref HEAD`
			git branch "$current_branch-orig"
			git reset --hard ${force_srcrev}
			# We've checked out HEAD, make sure we cleanup kgit-s2q fence post check
			# so the patches are applied as expected otherwise no patching
			# would be done in some corner cases.
			kgit-s2q --clean
		fi
	fi

	set -e
}

# line: 49, file: /home/sim/yocto/scarthgap/poky/meta/classes-global/logging.bbclass
bberror() {
	if [ -p /home/sim/yocto/scarthgap/build/tmp/work/raspberrypi4_64-poky-linux/linux-raspberrypi/6.6.63+git/temp/fifo.959082 ] ; then
		printf "%b\0" "bberror $*" > /home/sim/yocto/scarthgap/build/tmp/work/raspberrypi4_64-poky-linux/linux-raspberrypi/6.6.63+git/temp/fifo.959082
	else
		echo "ERROR: $*"
	fi
}

# line: 60, file: /home/sim/yocto/scarthgap/poky/meta/classes-global/logging.bbclass
bbfatal() {
	if [ -p /home/sim/yocto/scarthgap/build/tmp/work/raspberrypi4_64-poky-linux/linux-raspberrypi/6.6.63+git/temp/fifo.959082 ] ; then
		printf "%b\0" "bbfatal $*" > /home/sim/yocto/scarthgap/build/tmp/work/raspberrypi4_64-poky-linux/linux-raspberrypi/6.6.63+git/temp/fifo.959082
	else
		echo "ERROR: $*"
	fi
	exit 1
}

# line: 72, file: /home/sim/yocto/scarthgap/poky/meta/classes-global/logging.bbclass
bbfatal_log() {
	if [ -p /home/sim/yocto/scarthgap/build/tmp/work/raspberrypi4_64-poky-linux/linux-raspberrypi/6.6.63+git/temp/fifo.959082 ] ; then
		printf "%b\0" "bbfatal_log $*" > /home/sim/yocto/scarthgap/build/tmp/work/raspberrypi4_64-poky-linux/linux-raspberrypi/6.6.63+git/temp/fifo.959082
	else
		echo "ERROR: $*"
	fi
	exit 1
}

# line: 27, file: /home/sim/yocto/scarthgap/poky/meta/classes-global/logging.bbclass
bbnote() {
	if [ -p /home/sim/yocto/scarthgap/build/tmp/work/raspberrypi4_64-poky-linux/linux-raspberrypi/6.6.63+git/temp/fifo.959082 ] ; then
		printf "%b\0" "bbnote $*" > /home/sim/yocto/scarthgap/build/tmp/work/raspberrypi4_64-poky-linux/linux-raspberrypi/6.6.63+git/temp/fifo.959082
	else
		echo "NOTE: $*"
	fi
}

do_validate_branches

# cleanup
ret=$?
trap '' 0
exit $ret
