diff options
Diffstat (limited to 'scripts/gen_ll_addressable_symbols.sh')
-rwxr-xr-x | scripts/gen_ll_addressable_symbols.sh | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/scripts/gen_ll_addressable_symbols.sh b/scripts/gen_ll_addressable_symbols.sh new file mode 100755 index 00000000000..fc5ee0e9c0b --- /dev/null +++ b/scripts/gen_ll_addressable_symbols.sh @@ -0,0 +1,16 @@ +#!/bin/bash +# SPDX-License-Identifier: GPL-2.0+ +# Copyright (C) 2020 Marek BehĂșn <kabel@kernel.org> + +# Generate __ADDRESSABLE(symbol) for every linker list entry symbol, so that LTO +# does not optimize these symbols away + +# The expected parameter of this script is the command requested to have +# the U-Boot symbols to parse, for example: $(NM) $(u-boot-main) + +set -e + +echo '#include <linux/compiler.h>' +$@ 2>/dev/null | grep -oe '_u_boot_list_2_[a-zA-Z0-9_]*_2_[a-zA-Z0-9_]*' \ + -e '__stack_chk_guard' | sort -u | \ + sed -e 's/^\(.*\)/extern char \1[];\n__ADDRESSABLE(\1);/' |