From 57d898f3eb761cc6bde97a4ff01e2d81aed3e771 Mon Sep 17 00:00:00 2001 From: David Lamparter Date: Fri, 21 Jun 2019 14:50:56 +0200 Subject: [PATCH] lib: fix MTYPE alias on clang This is probably a compiler bug :/ Signed-off-by: David Lamparter --- lib/memory.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/memory.h b/lib/memory.h index 28c3bb752f..14cd76f2f5 100644 --- a/lib/memory.h +++ b/lib/memory.h @@ -144,10 +144,11 @@ struct memgroup { __asm__(".equiv MTYPE_" #name ", _mt_" #name "\n\t" \ ".global MTYPE_" #name "\n"); \ /* end */ +/* and this one's borked on clang, it drops static on aliases :/, so... asm */ #define DEFINE_MTYPE_STATIC(group, name, desc) \ DEFINE_MTYPE_ATTR(group, name, static, desc) \ - static struct memtype MTYPE_##name[1] \ - __attribute__((alias("_mt_" #name))); \ + extern struct memtype MTYPE_##name[1]; \ + __asm__(".equiv MTYPE_" #name ", _mt_" #name "\n"); \ /* end */ DECLARE_MGROUP(LIB) -- 2.39.5