[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