Support building floating-point facilities on FreeBSD 9.2 in 32-bit mode
authorViktor Kutuzov <vkutuzov@accesssoftek.com>
Tue, 8 Jul 2014 08:52:57 +0000 (08:52 +0000)
committerViktor Kutuzov <vkutuzov@accesssoftek.com>
Tue, 8 Jul 2014 08:52:57 +0000 (08:52 +0000)
Differential Revision: http://reviews.llvm.org/D3909

llvm-svn: 212518

compiler-rt/lib/builtins/fp_lib.h

index 7b90518..faebb99 100644 (file)
 #include <limits.h>
 #include "int_lib.h"
 
+// x86_64 FreeBSD prior v9.3 define fixed-width types incorrectly in
+// 32-bit mode.
+#if defined(__FreeBSD__) && defined(__i386__)
+# include <sys/param.h>
+# if __FreeBSD_version < 903000  // v9.3
+#  define uint64_t unsigned long long
+#  define int64_t long long
+#  undef UINT64_C
+#  define UINT64_C(c) (c ## ULL)
+# endif
+#endif
+
 #if defined SINGLE_PRECISION
 
 typedef uint32_t rep_t;