Fix missing apps section issue on clang

Clang linker would remove apps section even though variable
insied it are marked as "used". Per clang doc, we need to add
"retain" attribute to prevent section gc.

Bug: 294283461
Test: th
Change-Id: I5fc0aee885a419f314de811a2cf92b77af230c0c
This commit is contained in:
Kelvin Zhang
2024-06-04 12:45:00 -07:00
committed by Kelvin Zhang
parent c572b70083
commit 4e9edd234f

View File

@@ -20,7 +20,10 @@
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#define __UNUSED __attribute__((__unused__))
#define __USED __attribute__((__used__))
// Per https://clang.llvm.org/docs/AttributeReference.html#used
// __used__ does not prevent linkers from removing unused sections
// (if --gc-sections is passed). Need to specify "retain" as well.
#define __USED __attribute__((__used__, retain))
#define __PACKED __attribute__((packed))
#define __ALIGNED(x) __attribute__((aligned(x)))
#define __PRINTFLIKE(__fmt,__varargs) __attribute__((__format__ (__printf__, __fmt, __varargs)))