diff --git a/templates.h b/templates.h index e88d887..17e7243 100644 --- a/templates.h +++ b/templates.h @@ -43,7 +43,11 @@ template static inline T clamp(T v, T mi, T ma) return v; } +#if (defined(__SVR4) && defined(__sun)) +#pragma pack(1) +#else #pragma pack(push,1) +#endif namespace aux { @@ -68,7 +72,11 @@ typedef big_endian int32_big; typedef big_endian uint32_big; typedef big_endian uint16_big; +#if (defined(__SVR4) && defined(__sun)) +#pragma pack(0) +#else #pragma pack(pop) +#endif template static inline void zeromem(T *a, size_t count = 1) { memset(a, 0, count * sizeof(T)); } diff --git a/utp.cpp b/utp.cpp index 328a659..61142d6 100644 --- a/utp.cpp +++ b/utp.cpp @@ -92,7 +92,11 @@ char addrbuf[65]; char addrbuf2[65]; #define addrfmt(x, s) x.fmt(s, sizeof(s)) +#if (defined(__SVR4) && defined(__sun)) +#pragma pack(1) +#else #pragma pack(push,1) +#endif struct PACKED_ATTRIBUTE PackedSockAddr { @@ -280,7 +284,11 @@ struct PACKED_ATTRIBUTE PacketFormatExtensionsV1 { byte extensions[8]; }; +#if (defined(__SVR4) && defined(__sun)) +#pragma pack(0) +#else #pragma pack(pop) +#endif enum { ST_DATA = 0, // Data packet.