[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH] multiboot: make tests work with clang
From: |
Anatol Pomozov |
Subject: |
[Qemu-devel] [PATCH] multiboot: make tests work with clang |
Date: |
Wed, 23 Aug 2017 12:22:44 -0700 |
* explicitly disable SSE as clang enables it by default for 32bit code
* add memset() implementation. Clang complains that the function is
absent, gcc seems provides default built-in.
---
tests/multiboot/Makefile | 2 +-
tests/multiboot/libc.c | 9 +++++++++
tests/multiboot/libc.h | 2 ++
3 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/tests/multiboot/Makefile b/tests/multiboot/Makefile
index 856e76682a..7fadbca33a 100644
--- a/tests/multiboot/Makefile
+++ b/tests/multiboot/Makefile
@@ -1,5 +1,5 @@
CC=gcc
-CCFLAGS=-m32 -Wall -Wextra -Werror -fno-stack-protector -nostdinc -fno-builtin
+CCFLAGS=-m32 -Wall -Wextra -Werror -fno-stack-protector -nostdinc -fno-builtin
-mno-sse
ASFLAGS=-m32
LD=ld
diff --git a/tests/multiboot/libc.c b/tests/multiboot/libc.c
index 6df9bda96d..512fccd7fa 100644
--- a/tests/multiboot/libc.c
+++ b/tests/multiboot/libc.c
@@ -33,6 +33,15 @@ void* memcpy(void *dest, const void *src, int n)
return dest;
}
+void *memset(void *s, int c, size_t n)
+{
+ size_t i;
+ char *d = s;
+ for (i = 0; i < n; i++) {
+ *d++ = c;
+ }
+ return s;
+}
static void print_char(char c)
{
diff --git a/tests/multiboot/libc.h b/tests/multiboot/libc.h
index 04c9922c27..44b71350dd 100644
--- a/tests/multiboot/libc.h
+++ b/tests/multiboot/libc.h
@@ -36,6 +36,7 @@ typedef signed short int16_t;
typedef signed char int8_t;
typedef uint32_t uintptr_t;
+typedef uint32_t size_t;
/* stdarg.h */
@@ -58,5 +59,6 @@ static inline void outb(uint16_t port, uint8_t data)
void printf(const char *fmt, ...);
void* memcpy(void *dest, const void *src, int n);
+void *memset(void *s, int c, size_t n);
#endif
--
2.14.1.342.g6490525c54-goog
- [Qemu-devel] [PATCH] multiboot: make tests work with clang,
Anatol Pomozov <=