[PATCH] linker_lists.h: drop never used ll_start, ll_end macros

Rasmus Villemoes ravi at prevas.dk
Mon Mar 23 09:39:28 CET 2026


These macros have AFAICT never been used at all. It's also far from
clear what purpose it could serve - for one thing, what _type would
one pass, other than void perhaps? The example using "struct
my_sub_cmd" seems misplaced, as how could one know that the first
linker list consists of those, and moreover, how would one know how
many there are?

The linker list concept is fragile enough on its own, there is no need
to have unused functionality lying around that may or may not bitrot
and certainly will confuse readers of linker_lists.h.

Signed-off-by: Rasmus Villemoes <ravi at prevas.dk>
---
 include/linker_lists.h | 50 ------------------------------------------
 1 file changed, 50 deletions(-)

diff --git a/include/linker_lists.h b/include/linker_lists.h
index 0f4a2d686e2..78ba937c8c3 100644
--- a/include/linker_lists.h
+++ b/include/linker_lists.h
@@ -288,56 +288,6 @@
 #define ll_entry_ref(_type, _name, _list)				\
 	((_type *)&_u_boot_list_2_##_list##_2_##_name)
 
-/**
- * ll_start() - Point to first entry of first linker-generated array
- * @_type:	Data type of the entry
- *
- * This function returns ``(_type *)`` pointer to the very first entry of
- * the very first linker-generated array.
- *
- * Since this macro defines the start of the linker-generated arrays,
- * its leftmost index must be 1.
- *
- * Example:
- *
- * ::
- *
- *   struct my_sub_cmd *msc = ll_start(struct my_sub_cmd);
- */
-#define ll_start(_type)							\
-({									\
-	static char start[0] __aligned(4) __attribute__((unused))	\
-		__section("__u_boot_list_1");				\
-	_type * tmp = (_type *)&start;					\
-	asm("":"+r"(tmp));						\
-	tmp;								\
-})
-
-/**
- * ll_end() - Point after last entry of last linker-generated array
- * @_type:	Data type of the entry
- *
- * This function returns ``(_type *)`` pointer after the very last entry of
- * the very last linker-generated array.
- *
- * Since this macro defines the end of the linker-generated arrays,
- * its leftmost index must be 3.
- *
- * Example:
- *
- * ::
- *
- *   struct my_sub_cmd *msc = ll_end(struct my_sub_cmd);
- */
-#define ll_end(_type)							\
-({									\
-	static char end[0] __aligned(4) __attribute__((unused))		\
-		__section("__u_boot_list_3");				\
-	_type * tmp = (_type *)&end;					\
-	asm("":"+r"(tmp));						\
-	tmp;								\
-})
-
 #endif /* __ASSEMBLY__ */
 
 #endif	/* __LINKER_LISTS_H__ */
-- 
2.53.0



More information about the U-Boot mailing list