summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Dragan <bulk88@hotmail.com>2014-01-08 23:44:16 -0500
committerRicardo Signes <rjbs@cpan.org>2014-07-11 21:20:13 -0400
commit2b76cf41a496dbb4d2b2ccf00c221463f3dbf5b7 (patch)
tree6b35e2c8018ca505662ee20b7fd82c678dede27c
parentc38e89e4398a95d797a67f51dca97f55b285b9f6 (diff)
downloadperl-2b76cf41a496dbb4d2b2ccf00c221463f3dbf5b7.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]. (cherry picked from commit 8961ec415a480cac831348374bfebace980b0a81)
-rw-r--r--win32/win32.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/win32/win32.h b/win32/win32.h
index 3065867bd2..92f80910f2 100644
--- a/win32/win32.h
+++ b/win32/win32.h
@@ -251,6 +251,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 */