diff options
-rw-r--r-- | libc/arch-arm/bionic/crtbegin.c | 3 | ||||
-rwxr-xr-x | libc/arch-x86/bionic/crtbegin.c | 3 | ||||
-rwxr-xr-x | linker/arch/x86/begin.c | 1 |
3 files changed, 5 insertions, 2 deletions
diff --git a/libc/arch-arm/bionic/crtbegin.c b/libc/arch-arm/bionic/crtbegin.c index cc587975d..1bcb335a3 100644 --- a/libc/arch-arm/bionic/crtbegin.c +++ b/libc/arch-arm/bionic/crtbegin.c @@ -28,6 +28,7 @@ #include "../../bionic/libc_init_common.h" #include <stddef.h> +#include <stdint.h> __attribute__ ((section (".preinit_array"))) void (*__PREINIT_ARRAY__)(void) = (void (*)(void)) -1; @@ -44,7 +45,7 @@ __LIBC_HIDDEN__ void _start() { array.init_array = &__INIT_ARRAY__; array.fini_array = &__FINI_ARRAY__; - void* raw_args = __builtin_frame_address(0) + sizeof(void*); + void* raw_args = (void*) ((uintptr_t) __builtin_frame_address(0) + sizeof(void*)); __libc_init(raw_args, NULL, &main, &array); } diff --git a/libc/arch-x86/bionic/crtbegin.c b/libc/arch-x86/bionic/crtbegin.c index 63e58a6d2..43e9306ba 100755 --- a/libc/arch-x86/bionic/crtbegin.c +++ b/libc/arch-x86/bionic/crtbegin.c @@ -28,6 +28,7 @@ #include "../../bionic/libc_init_common.h" #include <stddef.h> +#include <stdint.h> __attribute__ ((section (".preinit_array"))) void (*__PREINIT_ARRAY__)(void) = (void (*)(void)) -1; @@ -46,7 +47,7 @@ void _start() { array.init_array = &__INIT_ARRAY__; array.fini_array = &__FINI_ARRAY__; - void* raw_args = __builtin_frame_address(0) + sizeof(void*); + void* raw_args = (void*) ((uintptr_t) __builtin_frame_address(0) + sizeof(void*)); __libc_init(raw_args, NULL, &main, &array); } diff --git a/linker/arch/x86/begin.c b/linker/arch/x86/begin.c index cdc98e065..051a16af0 100755 --- a/linker/arch/x86/begin.c +++ b/linker/arch/x86/begin.c @@ -26,6 +26,7 @@ * SUCH DAMAGE. */ +#include <stdint.h> #include <sys/cdefs.h> extern unsigned __linker_init(void* raw_args); |