[U-Boot] [PATCH] sandbox: Fix building with LLVM
Tom Rini
trini at konsulko.com
Sat Mar 5 20:07:44 CET 2016
- The macro __BIGGEST_ALIGNMENT__ is gcc-specific. If it is not defined
we'll just assume 16. This is correct for at least the common cases
and LLVM does not provide an equivalent macro.
- When linking U-Boot we're passing -T to the linker, and while gcc will
just pass this along with LLVM we need to be specific.
Cc: Simon Glass <sjg at chromium.org>
Signed-off-by: Tom Rini <trini at konsulko.com>
---
I've tested this with both test/fs/fs-test.sh (and a quick kludge to
force it to use LLVM) and test/pytest/test.py with a pre-built sandbox
and both pass as much as with gcc does for me.
---
arch/sandbox/config.mk | 2 +-
arch/sandbox/include/asm/cache.h | 6 ++++++
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/arch/sandbox/config.mk b/arch/sandbox/config.mk
index b05a90f..16fd6d5 100644
--- a/arch/sandbox/config.mk
+++ b/arch/sandbox/config.mk
@@ -16,7 +16,7 @@ PLATFORM_CPPFLAGS += $(shell sdl-config --cflags)
endif
endif
-cmd_u-boot__ = $(CC) -o $@ -T u-boot.lds \
+cmd_u-boot__ = $(CC) -o $@ -Wl,-T u-boot.lds \
-Wl,--start-group $(u-boot-main) -Wl,--end-group \
$(PLATFORM_LIBS) -Wl,-Map -Wl,u-boot.map
diff --git a/arch/sandbox/include/asm/cache.h b/arch/sandbox/include/asm/cache.h
index d28c385..ffbb984 100644
--- a/arch/sandbox/include/asm/cache.h
+++ b/arch/sandbox/include/asm/cache.h
@@ -12,7 +12,13 @@
* the contents of stack buffers to something reasonable. The
* GCC macro __BIGGEST_ALIGNMENT__ is defined to be the maximum
* required alignment for any basic type. This seems reasonable.
+ * This is however GCC specific so if we don't have that available
+ * assume that 16 is large enough.
*/
+#ifdef __BIGGEST_ALIGNMENT__
#define ARCH_DMA_MINALIGN __BIGGEST_ALIGNMENT__
+#else
+#define ARCH_DMA_MINALIGN 16
+#endif
#endif /* __SANDBOX_CACHE_H__ */
--
1.7.9.5
More information about the U-Boot
mailing list