Use the `__visible` macro to declare binman symbols externally visible, so that when building with LTO the compiler does not optimize this data away.
Signed-off-by: Marek Behún <marek.be...@nic.cz> --- include/binman.h | 1 + include/binman_sym.h | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/include/binman.h b/include/binman.h index 5958dfb448..e72e85d4b7 100644 --- a/include/binman.h +++ b/include/binman.h @@ -9,6 +9,7 @@ #ifndef _BINMAN_H_ #define _BINMAN_H_ +#include <linux/compiler.h> #include <dm/ofnode.h> /** diff --git a/include/binman_sym.h b/include/binman_sym.h index 72e6765fe5..55421f5893 100644 --- a/include/binman_sym.h +++ b/include/binman_sym.h @@ -33,7 +33,7 @@ * @_prop_name: Property value to get from that entry (e.g. 'pos') */ #define binman_sym_declare(_type, _entry_name, _prop_name) \ - _type binman_symname(_entry_name, _prop_name) \ + _type binman_symname(_entry_name, _prop_name) __visible \ __attribute__((aligned(4), unused, section(".binman_sym"))) /** @@ -58,7 +58,7 @@ * @_prop_name: Property value to get from that entry (e.g. 'pos') */ #define binman_sym_declare_optional(_type, _entry_name, _prop_name) \ - _type binman_symname(_entry_name, _prop_name) \ + _type binman_symname(_entry_name, _prop_name) __visible \ __attribute__((aligned(4), weak, unused, \ section(".binman_sym"))) -- 2.26.2