64bit bitfields and sun solaris 8

Matthieu Patou mat at samba.org
Thu Oct 21 15:41:26 MDT 2010


Hello love,

Metze pointed me a discussion that you have on heimdal-discuss about sun 
studio 11 and the lack of support for 64bitfields.

My solution for this pb was to add this to
/source4/heimdal/lib/hcrypto/sha512.c

+#if defined HAVE_BIG_BITFIELD
  struct x64{
      uint64_t a:64;
      uint64_t b:64;
  };
+#else
+struct x64{
+    uint64_t a;
+    uint64_t b;
+};
+#endif

and add a test to our configure to see if the compiler support 64bitfields:
+    conf.CHECK_CODE('''
+                        struct x64{
+                            uint64_t a:64;
+                            uint64_t b:64;
+                        };
+                        ''',
+                        msg = "Checking if support bitfield longer than 
sizeof(int)",
+                        define = 'HAVE_BIG_BITFIELD',
+                        )

So in most of the cases on most plateforms this will lead to the use of 
64bitfields so far we have the pb only on sun sparc with sun studio (not 
with gcc).

Given the fact that the compiler is "sun studio" we cas expect the case 
to be limited to sparc (big endian), in theory we can have the problem 
as well on x86/x64 with sun compiler but I tend to think that this case 
will be pretty rare or non existant.

What do you think on my solution ?

Matthieu

-- 
Matthieu Patou
Samba Team        http://samba.org



More information about the samba-technical mailing list