From e7ed8925a60a9ab2c56cfd00b798ca0327e2e85a Mon Sep 17 00:00:00 2001 From: Max Rees Date: Sun, 19 Aug 2018 03:59:42 -0400 Subject: user/glm: fix big endian build --- user/glm/APKBUILD | 6 +- user/glm/be.patch | 167 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 171 insertions(+), 2 deletions(-) create mode 100644 user/glm/be.patch (limited to 'user') diff --git a/user/glm/APKBUILD b/user/glm/APKBUILD index f2a984794..93a6d15e7 100644 --- a/user/glm/APKBUILD +++ b/user/glm/APKBUILD @@ -8,7 +8,8 @@ url="https://glm.g-truc.net/" arch="noarch" license="MIT OR Custom:Happy-Bunny" makedepends="cmake" -source="https://github.com/g-truc/glm/releases/download/$pkgver/$pkgname-$pkgver.zip" +source="https://github.com/g-truc/glm/releases/download/$pkgver/$pkgname-$pkgver.zip + be.patch" builddir="$srcdir/$pkgname" replaces="glm-dev" @@ -35,4 +36,5 @@ package() { make install DESTDIR="$pkgdir" } -sha512sums="ac256e8ba515a0a57e27cb9dc79325af7a6f014341c11ba34af604fc2df03ada6979c39c0e5a3fd7526a5dc6dd4af99586e60cefe13bb134ad4df2212193a253 glm-0.9.9.0.zip" +sha512sums="ac256e8ba515a0a57e27cb9dc79325af7a6f014341c11ba34af604fc2df03ada6979c39c0e5a3fd7526a5dc6dd4af99586e60cefe13bb134ad4df2212193a253 glm-0.9.9.0.zip +954495cc875b9e70f1957f54cdaa44738268a5a1104036edcdfd74736f8a3385725f29032a533f2a5acbdbfa19d2fe4bc80ef9fdb49d3e8bdc5dc00db86c813a be.patch" diff --git a/user/glm/be.patch b/user/glm/be.patch new file mode 100644 index 000000000..ee229322d --- /dev/null +++ b/user/glm/be.patch @@ -0,0 +1,167 @@ +--- glm-0.9.9.0/test/gtc/gtc_packing.cpp ++++ glm-0.9.9.0/test/gtc/gtc_packing.cpp +@@ -3,6 +3,7 @@ + #include + #include + #include ++#include + + void print_bits(float const& s) + { +@@ -155,7 +156,7 @@ + + glm::u8vec4 const v0(0xff, 0x77, 0x0, 0x33); + glm::uint32 const p0 = *reinterpret_cast(&v0[0]); +- glm::uint32 const r0 = 0x330077ff; ++ glm::uint32 const r0 = htonl(0xff770033); + + Error += p0 == r0 ? 0 : 1; + +--- glm-0.9.9.0/glm/gtc/packing.inl ++++ glm-0.9.9.0/glm/gtc/packing.inl +@@ -9,6 +9,9 @@ + #include "../detail/type_half.hpp" + #include + #include ++extern "C" { ++#include ++} + + namespace glm{ + namespace detail +@@ -183,9 +186,15 @@ + { + struct + { ++#if BYTE_ORDER == LITTLE_ENDIAN + uint x : 3; + uint y : 3; + uint z : 2; ++#else ++ uint z : 2; ++ uint y : 3; ++ uint x : 3; ++#endif + } data; + uint8 pack; + }; +@@ -194,8 +203,13 @@ + { + struct + { ++#if BYTE_ORDER == LITTLE_ENDIAN + uint x : 4; + uint y : 4; ++#else ++ uint y : 4; ++ uint x : 4; ++#endif + } data; + uint8 pack; + }; +@@ -204,10 +218,17 @@ + { + struct + { ++#if BYTE_ORDER == LITTLE_ENDIAN + uint x : 4; + uint y : 4; + uint z : 4; + uint w : 4; ++#else ++ uint w : 4; ++ uint z : 4; ++ uint y : 4; ++ uint x : 4; ++#endif + } data; + uint16 pack; + }; +@@ -216,9 +237,15 @@ + { + struct + { ++#if BYTE_ORDER == LITTLE_ENDIAN + uint x : 5; + uint y : 6; + uint z : 5; ++#else ++ uint z : 5; ++ uint y : 6; ++ uint x : 5; ++#endif + } data; + uint16 pack; + }; +@@ -227,10 +254,17 @@ + { + struct + { ++#if BYTE_ORDER == LITTLE_ENDIAN + uint x : 5; + uint y : 5; + uint z : 5; + uint w : 1; ++#else ++ uint w : 1; ++ uint z : 5; ++ uint y : 5; ++ uint x : 5; ++#endif + } data; + uint16 pack; + }; +@@ -239,10 +273,17 @@ + { + struct + { ++#if BYTE_ORDER == LITTLE_ENDIAN + uint x : 10; + uint y : 10; + uint z : 10; + uint w : 2; ++#else ++ uint w : 2; ++ uint z : 10; ++ uint y : 10; ++ uint x : 10; ++#endif + } data; + uint32 pack; + }; +@@ -251,10 +292,17 @@ + { + struct + { ++#if BYTE_ORDER == LITTLE_ENDIAN + int x : 10; + int y : 10; + int z : 10; + int w : 2; ++#else ++ int w : 2; ++ int z : 10; ++ int y : 10; ++ int x : 10; ++#endif + } data; + uint32 pack; + }; +@@ -263,10 +311,17 @@ + { + struct + { ++#if BYTE_ORDER == LITTLE_ENDIAN + uint x : 9; + uint y : 9; + uint z : 9; + uint w : 5; ++#else ++ uint w : 5; ++ uint z : 9; ++ uint y : 9; ++ uint x : 9; ++#endif + } data; + uint32 pack; + }; -- cgit v1.2.3-60-g2f50