[libdispatch-dev] Solaris portability, dispatch.h - PATCH [4/6] REVISED
Joakim Johansson
jocke at tbricks.com
Sat Nov 7 00:53:40 PST 2009
Aha, I see - thanks for the explanation.
Attaching a revised version of the patch utilizing OS defines instead!
Thanks for integrating the other two fixes!
Joakim
ps Anyone else having issues with extremely slow delivery of posts to
the list? It can take literally many hours between a post being
available from the archives at macosforge until the post actually
turns up through email (all directly addressed emails comes at once
though, so it is not a problem with our mail delivery...
-----
> svn diff dispatch.h
Index: dispatch.h
===================================================================
--- dispatch.h (revision 142)
+++ dispatch.h (working copy)
@@ -25,7 +25,21 @@
#include <Availability.h>
#include <TargetConditionals.h>
#endif
+
+#if defined (__SVR4) && defined (__sun)
+#ifndef __BEGIN_DECLS
+# if defined(__cplusplus)
+# define __BEGIN_DECLS extern "C" {
+# define __END_DECLS };
+# else /* __BEGIN_DECLS */
+# define __BEGIN_DECLS
+# define __END_DECLS
+# endif /* __BEGIN_DECLS */
+#endif /* __BEGIN_DECLS */
+#else
#include <sys/cdefs.h>
+#endif
+
#include <stddef.h>
#include <stdint.h>
#include <stdbool.h>
-----
On 6 nov 2009, at 23.29, Robert Watson wrote:
> On Fri, 6 Nov 2009, Joakim Johansson wrote:
>
>> Added the checking for cdefs.h that does not exist on all
>> platforms, also added the __BEGIN_DECLS here as they are usually
>> from cdefs.h and are not available on Solaris.
>>
>> Perhaps this should be broken out to a DISPATCH_SHIMS_CDEFS instead?
>
> Unfortunately, we can't rely on config.h-based tests in the public
> headers, so this particular formulation of conditional cdefs.h
> inclusion won't work here (although it was fine in private.h, which
> I've committed as r141). Maybe we need to go with OS defines here
> for that reason.
>
> Robert
>
>>
>> Joakim
>>
>> octo.tbricks.com:gcd/trunk/dispatch> svn diff
>> Index: dispatch.h
>> ===================================================================
>> --- dispatch.h (revision 140)
>> +++ dispatch.h (working copy)
>> @@ -25,7 +25,20 @@
>> #include <Availability.h>
>> #include <TargetConditionals.h>
>> #endif
>> +#if HAVE_SYS_CDEFS_H
>> #include <sys/cdefs.h>
>> +#endif
>> +
>> +#ifndef __BEGIN_DECLS
>> +# if defined(__cplusplus)
>> +# define __BEGIN_DECLS extern "C" {
>> +# define __END_DECLS };
>> +# else /* __BEGIN_DECLS */
>> +# define __BEGIN_DECLS
>> +# define __END_DECLS
>> +# endif /* __BEGIN_DECLS */
>> +#endif /* __BEGIN_DECLS */
>> +
>> #include <stddef.h>
>> #include <stdint.h>
>> #include <stdbool.h>
>>
>> _______________________________________________
>> libdispatch-dev mailing list
>> libdispatch-dev at lists.macosforge.org
>> http://lists.macosforge.org/mailman/listinfo.cgi/libdispatch-dev
More information about the libdispatch-dev
mailing list