summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjulien.pierre.boogz%sun.com <devnull@localhost>2009-03-26 02:46:03 +0000
committerjulien.pierre.boogz%sun.com <devnull@localhost>2009-03-26 02:46:03 +0000
commitf04dce216cb4a6f2c66b54e788d725051d3b91b4 (patch)
tree55ee76307924c2785de8981778bd89378f5bae5f
parent958996bba46647b43d7541c755cf3ab8cfcfd6b1 (diff)
downloadnss-hg-f04dce216cb4a6f2c66b54e788d725051d3b91b4.tar.gz
Fix for bug 431958. Define _X86_ on Win64. r=nelson
-rw-r--r--security/nss/lib/freebl/Makefile9
-rw-r--r--security/nss/lib/freebl/win_rand.c4
2 files changed, 8 insertions, 5 deletions
diff --git a/security/nss/lib/freebl/Makefile b/security/nss/lib/freebl/Makefile
index 82014a961..19d959111 100644
--- a/security/nss/lib/freebl/Makefile
+++ b/security/nss/lib/freebl/Makefile
@@ -77,13 +77,12 @@ endif
ifdef FREEBL_NO_DEPEND
DEFINES += -DFREEBL_NO_DEPEND
endif
-# some code wants _X86_ defined for intel CPUs.
-# coreconf does this for windows, but not for Linux, FreeBSD, etc.
-ifeq (,$(filter-out x86 x86_64,$(CPU_ARCH)))
-ifneq (,$(filter-out WIN%,$(OS_TARGET)))
+# some freebl code wants _X86_ defined for Intel CPUs, both 32 and 64 bits.
+# coreconf does not do this consistently between platforms. It does for
+# Win32, but not for Win64, Solaris x64, FreeBSD, etc.
+ifeq (,$(filter-out x386 x86 x86_64,$(CPU_ARCH)))
DEFINES += -D_X86_
endif
-endif
ifeq ($(OS_TARGET),OSF1)
DEFINES += -DMP_ASSEMBLY_MULTIPLY -DMP_NO_MP_WORD
diff --git a/security/nss/lib/freebl/win_rand.c b/security/nss/lib/freebl/win_rand.c
index f53796947..763a7938c 100644
--- a/security/nss/lib/freebl/win_rand.c
+++ b/security/nss/lib/freebl/win_rand.c
@@ -34,6 +34,10 @@
*
* ***** END LICENSE BLOCK ***** */
+#if defined(_WIN32) && defined(NSS_USE_64)
+#undef _X86_
+#endif
+
#include "secrng.h"
#include "secerr.h"