Just add a configure test and add to platform_interface.h (rough example) #if defined(MHD_USE_FCNTL2) #define MHD_fctrl_(a,b) fcntl2((a),(b)) #elif defined(MHD_USE_FCNTL3) #define MHD_fctrl_(a,b) fcntl3((a),(b),0) #endif
Best Wishes, Evgeny 19.04.2014, 02:50, "Christian Grothoff" <[email protected]>: > I don't see a problem with the fcntl_2/3 approach. However, > following existing naming conventions we should use > MHD_fcntl2_ instead of MHD_FCNTL2. > > Happy hacking! > > Christian > > On 04/18/14 15:10, Martin Velek wrote: > >> Hi, >> >> I will manage it. There has to be one ugly hack. To support all >> platforms (compilers), the MHD_FNCTL should be in the two forms. >> MHD_FNCTL2(x,y) and MHD_FNCTL3(x,y,z). I am not sure whether variadic >> macros are supported by all compilers (< C99). Some hints to overcome >> it would be appreciated. >> >> Best >> Martin >> >> On Fri, Apr 18, 2014 at 2:46 PM, Christian Grothoff <[email protected]> >> wrote: >>> Hi! >>> >>> Given that I remember Symbian also creating similar issues, I guess I'm >>> not opposed to this in principle. However, we should only do this for >>> the symbols where it is really needed, instead of always wrapping all >>> system calls (and use #defines so that on platforms where the system >>> call is sane, we have zero overhead). >>> >>> So Martin, if you could contribute >>> 1) a patch with the minimal changes that make it work for you, >>> 2) updates to the TeXInfo manual that describe how to make MHD >>> work with lwip (so that others can benefit from the change) >>> >>> I'd be in favor of merging the change. >>> >>> Happy hacking! >>> >>> Christian >>> >>> On 04/14/14 20:29, Martin Velek wrote: >>>> Hi, >>>> >>>> it is about using libmicrohttpd on non-POSIX enviroment. More users, >>>> more bugs discovered, and so on. I do not insist, it is only a feature >>>> request. >>>> >>>> I cannot say if there is another software affected, most of it I am >>>> using is ANSI C or has an adaptation layer exactly from these reasons >>>> (non standard enviroment). >>>> >>>> Best >>>> Martin >>>> >>>> On Mon, Apr 14, 2014 at 2:51 PM, Zbigniew Jędrzejewski-Szmek >>>> <[email protected]> wrote: >>>>> On Mon, Apr 14, 2014 at 02:29:58PM +0200, Martin Velek wrote: >>>>>> Hello, >>>>>> >>>>>> could be possible to rename all socket functions (fnctl, send, accept >>>>>> etc) to something like MHD_FNCTL, MHD_SEND, in further versions > >>>>>> 0.9.34? >>>>>> >>>>>> I am using lwip, gnu arm with newlib and there is a name clash for >>>>>> fnctl. The newlib has a function named fnctl, but without >>>>>> implementation, returning -1. The lwip has own implementation of >>>>>> lwip_fnctl. I cannot simply define #define fnctl lwip_fnctl because it >>>>>> would break all code using libmicrohttpd. >>>>> Hi, >>>>> it seems clear that the problem is in lwip, and should be fixed there. >>>>> Why >>>>> force ugly workarounds into all other software (lib痛ttpd certainly isn't >>>>> the only thing affected), instead of fixing the error where it is? >>>>> >>>>> Zbyszek -- Best Wishes, Evgeny Grin
