diff --git a/include/boost/predef/detail/os_detected.h b/include/boost/predef/detail/os_detected.h new file mode 100644 index 0000000..7d70c1e --- /dev/null +++ b/include/boost/predef/detail/os_detected.h @@ -0,0 +1,10 @@ +/* +Copyright Redshift Software, Inc. 2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_DETAIL_OS_DETECTED +#define BOOST_PREDEF_DETAIL_OS_DETECTED 1 +#endif diff --git a/include/boost/predef/os/aix.h b/include/boost/predef/os/aix.h index bc29c1d..3c155c1 100644 --- a/include/boost/predef/os/aix.h +++ b/include/boost/predef/os/aix.h @@ -32,7 +32,9 @@ Version number available as major, minor, and patch. #define BOOST_OS_AIX BOOST_VERSION_NUMBER_NOT_AVAILABLE -#if defined(_AIX) || defined(__TOS_AIX__) +#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \ + defined(_AIX) || defined(__TOS_AIX__) \ + ) # undef BOOST_OS_AIX # if !defined(BOOST_OS_AIX) && defined(_AIX43) # define BOOST_OS_AIX BOOST_VERSION_NUMBER(4,3,0) @@ -53,6 +55,7 @@ Version number available as major, minor, and patch. #if BOOST_OS_AIX # define BOOST_OS_AIX_AVAILABLE +# include #endif #define BOOST_OS_AIX_NAME "IBM AIX" diff --git a/include/boost/predef/os/amigaos.h b/include/boost/predef/os/amigaos.h index 41a29f9..0f665d4 100644 --- a/include/boost/predef/os/amigaos.h +++ b/include/boost/predef/os/amigaos.h @@ -26,13 +26,16 @@ http://www.boost.org/LICENSE_1_0.txt) #define BOOST_OS_AMIGAOS BOOST_VERSION_NUMBER_NOT_AVAILABLE -#if defined(AMIGA) || defined(__amigaos__) +#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \ + defined(AMIGA) || defined(__amigaos__) \ + ) # undef BOOST_OS_AMIGAOS # define BOOST_OS_AMIGAOS BOOST_VERSION_NUMBER_AVAILABLE #endif #if BOOST_OS_AMIGAOS # define BOOST_OS_AMIGAOS_AVAILABLE +# include #endif #define BOOST_OS_AMIGAOS_NAME "AmigaOS" diff --git a/include/boost/predef/os/android.h b/include/boost/predef/os/android.h index b026abc..09b74d7 100644 --- a/include/boost/predef/os/android.h +++ b/include/boost/predef/os/android.h @@ -25,13 +25,16 @@ http://www.boost.org/LICENSE_1_0.txt) #define BOOST_OS_ANDROID BOOST_VERSION_NUMBER_NOT_AVAILABLE -#if defined(__ANDROID__) +#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \ + defined(__ANDROID__) \ + ) # undef BOOST_OS_ANDROID # define BOOST_OS_ANDROID BOOST_VERSION_NUMBER_AVAILABLE #endif #if BOOST_OS_ANDROID # define BOOST_OS_ANDROID_AVAILABLE +# include #endif #define BOOST_OS_ANDROID_NAME "Android" diff --git a/include/boost/predef/os/beos.h b/include/boost/predef/os/beos.h index a0a82ff..90b7d62 100644 --- a/include/boost/predef/os/beos.h +++ b/include/boost/predef/os/beos.h @@ -25,13 +25,16 @@ http://www.boost.org/LICENSE_1_0.txt) #define BOOST_OS_BEOS BOOST_VERSION_NUMBER_NOT_AVAILABLE -#if defined(__BEOS__) +#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \ + defined(__BEOS__) \ + ) # undef BOOST_OS_BEOS # define BOOST_OS_BEOS BOOST_VERSION_NUMBER_AVAILABLE #endif #if BOOST_OS_BEOS # define BOOST_OS_BEOS_AVAILABLE +# include #endif #define BOOST_OS_BEOS_NAME "BeOS" diff --git a/include/boost/predef/os/bsd.h b/include/boost/predef/os/bsd.h index 28a187e..ec4e398 100644 --- a/include/boost/predef/os/bsd.h +++ b/include/boost/predef/os/bsd.h @@ -42,20 +42,28 @@ of BSD. If the above variants is detected the corresponding macro is also set.] ] */ +#include +#include +#include +#include +#include + #define BOOST_OS_BSD BOOST_VERSION_NUMBER_NOT_AVAILABLE -#if defined(BSD) || \ - defined(_SYSTYPE_BSD) +#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \ + defined(BSD) || \ + defined(_SYSTYPE_BSD) \ + ) # undef BOOST_OS_BSD # include -# if !defined(BOOST_OS_BSD) && defined(BSD4_2) -# define BOOST_OS_BSD BOOST_VERSION_NUMBER(4,2,0) +# if !defined(BOOST_OS_BSD) && defined(BSD4_4) +# define BOOST_OS_BSD BOOST_VERSION_NUMBER(4,4,0) # endif # if !defined(BOOST_OS_BSD) && defined(BSD4_3) # define BOOST_OS_BSD BOOST_VERSION_NUMBER(4,3,0) # endif -# if !defined(BOOST_OS_BSD) && defined(BSD4_4) -# define BOOST_OS_BSD BOOST_VERSION_NUMBER(4,4,0) +# if !defined(BOOST_OS_BSD) && defined(BSD4_2) +# define BOOST_OS_BSD BOOST_VERSION_NUMBER(4,2,0) # endif # if !defined(BOOST_OS_BSD) && defined(BSD) # define BOOST_OS_BSD BOOST_PREDEF_MAKE_10_VVRR(BSD) @@ -67,6 +75,7 @@ of BSD. If the above variants is detected the corresponding macro is also set.] #if BOOST_OS_BSD # define BOOST_OS_BSD_AVAILABLE +# include #endif #define BOOST_OS_BSD_NAME "BSD" @@ -74,10 +83,4 @@ of BSD. If the above variants is detected the corresponding macro is also set.] #include BOOST_PREDEF_DECLARE_TEST(BOOST_OS_BSD,BOOST_OS_BSD_NAME) -#include -#include -#include -#include -#include - #endif diff --git a/include/boost/predef/os/bsd/bsdi.h b/include/boost/predef/os/bsd/bsdi.h index 4f6ccec..71ea87a 100644 --- a/include/boost/predef/os/bsd/bsdi.h +++ b/include/boost/predef/os/bsd/bsdi.h @@ -24,7 +24,9 @@ http://www.boost.org/LICENSE_1_0.txt) #define BOOST_OS_BSD_BSDI BOOST_VERSION_NUMBER_NOT_AVAILABLE -#if defined(__bsdi__) +#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \ + defined(__bsdi__) \ + ) # ifndef BOOST_OS_BSD_AVAILABLE # define BOOST_OS_BSD BOOST_VERSION_NUMBER_AVAILABLE # define BOOST_OS_BSD_AVAILABLE @@ -35,6 +37,7 @@ http://www.boost.org/LICENSE_1_0.txt) #if BOOST_OS_BSD_BSDI # define BOOST_OS_BSD_BSDI_AVAILABLE +# include #endif #define BOOST_OS_BSD_BSDI_NAME "BSDi BSD/OS" diff --git a/include/boost/predef/os/bsd/dragonfly.h b/include/boost/predef/os/bsd/dragonfly.h index 90ab7d2..9d37439 100644 --- a/include/boost/predef/os/bsd/dragonfly.h +++ b/include/boost/predef/os/bsd/dragonfly.h @@ -24,7 +24,9 @@ http://www.boost.org/LICENSE_1_0.txt) #define BOOST_OS_BSD_DRAGONFLY BOOST_VERSION_NUMBER_NOT_AVAILABLE -#if defined(__DragonFly__) +#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \ + defined(__DragonFly__) \ + ) # ifndef BOOST_OS_BSD_AVAILABLE # define BOOST_OS_BSD BOOST_VERSION_NUMBER_AVAILABLE # define BOOST_OS_BSD_AVAILABLE @@ -37,6 +39,7 @@ http://www.boost.org/LICENSE_1_0.txt) #if BOOST_OS_BSD_DRAGONFLY # define BOOST_OS_BSD_DRAGONFLY_AVAILABLE +# include #endif #define BOOST_OS_BSD_DRAGONFLY_NAME "DragonFly BSD" diff --git a/include/boost/predef/os/bsd/free.h b/include/boost/predef/os/bsd/free.h index 3fc7062..321d3a3 100644 --- a/include/boost/predef/os/bsd/free.h +++ b/include/boost/predef/os/bsd/free.h @@ -26,7 +26,9 @@ http://www.boost.org/LICENSE_1_0.txt) #define BOOST_OS_BSD_FREE BOOST_VERSION_NUMBER_NOT_AVAILABLE -#if defined(__FreeBSD__) +#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \ + defined(__FreeBSD__) \ + ) # ifndef BOOST_OS_BSD_AVAILABLE # define BOOST_OS_BSD BOOST_VERSION_NUMBER_AVAILABLE # define BOOST_OS_BSD_AVAILABLE @@ -47,6 +49,7 @@ http://www.boost.org/LICENSE_1_0.txt) #if BOOST_OS_BSD_FREE # define BOOST_OS_BSD_FREE_AVAILABLE +# include #endif #define BOOST_OS_BSD_FREE_NAME "Free BSD" diff --git a/include/boost/predef/os/bsd/net.h b/include/boost/predef/os/bsd/net.h index c582ff0..2a34538 100644 --- a/include/boost/predef/os/bsd/net.h +++ b/include/boost/predef/os/bsd/net.h @@ -31,7 +31,9 @@ http://www.boost.org/LICENSE_1_0.txt) #define BOOST_OS_BSD_NET BOOST_VERSION_NUMBER_NOT_AVAILABLE -#if defined(__NETBSD__) || defined(__NetBSD__) +#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \ + defined(__NETBSD__) || defined(__NetBSD__) \ + ) # ifndef BOOST_OS_BSD_AVAILABLE # define BOOST_OS_BSD BOOST_VERSION_NUMBER_AVAILABLE # define BOOST_OS_BSD_AVAILABLE @@ -71,6 +73,7 @@ http://www.boost.org/LICENSE_1_0.txt) #if BOOST_OS_BSD_NET # define BOOST_OS_BSD_NET_AVAILABLE +# include #endif #define BOOST_OS_BSD_NET_NAME "DragonFly BSD" diff --git a/include/boost/predef/os/bsd/open.h b/include/boost/predef/os/bsd/open.h index 3c0778d..2f51644 100644 --- a/include/boost/predef/os/bsd/open.h +++ b/include/boost/predef/os/bsd/open.h @@ -55,7 +55,9 @@ http://www.boost.org/LICENSE_1_0.txt) #define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER_NOT_AVAILABLE -#if defined(__OpenBSD__) +#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \ + defined(__OpenBSD__) \ + ) # ifndef BOOST_OS_BSD_AVAILABLE # define BOOST_OS_BSD BOOST_VERSION_NUMBER_AVAILABLE # define BOOST_OS_BSD_AVAILABLE @@ -158,6 +160,7 @@ http://www.boost.org/LICENSE_1_0.txt) #if BOOST_OS_BSD_OPEN # define BOOST_OS_BSD_OPEN_AVAILABLE +# include #endif #define BOOST_OS_BSD_OPEN_NAME "OpenBSD" diff --git a/include/boost/predef/os/cygwin.h b/include/boost/predef/os/cygwin.h index 999957a..8de0ee6 100644 --- a/include/boost/predef/os/cygwin.h +++ b/include/boost/predef/os/cygwin.h @@ -25,13 +25,16 @@ http://www.boost.org/LICENSE_1_0.txt) #define BOOST_OS_CYGWIN BOOST_VERSION_NUMBER_NOT_AVAILABLE -#if defined(__CYGWIN__) +#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \ + defined(__CYGWIN__) \ + ) # undef BOOST_OS_CYGWIN # define BOOST_OS_CGYWIN BOOST_VERSION_NUMBER_AVAILABLE #endif #if BOOST_OS_CYGWIN # define BOOST_OS_CYGWIN_AVAILABLE +# include #endif #define BOOST_OS_CYGWIN_NAME "Cygwin" diff --git a/include/boost/predef/os/hpux.h b/include/boost/predef/os/hpux.h index 38bc8ac..a6a117e 100644 --- a/include/boost/predef/os/hpux.h +++ b/include/boost/predef/os/hpux.h @@ -27,13 +27,16 @@ http://www.boost.org/LICENSE_1_0.txt) #define BOOST_OS_HPUX BOOST_VERSION_NUMBER_NOT_AVAILABLE -#if defined(hpux) || defined(_hpux) || defined(__hpux) +#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \ + defined(hpux) || defined(_hpux) || defined(__hpux) \ + ) # undef BOOST_OS_HPUX # define BOOST_OS_HPUX BOOST_VERSION_NUMBER_AVAILABLE #endif #if BOOST_OS_HPUX # define BOOST_OS_HPUX_AVAILABLE +# include #endif #define BOOST_OS_HPUX_NAME "HP-UX" diff --git a/include/boost/predef/os/irix.h b/include/boost/predef/os/irix.h index 6745fb7..d719510 100644 --- a/include/boost/predef/os/irix.h +++ b/include/boost/predef/os/irix.h @@ -26,13 +26,16 @@ http://www.boost.org/LICENSE_1_0.txt) #define BOOST_OS_IRIX BOOST_VERSION_NUMBER_NOT_AVAILABLE -#if defined(sgi) || defined(__sgi) +#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \ + defined(sgi) || defined(__sgi) \ + ) # undef BOOST_OS_IRIX # define BOOST_OS_IRIX BOOST_VERSION_NUMBER_AVAILABLE #endif #if BOOST_OS_IRIX # define BOOST_OS_IRIX_AVAILABLE +# include #endif #define BOOST_OS_IRIX_NAME "IRIX" diff --git a/include/boost/predef/os/linux.h b/include/boost/predef/os/linux.h index 1762b38..315bc3e 100644 --- a/include/boost/predef/os/linux.h +++ b/include/boost/predef/os/linux.h @@ -26,13 +26,16 @@ http://www.boost.org/LICENSE_1_0.txt) #define BOOST_OS_LINUX BOOST_VERSION_NUMBER_NOT_AVAILABLE -#if defined(linux) || defined(__linux) +#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \ + defined(linux) || defined(__linux) \ + ) # undef BOOST_OS_LINUX # define BOOST_OS_LINUX BOOST_VERSION_NUMBER_AVAILABLE #endif #if BOOST_OS_LINUX # define BOOST_OS_LINUX_AVAILABLE +# include #endif #define BOOST_OS_LINUX_NAME "Linux" diff --git a/include/boost/predef/os/macos.h b/include/boost/predef/os/macos.h index db9ac25..e625a6c 100644 --- a/include/boost/predef/os/macos.h +++ b/include/boost/predef/os/macos.h @@ -31,8 +31,10 @@ http://www.boost.org/LICENSE_1_0.txt) #define BOOST_OS_MACOS BOOST_VERSION_NUMBER_NOT_AVAILABLE -#if defined(macintosh) || defined(Macintosh) || \ - (defined(__APPLE__) && defined(__MACH__)) +#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \ + defined(macintosh) || defined(Macintosh) || \ + (defined(__APPLE__) && defined(__MACH__)) \ + ) # undef BOOST_OS_MACOS # if !defined(BOOST_OS_MACOS) && defined(__APPLE__) && defined(__MACH__) # define BOOST_OS_MACOS BOOST_VERSION_NUMBER(10,0,0) @@ -44,6 +46,7 @@ http://www.boost.org/LICENSE_1_0.txt) #if BOOST_OS_MACOS # define BOOST_OS_MACOS_AVAILABLE +# include #endif #define BOOST_OS_MACOS_NAME "Mac OS" diff --git a/include/boost/predef/os/os400.h b/include/boost/predef/os/os400.h index 0d724cb..62524bc 100644 --- a/include/boost/predef/os/os400.h +++ b/include/boost/predef/os/os400.h @@ -25,13 +25,16 @@ http://www.boost.org/LICENSE_1_0.txt) #define BOOST_OS_OS400 BOOST_VERSION_NUMBER_NOT_AVAILABLE -#if defined(__OS400__) +#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \ + defined(__OS400__) \ + ) # undef BOOST_OS_OS400 # define BOOST_OS_OS400 BOOST_VERSION_NUMBER_AVAILABLE #endif #if BOOST_OS_OS400 # define BOOST_OS_OS400_AVAILABLE +# include #endif #define BOOST_OS_OS400_NAME "IBM OS/400" diff --git a/include/boost/predef/os/qnxnto.h b/include/boost/predef/os/qnxnto.h index b34a8d6..a221923 100644 --- a/include/boost/predef/os/qnxnto.h +++ b/include/boost/predef/os/qnxnto.h @@ -31,7 +31,9 @@ version 4 is specifically detected. #define BOOST_OS_QNX BOOST_VERSION_NUMBER_NOT_AVAILABLE -#if defined(__QNX__) || defined(__QNXNTO__) +#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \ + defined(__QNX__) || defined(__QNXNTO__) \ + ) # undef BOOST_OS_QNX # if !defined(BOOST_OS_QNX) && defined(_NTO_VERSION) # define BOOST_OS_QNX BOOST_PREDEF_MAKE_10_VVRR(_NTO_VERSION) @@ -46,6 +48,7 @@ version 4 is specifically detected. #if BOOST_OS_QNX # define BOOST_OS_QNX_AVAILABLE +# include #endif #define BOOST_OS_QNX_NAME "QNX" diff --git a/include/boost/predef/os/solaris.h b/include/boost/predef/os/solaris.h index 923deca..3de77ad 100644 --- a/include/boost/predef/os/solaris.h +++ b/include/boost/predef/os/solaris.h @@ -26,13 +26,16 @@ http://www.boost.org/LICENSE_1_0.txt) #define BOOST_OS_SOLARIS BOOST_VERSION_NUMBER_NOT_AVAILABLE -#if defined(sun) || defined(__sun) +#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \ + defined(sun) || defined(__sun) \ + ) # undef BOOST_OS_SOLARIS # define BOOST_OS_SOLARIS BOOST_VERSION_NUMBER_AVAILABLE #endif #if BOOST_OS_SOLARIS # define BOOST_OS_SOLARIS_AVAILABLE +# include #endif #define BOOST_OS_SOLARIS_NAME "Solaris" diff --git a/include/boost/predef/os/unix.h b/include/boost/predef/os/unix.h index 04d1cd1..23afa4f 100644 --- a/include/boost/predef/os/unix.h +++ b/include/boost/predef/os/unix.h @@ -28,14 +28,17 @@ http://www.boost.org/LICENSE_1_0.txt) #define BOOST_OS_UNIX BOOST_VERSION_NUMBER_NOT_AVAILABLE -#if defined(unix) || defined(__unix) || \ - defined(_XOPEN_SOURCE) || defined(_POSIX_SOURCE) +#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \ + defined(unix) || defined(__unix) || \ + defined(_XOPEN_SOURCE) || defined(_POSIX_SOURCE) \ + ) # undef BOOST_OS_UNIX # define BOOST_OS_UNIX BOOST_VERSION_NUMBER_AVAILABLE #endif #if BOOST_OS_UNIX # define BOOST_OS_UNIX_AVAILABLE +# include #endif #define BOOST_OS_UNIX_NAME "Unix Environment" diff --git a/include/boost/predef/os/vms.h b/include/boost/predef/os/vms.h index e3641c0..c63ede2 100644 --- a/include/boost/predef/os/vms.h +++ b/include/boost/predef/os/vms.h @@ -28,7 +28,9 @@ http://www.boost.org/LICENSE_1_0.txt) #define BOOST_OS_VMS BOOST_VERSION_NUMBER_NOT_AVAILABLE -#if defined(VMS) || defined(__VMS) +#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \ + defined(VMS) || defined(__VMS) \ + ) # undef BOOST_OS_VMS # if defined(__VMS_VER) # define BOOST_OS_VMS BOOST_PREDEF_MAKE_10_VVRR00PP00(__VMS_VER) @@ -39,6 +41,7 @@ http://www.boost.org/LICENSE_1_0.txt) #if BOOST_OS_VMS # define BOOST_OS_VMS_AVAILABLE +# include #endif #define BOOST_OS_VMS_NAME "VMS" diff --git a/include/boost/predef/os/windows.h b/include/boost/predef/os/windows.h index c82a752..1316963 100644 --- a/include/boost/predef/os/windows.h +++ b/include/boost/predef/os/windows.h @@ -29,15 +29,18 @@ http://www.boost.org/LICENSE_1_0.txt) #define BOOST_OS_WINDOWS BOOST_VERSION_NUMBER_NOT_AVAILABLE -#if defined(_WIN32) || defined(_WIN64) || \ +#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \ + defined(_WIN32) || defined(_WIN64) || \ defined(__WIN32__) || defined(__TOS_WIN__) || \ - defined(__WINDOWS__) + defined(__WINDOWS__) \ + ) # undef BOOST_OS_WINDOWS # define BOOST_OS_WINDOWS BOOST_VERSION_NUMBER_AVAILABLE #endif #if BOOST_OS_WINDOWS # define BOOST_OS_WINDOWS_AVAILABLE +# include #endif #define BOOST_OS_WINDOWS_NAME "Microsoft Windows" diff --git a/include/boost/predef/other/endian.h b/include/boost/predef/other/endian.h index deb2381..9d2a8bc 100644 --- a/include/boost/predef/other/endian.h +++ b/include/boost/predef/other/endian.h @@ -11,6 +11,7 @@ http://www.boost.org/LICENSE_1_0.txt) #include #include #include +#include #include /*` @@ -48,17 +49,22 @@ information and acquired knowledge: #define BOOST_ENDIAN_LITTLE_WORD BOOST_VERSION_NUMBER_NOT_AVAILABLE /* GNU libc provides a header defining __BYTE_ORDER, or _BYTE_ORDER. + * And some OSs provide some for of endian header also. */ #if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_WORD && \ !BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD # if BOOST_LIB_C_GNU # include # else -# if BOOST_OS_BSD -# if BOOST_OS_BSD_OPEN -# include -# else -# include +# if BOOST_OS_MACOS +# include +# else +# if BOOST_OS_BSD +# if BOOST_OS_BSD_OPEN +# include +# else +# include +# endif # endif # endif # endif diff --git a/test/build.jam b/test/build.jam index 7d86904..27587fc 100755 --- a/test/build.jam +++ b/test/build.jam @@ -43,4 +43,6 @@ test-suite predef : [ run info_as_objc.m : : : always_show_run_output ] [ run version.cpp ] [ run make.cpp ] + [ compile macos_endian.c ] + [ compile macos_vs_bsd.c ] ; diff --git a/test/macos_endian.c b/test/macos_endian.c new file mode 100644 index 0000000..4397008 --- /dev/null +++ b/test/macos_endian.c @@ -0,0 +1,20 @@ +/* +Copyright Redshift Software Inc. 2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +/* + * OSX can define the BSD symbols if sys/param.h is included + * before detection. This causes the endian detection to misfire + * as both MACOS and BSD are "detected" (currently). This just + * tests that the sys/param.h include can be included before + * endian detection and still have it work correctly. + */ +#include + +#if BOOST_OS_MACOS +# include +# include +#endif diff --git a/test/macos_vs_bsd.c b/test/macos_vs_bsd.c new file mode 100644 index 0000000..5d4af12 --- /dev/null +++ b/test/macos_vs_bsd.c @@ -0,0 +1,20 @@ +/* +Copyright Redshift Software Inc. 2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +/* + * OSX can masquerade as BSD when sys/param.h is previously included. + * So we test that we only detect OSX in this combination. + */ +#include + +#if BOOST_OS_MACOS +# include +# include +# if BOOST_OS_BSD +# error "Both BOOST_OS_MACOS and BOOST_OS_BSD defined." +# endif +#endif