Yocto 2.4
Move OpenBMC to Yocto 2.4(rocko)
Tested: Built and verified Witherspoon and Palmetto images
Change-Id: I12057b18610d6fb0e6903c60213690301e9b0c67
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/files/0001-correct-version-for-so-lib.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/files/0001-correct-version-for-so-lib.patch
new file mode 100644
index 0000000..a7a42f9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/files/0001-correct-version-for-so-lib.patch
@@ -0,0 +1,26 @@
+From 8b44dc65d98d50b462843ac9dab6fe3fc25abe36 Mon Sep 17 00:00:00 2001
+From: Pascal Bach <pascal.bach@siemens.com>
+Date: Fri, 12 May 2017 13:54:49 +0200
+Subject: [PATCH] correct version for so lib
+
+Upstream-Status: Pending
+
+---
+ CMakeLists.txt | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 3670afe..f4fcd2c 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -172,6 +172,7 @@ endif()
+ if(FLATBUFFERS_BUILD_SHAREDLIB)
+ add_library(flatbuffers_shared SHARED ${FlatBuffers_Library_SRCS})
+ set_target_properties(flatbuffers_shared PROPERTIES OUTPUT_NAME flatbuffers)
++ set_target_properties(flatbuffers_shared PROPERTIES VERSION "${PV}")
+ endif()
+
+ function(compile_flatbuffers_schema_to_cpp SRC_FBS)
+--
+2.1.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/files/0001-flatbuffers-Move-EndianSwap-template-to-flatbuffers-.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/files/0001-flatbuffers-Move-EndianSwap-template-to-flatbuffers-.patch
new file mode 100644
index 0000000..d736f01
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/files/0001-flatbuffers-Move-EndianSwap-template-to-flatbuffers-.patch
@@ -0,0 +1,113 @@
+From a614d8e20fa9e4fd16b699d581ddac2956c120f5 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 19 Sep 2017 10:04:02 -0700
+Subject: [PATCH 1/2] flatbuffers: Move EndianSwap template to
+ flatbuffers/base.h
+
+Clang complains
+call to function 'EndianSwap' that is neither visible in the template definition nor found by argument-dependent lookup
+ return EndianSwap(t);
+
+This seems to be due to limitation of two-phase lookup of dependent names in template definitions
+
+Its not being found using associated namespaces therefore
+it has to be made visible at the template definition site as well
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Submitted
+
+ include/flatbuffers/base.h | 33 +++++++++++++++++++++++++++++++++
+ include/flatbuffers/flatbuffers.h | 32 --------------------------------
+ 2 files changed, 33 insertions(+), 32 deletions(-)
+
+diff --git a/include/flatbuffers/base.h b/include/flatbuffers/base.h
+index f051755..c73fb2d 100644
+--- a/include/flatbuffers/base.h
++++ b/include/flatbuffers/base.h
+@@ -150,6 +150,39 @@ typedef uintmax_t largest_scalar_t;
+ // We support aligning the contents of buffers up to this size.
+ #define FLATBUFFERS_MAX_ALIGNMENT 16
+
++template<typename T> T EndianSwap(T t) {
++ #if defined(_MSC_VER)
++ #define FLATBUFFERS_BYTESWAP16 _byteswap_ushort
++ #define FLATBUFFERS_BYTESWAP32 _byteswap_ulong
++ #define FLATBUFFERS_BYTESWAP64 _byteswap_uint64
++ #else
++ #if defined(__GNUC__) && __GNUC__ * 100 + __GNUC_MINOR__ < 408
++ // __builtin_bswap16 was missing prior to GCC 4.8.
++ #define FLATBUFFERS_BYTESWAP16(x) \
++ static_cast<uint16_t>(__builtin_bswap32(static_cast<uint32_t>(x) << 16))
++ #else
++ #define FLATBUFFERS_BYTESWAP16 __builtin_bswap16
++ #endif
++ #define FLATBUFFERS_BYTESWAP32 __builtin_bswap32
++ #define FLATBUFFERS_BYTESWAP64 __builtin_bswap64
++ #endif
++ if (sizeof(T) == 1) { // Compile-time if-then's.
++ return t;
++ } else if (sizeof(T) == 2) {
++ auto r = FLATBUFFERS_BYTESWAP16(*reinterpret_cast<uint16_t *>(&t));
++ return *reinterpret_cast<T *>(&r);
++ } else if (sizeof(T) == 4) {
++ auto r = FLATBUFFERS_BYTESWAP32(*reinterpret_cast<uint32_t *>(&t));
++ return *reinterpret_cast<T *>(&r);
++ } else if (sizeof(T) == 8) {
++ auto r = FLATBUFFERS_BYTESWAP64(*reinterpret_cast<uint64_t *>(&t));
++ return *reinterpret_cast<T *>(&r);
++ } else {
++ assert(0);
++ }
++}
++
++
+ template<typename T> T EndianScalar(T t) {
+ #if FLATBUFFERS_LITTLEENDIAN
+ return t;
+diff --git a/include/flatbuffers/flatbuffers.h b/include/flatbuffers/flatbuffers.h
+index 9216cf4..f749dcb 100644
+--- a/include/flatbuffers/flatbuffers.h
++++ b/include/flatbuffers/flatbuffers.h
+@@ -37,38 +37,6 @@ inline void EndianCheck() {
+ (void)endiantest;
+ }
+
+-template<typename T> T EndianSwap(T t) {
+- #if defined(_MSC_VER)
+- #define FLATBUFFERS_BYTESWAP16 _byteswap_ushort
+- #define FLATBUFFERS_BYTESWAP32 _byteswap_ulong
+- #define FLATBUFFERS_BYTESWAP64 _byteswap_uint64
+- #else
+- #if defined(__GNUC__) && __GNUC__ * 100 + __GNUC_MINOR__ < 408
+- // __builtin_bswap16 was missing prior to GCC 4.8.
+- #define FLATBUFFERS_BYTESWAP16(x) \
+- static_cast<uint16_t>(__builtin_bswap32(static_cast<uint32_t>(x) << 16))
+- #else
+- #define FLATBUFFERS_BYTESWAP16 __builtin_bswap16
+- #endif
+- #define FLATBUFFERS_BYTESWAP32 __builtin_bswap32
+- #define FLATBUFFERS_BYTESWAP64 __builtin_bswap64
+- #endif
+- if (sizeof(T) == 1) { // Compile-time if-then's.
+- return t;
+- } else if (sizeof(T) == 2) {
+- auto r = FLATBUFFERS_BYTESWAP16(*reinterpret_cast<uint16_t *>(&t));
+- return *reinterpret_cast<T *>(&r);
+- } else if (sizeof(T) == 4) {
+- auto r = FLATBUFFERS_BYTESWAP32(*reinterpret_cast<uint32_t *>(&t));
+- return *reinterpret_cast<T *>(&r);
+- } else if (sizeof(T) == 8) {
+- auto r = FLATBUFFERS_BYTESWAP64(*reinterpret_cast<uint64_t *>(&t));
+- return *reinterpret_cast<T *>(&r);
+- } else {
+- assert(0);
+- }
+-}
+-
+ template<typename T> FLATBUFFERS_CONSTEXPR size_t AlignOf() {
+ #ifdef _MSC_VER
+ return __alignof(T);
+--
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/files/0002-use-__builtin_bswap16-when-building-with-clang.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/files/0002-use-__builtin_bswap16-when-building-with-clang.patch
new file mode 100644
index 0000000..460159f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/files/0002-use-__builtin_bswap16-when-building-with-clang.patch
@@ -0,0 +1,30 @@
+From 626fe5e043de25e970ebdf061b88c646fa689113 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 19 Sep 2017 10:09:31 -0700
+Subject: [PATCH 2/2] use __builtin_bswap16 when building with clang
+
+clang pretends to be gcc 4.2.0 and therefore the code does
+not use __builtin_bswap16 but tries to synthesize it
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Submitted
+ include/flatbuffers/base.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/include/flatbuffers/base.h b/include/flatbuffers/base.h
+index c73fb2d..13e8fac 100644
+--- a/include/flatbuffers/base.h
++++ b/include/flatbuffers/base.h
+@@ -156,7 +156,7 @@ template<typename T> T EndianSwap(T t) {
+ #define FLATBUFFERS_BYTESWAP32 _byteswap_ulong
+ #define FLATBUFFERS_BYTESWAP64 _byteswap_uint64
+ #else
+- #if defined(__GNUC__) && __GNUC__ * 100 + __GNUC_MINOR__ < 408
++ #if defined(__GNUC__) && __GNUC__ * 100 + __GNUC_MINOR__ < 408 && !defined(__clang__)
+ // __builtin_bswap16 was missing prior to GCC 4.8.
+ #define FLATBUFFERS_BYTESWAP16(x) \
+ static_cast<uint16_t>(__builtin_bswap32(static_cast<uint32_t>(x) << 16))
+--
+2.14.1
+