
On Wed, 3 Mar 2021 19:37:09 -0500 Tom Rini trini@konsulko.com wrote:
On Wed, Mar 03, 2021 at 05:12:04AM +0100, Marek BehĂșn wrote:
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.behun@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")))
I see failure to run test suites: https://source.denx.de/u-boot/u-boot/-/jobs/232926 and adding <linux/compiler.h> to binman_sym.h leads to the same problem.
I have this fixed in CI already. There is new version of these patches there.