From 54f3c61f08f384221ab68acebacee5a5e3d8a63c Mon Sep 17 00:00:00 2001 From: Brian Kuhl Date: Tue, 5 Sep 2017 23:46:58 -0400 Subject: [PATCH 1/3] VxWorks has double align issues similar to unix but only on 32bit IA --- include/boost/type_traits/intrinsics.hpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/boost/type_traits/intrinsics.hpp b/include/boost/type_traits/intrinsics.hpp index e2246be..b1591d0 100644 --- a/include/boost/type_traits/intrinsics.hpp +++ b/include/boost/type_traits/intrinsics.hpp @@ -276,7 +276,8 @@ # define BOOST_IS_CLASS(T) __is_class(T) # define BOOST_IS_ENUM(T) __is_enum(T) # define BOOST_IS_POLYMORPHIC(T) __is_polymorphic(T) -# if (!defined(unix) && !defined(__unix__)) || defined(__LP64__) +# if (!defined(unix) && !defined(__unix__)) \ + !(defined(__VXWORKS__) && defined(__i386__))) || defined(__LP64__) // GCC sometimes lies about alignment requirements // of type double on 32-bit unix platforms, use the // old implementation instead in that case: From dfaad9ed214908646564e7aefdedc0d7750dccda Mon Sep 17 00:00:00 2001 From: Brian Kuhl Date: Tue, 5 Sep 2017 23:54:19 -0400 Subject: [PATCH 2/3] Update intrinsics.hpp --- include/boost/type_traits/intrinsics.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/boost/type_traits/intrinsics.hpp b/include/boost/type_traits/intrinsics.hpp index b1591d0..90a18a2 100644 --- a/include/boost/type_traits/intrinsics.hpp +++ b/include/boost/type_traits/intrinsics.hpp @@ -276,7 +276,7 @@ # define BOOST_IS_CLASS(T) __is_class(T) # define BOOST_IS_ENUM(T) __is_enum(T) # define BOOST_IS_POLYMORPHIC(T) __is_polymorphic(T) -# if (!defined(unix) && !defined(__unix__)) \ +# if (!defined(unix) && !defined(__unix__)) && \ !(defined(__VXWORKS__) && defined(__i386__))) || defined(__LP64__) // GCC sometimes lies about alignment requirements // of type double on 32-bit unix platforms, use the From d6f2dd9186661ee67d76ec32d03db745d5529a68 Mon Sep 17 00:00:00 2001 From: Brian Kuhl Date: Wed, 6 Sep 2017 10:33:34 -0400 Subject: [PATCH 3/3] Whoops, updating intrinsics.hpp again --- include/boost/type_traits/intrinsics.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/boost/type_traits/intrinsics.hpp b/include/boost/type_traits/intrinsics.hpp index 90a18a2..7d97157 100644 --- a/include/boost/type_traits/intrinsics.hpp +++ b/include/boost/type_traits/intrinsics.hpp @@ -276,7 +276,7 @@ # define BOOST_IS_CLASS(T) __is_class(T) # define BOOST_IS_ENUM(T) __is_enum(T) # define BOOST_IS_POLYMORPHIC(T) __is_polymorphic(T) -# if (!defined(unix) && !defined(__unix__)) && \ +# if (!defined(unix) && !defined(__unix__) && \ !(defined(__VXWORKS__) && defined(__i386__))) || defined(__LP64__) // GCC sometimes lies about alignment requirements // of type double on 32-bit unix platforms, use the