#!/bin/bash

# Copyright 2019 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#
# A tool that can be passed in passed in as the strip command to the
# Linux kernel which will create split debug files and stash them away
# where portage expects them.

die() {
	if [[ "$#" -ge 1 ]]; then
		echo "$@" >&2
	fi

	exit 1
}

main() {
	local magic="$1"
	local obj_file_abspath="$2"
	local obj_file_relpath="${obj_file_abspath#${INSTALL_MOD_PATH}}"
	local debug_file_relpath="usr/lib/debug/${obj_file_relpath}.debug"
	local debug_file_abspath="${INSTALL_MOD_PATH}/${debug_file_relpath}"

	# We explicitly tell the kernel to pass us the argument "magic" so
	# that we can predictably know that the object file to strip is in $2.
	# Though right now the kernel's default flags still would have had the
	# object file in $2 (the kernel by default passes in --strip-debug),
	# it seems better not to rely upon that.
	if [[ "${magic}" != "magic" ]]; then
		die "Unexpected call to $0"
	fi

	# If the kernel is calling strip on something that's not in the
	# module directory then we don't do our magic.  Detect this by seeing
	# that we couldn't strip INSTALL_MOD_PATH from the start of the path.
	#
	# NOTE: we don't actually see this in practice since we only
	# specify this script when building modules, but better safe
	# than sorry.
	if [[ "${obj_file_abspath}" == "${obj_file_relpath}" ]]; then
		exec ${REAL_STRIP} --strip-debug "${obj_file_abspath}"
	fi

	# Follow the recipe from the objcopy man page to split the debug.
	mkdir -p "${debug_file_abspath%/*}"
	${OBJCOPY} --only-keep-debug \
		"${obj_file_abspath}" "${debug_file_abspath}" || die
	${REAL_STRIP} --strip-debug "${obj_file_abspath}" || die
	${OBJCOPY} --add-gnu-debuglink=${debug_file_abspath} \
		"${obj_file_abspath}" || die
}

main "$@"
