@@ -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 -march=pentium
ASFLAGS=-m32
LD=ld
@@ -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)
{
@@ -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
@@ -29,6 +29,7 @@ run_qemu() {
printf %b "\n\n=== Running test case: $kernel $* ===\n\n" >> test.log
$QEMU \
+ -cpu pentium \
-kernel $kernel \
-display none \
-device isa-debugcon,chardev=stdio \
* clang 3.8 enables SSE even for 32bit code. Generate code for pentium CPU to make sure no new instructions are used. * add memset() implementation. Clang implements array zeroing in print_num() via memset() function call. Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com> --- tests/multiboot/Makefile | 2 +- tests/multiboot/libc.c | 9 +++++++++ tests/multiboot/libc.h | 2 ++ tests/multiboot/run_test.sh | 1 + 4 files changed, 13 insertions(+), 1 deletion(-)