Date: Wed, 19 May 2010 12:52:04 +0200 From: Gabor PALI <pgj@FreeBSD.org> To: hackers@freebsd.org Subject: How to Include Headers for siginterrupt() and vsnprintf() Message-ID: <AANLkTinyDxZ19omwff0g4oF7Vf5FWR-M5p-_wP3WQ-J3@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
Hello there, I have some sources developed on non-FreeBSD systems (the sources of the run-time system for the Glasgow Haskell Compiler [1]) which try to #include signal.h to use siginterrupt() and stdio.h to use vsnprintf(). The problem is that they #define (or not) some constants which makes them hidden so the prototypes are not seen by the compiler. How to cope with this kind of sources? My naive solution is to do something like that (rts/posix/Signals.c): #if defined(HAVE_SIGNAL_H) # if defined(freebsd_HOST_OS) extern int siginterrupt(int,int); # endif # include <signal.h> #endif and that (rts/eventlog/EventLog.c): #ifdef freebsd_HOST_OS int vsnprintf(char * __restrict, size_t, const char * __restrict,__va_list) __printflike(3, 0); #endif Thank you for the hints in advance. Cheers, :g [1] http://darcs.haskell.org/cgi-bin/darcsweb.cgi?r=ghc;a=tree
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTinyDxZ19omwff0g4oF7Vf5FWR-M5p-_wP3WQ-J3>