diff --git a/vlib/compiler/cheaders.v b/vlib/compiler/cheaders.v index d7cd5e0ed0..ca20c0629c 100644 --- a/vlib/compiler/cheaders.v +++ b/vlib/compiler/cheaders.v @@ -4,6 +4,7 @@ const ( c_headers = ' +//#include // int64_t etc #include // TODO remove all these includes, define all function signatures and types manually #include @@ -20,9 +21,9 @@ c_headers = ' #error "The environment is not 32 or 64-bit." #endif -#if defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ || defined(__BYTE_ORDER) && __BYTE_ORDER == __BIG_ENDIAN || defined(__BIG_ENDIAN__) || defined(__ARMEB__) || defined(__THUMBEB__) || defined(__AARCH64EB__) || defined(_MIBSEB) || defined(__MIBSEB) || defined(__MIBSEB__) +#if defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ || defined(__BYTE_ORDER) && __BYTE_ORDER == __BIG_ENDIAN || defined(__BIG_ENDIAN__) || defined(__ARMEB__) || defined(__THUMBEB__) || defined(__AARCH64EB__) || defined(_MIBSEB) || defined(__MIBSEB) || defined(__MIBSEB__) #define TARGET_ORDER_IS_BIG -#elif defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ || defined(__BYTE_ORDER) && __BYTE_ORDER == __LITTLE_ENDIAN || defined(__LITTLE_ENDIAN__) || defined(__ARMEL__) || defined(__THUMBEL__) || defined(__AARCH64EL__) || defined(_MIPSEL) || defined(__MIPSEL) || defined(__MIPSEL__) || defined(_M_AMD64) || defined(_M_X64) || defined(_M_IX86) +#elif defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ || defined(__BYTE_ORDER) && __BYTE_ORDER == __LITTLE_ENDIAN || defined(__LITTLE_ENDIAN__) || defined(__ARMEL__) || defined(__THUMBEL__) || defined(__AARCH64EL__) || defined(_MIPSEL) || defined(__MIPSEL) || defined(__MIPSEL__) || defined(_M_AMD64) || defined(_M_X64) || defined(_M_IX86) #define TARGET_ORDER_IS_LITTLE #else #error "Unknown architecture endianness" @@ -168,9 +169,11 @@ var map_int = function() {} c_builtin_types = ' +//#include // int64_t etc +//#include // int64_t etc + //================================== TYPEDEFS ================================*/ -#include // int64_t etc typedef int64_t i64; typedef int16_t i16; typedef int8_t i8; diff --git a/vlib/compiler/main.v b/vlib/compiler/main.v index 2b28256ac7..97f316352c 100644 --- a/vlib/compiler/main.v +++ b/vlib/compiler/main.v @@ -234,7 +234,14 @@ pub fn (v mut V) compile() { $if js { cgen.genln(js_headers) } $else { + if !v.pref.is_bare { + cgen.genln('#include ') // int64_t etc + } else { + cgen.genln('#include ') + } + cgen.genln(c_builtin_types) + if !v.pref.is_bare { cgen.genln(c_headers) } diff --git a/vlib/os/bare/bare.S b/vlib/os/bare/bare.S index c5fcb6ce51..6687ab7f11 100644 --- a/vlib/os/bare/bare.S +++ b/vlib/os/bare/bare.S @@ -1,6 +1,6 @@ .intel_syntax noprefix .text - .globl _start, syscall5 + .globl _start, main__syscall5 _start: xor rbp,rbp @@ -16,7 +16,7 @@ ret /* should never be reached, but if the OS somehow fails to kill us, it will cause a segmentation fault */ - syscall5: + main__syscall5: mov rax,rdi mov rdi,rsi mov rsi,rdx @@ -26,7 +26,7 @@ syscall ret - syscall6: + main__syscall6: mov rax,rdi mov rdi,rsi mov rsi,rdx