From a3d5e4aa43ec49273833f539033453addab1cd0e Mon Sep 17 00:00:00 2001 From: Christian Jullien Date: Mon, 7 Dec 2020 07:15:56 +0100 Subject: [PATCH] OpenBSD: define more internal symbols to support tcc on OpenBSD. --- include/stddef.h | 4 ++-- libtcc.c | 10 +++++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/include/stddef.h b/include/stddef.h index 773006f9..bb4f585b 100644 --- a/include/stddef.h +++ b/include/stddef.h @@ -17,7 +17,7 @@ typedef union { long long __ll; long double __ld; } max_align_t; typedef signed char int8_t; typedef signed short int int16_t; typedef signed int int32_t; -#if defined(__LP64__) && !defined(__APPLE__) +#if defined(__LP64__) && !defined(__APPLE__) && !defined(__OpenBSD__) typedef signed long int int64_t; #else typedef signed long long int int64_t; @@ -25,7 +25,7 @@ typedef signed long long int int64_t; typedef unsigned char uint8_t; typedef unsigned short int uint16_t; typedef unsigned int uint32_t; -#if defined(__LP64__) && !defined(__APPLE__) +#if defined(__LP64__) && !defined(__APPLE__) && !defined(__OpenBSD__) typedef unsigned long int uint64_t; #else typedef unsigned long long int uint64_t; diff --git a/libtcc.c b/libtcc.c index 01ffe769..5e4b8556 100644 --- a/libtcc.c +++ b/libtcc.c @@ -892,7 +892,15 @@ LIBTCCAPI TCCState *tcc_new(void) tcc_define_symbol(s, "__NetBSD__", "__NetBSD__"); # endif # if defined(__OpenBSD__) - tcc_define_symbol(s, "__OpenBSD__", "__OpenBSD__"); + tcc_define_symbol(s, "__OpenBSD__", "1"); + tcc_define_symbol(s, "_ANSI_LIBRARY_", "1"); + tcc_define_symbol(s, "__GNUC__", "4"); + tcc_define_symbol(s, "__builtin_alloca", "alloca"); /* as we claim GNUC */ + /* used by math.h */ + tcc_define_symbol(s, "__builtin_huge_val()", "1e500"); + tcc_define_symbol(s, "__builtin_huge_valf()", "1e50f"); + tcc_define_symbol(s, "__builtin_huge_vall()", "1e5000L"); + tcc_define_symbol(s, "__builtin_nanf(ignored_string)", "(0.0F/0.0F)"); # endif #endif