Control: tags -1 patch

Hi,

This patch seems to fix the FTBFS. I've tested it on amd64, i386,
arm64, powerpc and ppc64el.

Since it builds on ppc64el, I'm guessing that #766630 is also fixed?

I also tested it with supernova enabled and it works everywhere so you
can probably just remove the code to disable supernova.

If you want I can commit / upload this.

Thanks,
James
Description: Fix FTBFS on various arches caused by buggy oscpack build
 OscTypes.h: fix integer size detection on 64-bit arches
 OscReceivedElements.cpp:
 - Fix "error: 'argument_' was not declared in this scope" on big-endian
   arches.
 - Rename RoundUp4 to avoid multiple redefinitions on platforms where
   uint32 == size_t. This bug originally happened on 64-bit arches due to the
   mishandling of types in OscTypes.h.
 OscOutboundPacketStream.h, OscReceivedElements.h:
 - Remove extra int overloads which don't built on 32-bit arches.
   The other overloads should be enough.
Author: James Cowgill <jcowg...@debian.org>
Bug-Debian: https://bugs.debian.org/824581
---
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
--- a/external_libraries/oscpack_1_1_0/osc/OscTypes.h
+++ b/external_libraries/oscpack_1_1_0/osc/OscTypes.h
@@ -37,42 +37,17 @@
 #ifndef INCLUDED_OSCPACK_OSCTYPES_H
 #define INCLUDED_OSCPACK_OSCTYPES_H
 
+#include <stdint.h>
 
 namespace osc{
 
 // basic types
 
-#if defined(__BORLANDC__) || defined(_MSC_VER)
-
-typedef __int64 int64;
-typedef unsigned __int64 uint64;
-
-#elif defined(__x86_64__) || defined(_M_X64)
-
-typedef long int64;
-typedef unsigned long uint64;
-
-#else
-
-typedef long long int64;
-typedef unsigned long long uint64;
-
-#endif
-
-
-
-#if defined(__x86_64__) || defined(_M_X64)
-
-typedef signed int int32;
-typedef unsigned int uint32;
-
-#else
-
-typedef signed long int32;
-typedef unsigned long uint32;
-
-#endif
+typedef int64_t int64;
+typedef uint64_t uint64;
 
+typedef int32_t int32;
+typedef uint32_t uint32;
 
 enum ValueTypeSizes{
     OSC_SIZEOF_INT32 = 4,
--- a/external_libraries/oscpack_1_1_0/osc/OscReceivedElements.cpp
+++ b/external_libraries/oscpack_1_1_0/osc/OscReceivedElements.cpp
@@ -84,7 +84,7 @@ static inline const char* FindStr4End( c
 
 
 // round up to the next highest multiple of 4. unless x is already a multiple of 4
-static inline uint32 RoundUp4( uint32 x ) 
+static inline uint32 RoundUp4_UInt32( uint32 x ) 
 {
     return (x + 3) & ~((uint32)0x03);
 }
@@ -249,7 +249,7 @@ int32 ReceivedMessageArgument::AsInt32Un
 
     return u.i;
 #else
-	return *(int32*)argument_;
+	return *(int32*)argumentPtr_;
 #endif
 }
 
@@ -280,7 +280,7 @@ float ReceivedMessageArgument::AsFloatUn
 
     return u.f;
 #else
-	return *(float*)argument_;
+	return *(float*)argumentPtr_;
 #endif
 }
 
@@ -400,7 +400,7 @@ double ReceivedMessageArgument::AsDouble
 
     return u.d;
 #else
-	return *(double*)argument_;
+	return *(double*)argumentPtr_;
 #endif
 }
 
@@ -533,7 +533,7 @@ void ReceivedMessageArgumentIterator::Ad
             {
                 // treat blob size as an unsigned int for the purposes of this calculation
                 uint32 blobSize = ToUInt32( value_.argumentPtr_ );
-                value_.argumentPtr_ = value_.argumentPtr_ + osc::OSC_SIZEOF_INT32 + RoundUp4( blobSize );
+                value_.argumentPtr_ = value_.argumentPtr_ + osc::OSC_SIZEOF_INT32 + RoundUp4_UInt32( blobSize );
             }
             break;
 
@@ -694,7 +694,7 @@ void ReceivedMessage::Init( const char *
                                 
                             // treat blob size as an unsigned int for the purposes of this calculation
                             uint32 blobSize = ToUInt32( argument );
-                            argument = argument + osc::OSC_SIZEOF_INT32 + RoundUp4( blobSize );
+                            argument = argument + osc::OSC_SIZEOF_INT32 + RoundUp4_UInt32( blobSize );
                             if( argument > end )
                                 MalformedMessageException( "arguments exceed message size" );
                         }
--- a/external_libraries/oscpack_1_1_0/osc/OscOutboundPacketStream.h
+++ b/external_libraries/oscpack_1_1_0/osc/OscOutboundPacketStream.h
@@ -105,11 +105,6 @@ public:
     OutboundPacketStream& operator<<( const InfinitumType& rhs );
     OutboundPacketStream& operator<<( int32 rhs );
 
-#if !(defined(__x86_64__) || defined(_M_X64))
-    OutboundPacketStream& operator<<( int rhs )
-            { *this << (int32)rhs; return *this; }
-#endif
-
     OutboundPacketStream& operator<<( float rhs );
     OutboundPacketStream& operator<<( char rhs );
     OutboundPacketStream& operator<<( const RgbaColor& rhs );
--- a/external_libraries/oscpack_1_1_0/osc/OscReceivedElements.h
+++ b/external_libraries/oscpack_1_1_0/osc/OscReceivedElements.h
@@ -100,12 +100,6 @@ public:
         : contents_( contents )
         , size_( ValidateSize( (osc_bundle_element_size_t)size ) ) {}
 
-#if !(defined(__x86_64__) || defined(_M_X64))
-    ReceivedPacket( const char *contents, int size )
-        : contents_( contents )
-        , size_( ValidateSize( (osc_bundle_element_size_t)size ) ) {}
-#endif
-
     bool IsMessage() const { return !IsBundle(); }
     bool IsBundle() const;
 

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to