From 088ea8f1947a9710828706dffd7d9a2f90c20b56 Mon Sep 17 00:00:00 2001 From: James Turner Date: Mon, 3 Jun 2013 21:40:14 -0400 Subject: [PATCH] Add support for OpenBSD --- flisp.c | 2 ++ llt/dirpath.c | 6 ++++++ llt/dtypes.h | 11 ++++++++++- llt/timefuncs.c | 2 +- llt/utf8.c | 4 ++-- 5 files changed, 21 insertions(+), 4 deletions(-) diff --git a/flisp.c b/flisp.c index 3a03f5c..9f6d8eb 100644 --- a/flisp.c +++ b/flisp.c @@ -2305,6 +2305,8 @@ static void lisp_init(size_t initial_heapsize) set(symbol("*os-name*"), symbol("win32")); #elif defined(MACOSX) set(symbol("*os-name*"), symbol("macos")); +#elif defined(OPENBSD) + set(symbol("*os-name*"), symbol("openbsd")); #else set(symbol("*os-name*"), symbol("unknown")); #endif diff --git a/llt/dirpath.c b/llt/dirpath.c index ca86b27..b68b8ca 100644 --- a/llt/dirpath.c +++ b/llt/dirpath.c @@ -89,6 +89,12 @@ char *get_exename(char *buf, size_t size) return buf; } +#elif defined(OPENBSD) +char *get_exename(char *buf, size_t size) +{ + /* OpenBSD currently has no way of determining a processes pathname */ + return NULL; +} #elif defined(__FreeBSD__) #include #include diff --git a/llt/dtypes.h b/llt/dtypes.h index 9a5995c..9fec2a3 100644 --- a/llt/dtypes.h +++ b/llt/dtypes.h @@ -21,12 +21,21 @@ # define LINUX #elif defined(__APPLE__) && defined(__MACH__) # define MACOSX +#elif defined(__OpenBSD__) +# define OPENBSD #elif defined(_WIN32) # define WIN32 #else # error "unknown platform" #endif +#if defined(OPENBSD) +#if defined(__x86_64__) +# define __SIZEOF_POINTER__ 8 +#else +# define __SIZEOF_POINTER__ 4 +#endif +#endif #if !defined (BITS32) && !defined (BITS64) #ifndef __SIZEOF_POINTER__ @@ -61,7 +70,7 @@ # define BIG_ENDIAN __BIG_ENDIAN # define PDP_ENDIAN __PDP_ENDIAN # define BYTE_ORDER __BYTE_ORDER -#elif defined(MACOSX) +#elif defined(MACOSX) || defined(OPENBSD) # include # define __LITTLE_ENDIAN LITTLE_ENDIAN # define __BIG_ENDIAN BIG_ENDIAN diff --git a/llt/timefuncs.c b/llt/timefuncs.c index d2986c8..86639a0 100644 --- a/llt/timefuncs.c +++ b/llt/timefuncs.c @@ -106,7 +106,7 @@ void timestring(double seconds, char *buffer, size_t len) #endif } -#if defined(LINUX) || defined(MACOSX) +#if defined(LINUX) || defined(MACOSX) || defined(OPENBSD) extern char *strptime(const char *s, const char *format, struct tm *tm); double parsetime(const char *str) { diff --git a/llt/utf8.c b/llt/utf8.c index 9d554ca..fee04ba 100644 --- a/llt/utf8.c +++ b/llt/utf8.c @@ -25,9 +25,9 @@ #include #define snprintf _snprintf #else -#ifndef __FreeBSD__ +#if !defined(__FreeBSD__) && !defined(__OpenBSD__) #include -#endif /* __FreeBSD__ */ +#endif /* __FreeBSD__ && __OpenBSD__ */ #endif #include