|
Message-ID: <20130606203837.GD15710@port70.net> Date: Thu, 6 Jun 2013 22:38:37 +0200 From: Szabolcs Nagy <nsz@...t70.net> To: musl@...ts.openwall.com Subject: Re: apr and time.h * Jens <jensl@...s.mine.nu> [2013-06-06 19:42:39 +0200]: > apr wont build (for me) with the following part of time.h (musl-0.9.10): > > #if defined(_BSD_SOURCE) || defined(_GNU_SOURCE) > #define tm_gmtoff __tm_gmtoff > #define tm_zone __tm_zone > #endif > > apr implements a struct with a member named tm_gmtoff. > you gotta love "portability runtime" libraries.. tm_ is in the reserved namespace of posix, but time.h is specified by iso c as well which does not have such restriction so in this case they are not strictly wrong the correct behaviour of musl would be to only expose iso c interfaces by default but then all the codes in the world break.. (including apr most likely) an ugly workaround that does less namespace pollution (no tm_* macro): #if defined(_BSD_SOURCE) || defined(_GNU_SOURCE) #define __tm_gmtoff tm_gmtoff #define __tm_zone tm_zone #define _FIX(x) x #else #define _FIX(x) __##x #endif struct tm { /*...*/ long _FIX(tm_gmtoff); const char *_FIX(tm_zone); }; either this or fix apr so it does not collide with the posix namespace..
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.