diff --git a/conts/libc/include/stdarg.h b/conts/libc/include/stdarg.h index d53f0e2..7be50c6 100644 --- a/conts/libc/include/stdarg.h +++ b/conts/libc/include/stdarg.h @@ -91,6 +91,11 @@ typedef __builtin_va_list va_list; #define va_arg(ap, type) __builtin_va_arg((ap), type) #define va_copy(dest, src) __builtin_va_copy((ap), type) #define va_end(ap) __builtin_va_end((ap)) -#define va_start(ap, parmN) __builtin_stdarg_start((ap), (parmN)) + +#if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) +#define va_start(v,l)__builtin_va_start((v),l) +#else +#define va_start(v,l)__builtin_stdarg_start((v),l) +#endif #endif /* _STDARG_H_ */ diff --git a/conts/posix/mm0/mm/bootdesc.c b/conts/posix/mm0/mm/bootdesc.c index 41c6451..472f3c9 100644 --- a/conts/posix/mm0/mm/bootdesc.c +++ b/conts/posix/mm0/mm/bootdesc.c @@ -23,7 +23,7 @@ struct svc_image *bootdesc_get_image_byname(char *name) void read_boot_params() { - int npages; + int npages = 0; struct bootdesc *bootdesc; /* diff --git a/loader/libs/c/include/stdarg.h b/loader/libs/c/include/stdarg.h index d53f0e2..7be50c6 100644 --- a/loader/libs/c/include/stdarg.h +++ b/loader/libs/c/include/stdarg.h @@ -91,6 +91,11 @@ typedef __builtin_va_list va_list; #define va_arg(ap, type) __builtin_va_arg((ap), type) #define va_copy(dest, src) __builtin_va_copy((ap), type) #define va_end(ap) __builtin_va_end((ap)) -#define va_start(ap, parmN) __builtin_stdarg_start((ap), (parmN)) + +#if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) +#define va_start(v,l)__builtin_va_start((v),l) +#else +#define va_start(v,l)__builtin_stdarg_start((v),l) +#endif #endif /* _STDARG_H_ */ diff --git a/src/glue/arm/init.c b/src/glue/arm/init.c index 1fce6af..adc443c 100644 --- a/src/glue/arm/init.c +++ b/src/glue/arm/init.c @@ -250,7 +250,7 @@ void setup_dummy_current() void init_finalize(struct kernel_resources *kres) { - volatile register unsigned int stack asm("sp"); + volatile register unsigned int stack; volatile register unsigned int newstack; struct ktcb *first_task; struct container *c; @@ -269,6 +269,7 @@ void init_finalize(struct kernel_resources *kres) /* Switch to new stack */ stack = newstack; + asm("mov sp, %0\n\t"::"r"(stack)); /* -- Point of no stack unwinding -- */