From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1HZxnO-0007i7-JK for qemu-devel@nongnu.org; Fri, 06 Apr 2007 19:24:42 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1HZxnM-0007bn-TH for qemu-devel@nongnu.org; Fri, 06 Apr 2007 19:24:41 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1HZxnM-0007bf-OQ for qemu-devel@nongnu.org; Fri, 06 Apr 2007 19:24:40 -0400 Received: from phoenix.bawue.net ([193.7.176.60] helo=mail.bawue.net) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1HZxjo-0006Ap-7n for qemu-devel@nongnu.org; Fri, 06 Apr 2007 19:21:00 -0400 Date: Sat, 7 Apr 2007 00:21:26 +0100 Subject: Re: [Qemu-devel] Patch: dyngen-exec.h for OpenBSD Message-ID: <20070406232126.GE21953@networkno.de> References: <20070321023900.GA13604@fries.net> <20070402095453.GB24846@networkno.de> <20070405221242.GB4559@fries.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20070405221242.GB4559@fries.net> From: Thiemo Seufer Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Todd T. Fries" Cc: qemu-devel@nongnu.org Todd T. Fries wrote: > > Penned by Thiemo Seufer on 20070402 10:54.53, we have: > | > /* NOTE: standard headers should be used with special care at this > | > point because host CPU registers are used as global variables. Some > | > host headers do not allow that. */ > | > #include > | > - > | > +#ifdef __OpenBSD__ > | > +#include > | > +#else > | > typedef unsigned char uint8_t; > | > typedef unsigned short uint16_t; > | > typedef unsigned int uint32_t; > | > @@ -61,6 +65,7 @@ typedef signed long int64_t; > | > typedef signed long long int64_t; > | > #endif > | > #endif > | > +#endif > | > | Is this specialcase really needed for OpenBSD? > > Can you honestly tell me that on all platforms this is true? > > Hello? Portability? sys/types.h defines these types portably. > Doing so the way this code does it, is not portable. > > I left your non portable code to you; if systems in general > define these types in sys/types.h then just remove the > typedefs, problem solved. Please consider the NOTE: above those includes. > | > /* XXX: This may be wrong for 64-bit ILP32 hosts. */ > | > typedef void * host_reg_t; > | > @@ -78,11 +83,15 @@ typedef void * host_reg_t; > | > #define UINT32_MAX (4294967295U) > | > #define UINT64_MAX ((uint64_t)(18446744073709551615)) > | > > | > +#ifdef __OpenBSD__ > | > +typedef struct __sFILE FILE; > | > +#else > | > typedef struct FILE FILE; > | > extern int fprintf(FILE *, const char *, ...); > | > extern int printf(const char *, ...); > | > #undef NULL > | > #define NULL 0 > | > +#endif > | > | Shouldn't this cover only the FILE typedef? > > Why is it that qemu knows what the definition of these prototypes > are on all systems without consulting the header files. I have a > better idea, lets let the header files define the prototypes. > Who would have though of that? > > .. of course I purposefully intended to remove cruft that is > in header files and belongs in header files. See above. Thiemo