summaryrefslogtreecommitdiff
path: root/win32/win32.h
diff options
context:
space:
mode:
authorDaniel Dragan <bulk88@hotmail.com>2014-01-08 23:44:16 -0500
committerSteve Hay <steve.m.hay@googlemail.com>2014-01-09 21:37:17 +0000
commit8961ec415a480cac831348374bfebace980b0a81 (patch)
treee1ec70d9d1102467878ab8f16d928b650f87d39c /win32/win32.h
parent1a8709f4ae348ec199d2eb28be5d03138c391e47 (diff)
downloadperl-8961ec415a480cac831348374bfebace980b0a81.tar.gz
fix missing _rotl64 symbol on Visual C 2003
Due to a bug in the CRT (msvcr71.dll), these 2 functions are not defined in any lib Perl can use (static link CRTs dont apply, Perl only uses DLL CRTs), but they are available as intrinsics. This solves a link error about missing symbol __rotl64 in hv.obj, from usage in hv_func.h, on 32 bit USE_64_BIT_INT VC 2003 builds. _rotr64 is included for completeness. This fix is filed as [perl #120925].
Diffstat (limited to 'win32/win32.h')
-rw-r--r--win32/win32.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/win32/win32.h b/win32/win32.h
index a521a41a2d..3d1655a929 100644
--- a/win32/win32.h
+++ b/win32/win32.h
@@ -256,6 +256,11 @@ typedef unsigned short mode_t;
#define NAN_COMPARE_BROKEN 1
#endif
+/* on VC2003, msvcrt.lib is missing these symbols */
+#if _MSC_VER >= 1300 && _MSC_VER < 1400
+# pragma intrinsic(_rotl64,_rotr64)
+#endif
+
#endif /* _MSC_VER */
#ifdef __MINGW32__ /* Minimal Gnu-Win32 */