[RFC PATCH u-boot 05/12] binman: declare symbols externally visible

Marek Behún marek.behun at nic.cz
Wed Mar 3 05:12:04 CET 2021


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 at 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



More information about the U-Boot mailing list