forked from mirrors/gecko-dev
Bug 469654 - Windows x64 build support. r=ted
This commit is contained in:
parent
670dd80cf4
commit
3a0c0c3f5d
7 changed files with 96 additions and 30 deletions
|
|
@ -40,11 +40,7 @@
|
|||
#endif
|
||||
|
||||
[xpcom]
|
||||
#ifdef XP_WIN32
|
||||
@BINPATH@/js3250.dll
|
||||
#else
|
||||
@BINPATH@/@DLL_PREFIX@mozjs@DLL_SUFFIX@
|
||||
#endif
|
||||
@BINPATH@/@DLL_PREFIX@plc4@DLL_SUFFIX@
|
||||
@BINPATH@/@DLL_PREFIX@plds4@DLL_SUFFIX@
|
||||
@BINPATH@/@DLL_PREFIX@xpcom@DLL_SUFFIX@
|
||||
|
|
|
|||
|
|
@ -812,5 +812,8 @@ chrome.manifest
|
|||
install.rdf
|
||||
@DLL_PREFIX@jsj@DLL_SUFFIX@
|
||||
#ifdef XP_WIN
|
||||
js3250.dll
|
||||
#endif
|
||||
#ifdef XP_WIN
|
||||
components/brwsrcmp.dll
|
||||
#endif
|
||||
|
|
|
|||
64
configure.in
64
configure.in
|
|
@ -42,6 +42,8 @@ dnl Mac OS X 10.4 support
|
|||
dnl Giorgio Maone <g.maone@informaction.com>
|
||||
dnl MSVC l10n compatible version check
|
||||
dnl Ben Turner <mozilla@songbirdnest.com>
|
||||
dnl Windows x64 support
|
||||
dnl Makoto Kato <m_kato@ga2.so-net.ne.jp>
|
||||
dnl
|
||||
dnl Alternatively, the contents of this file may be used under the terms of
|
||||
dnl either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
|
|
@ -192,7 +194,16 @@ case "$target" in
|
|||
if test -z "$CPP"; then CPP="cl -E -nologo"; fi
|
||||
if test -z "$CXXCPP"; then CXXCPP="cl -TP -E -nologo"; ac_cv_prog_CXXCPP="$CXXCPP"; fi
|
||||
if test -z "$LD"; then LD=link; fi
|
||||
if test -z "$AS"; then AS=ml; fi
|
||||
if test -z "$AS"; then
|
||||
case "${target_cpu}" in
|
||||
i*86)
|
||||
AS=ml;
|
||||
;;
|
||||
x86_64)
|
||||
AS=ml64;
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
if test -z "$MIDL"; then MIDL=midl; fi
|
||||
;;
|
||||
*-darwin*)
|
||||
|
|
@ -639,6 +650,9 @@ case "$target" in
|
|||
AC_MSG_RESULT([none needed])
|
||||
fi
|
||||
;;
|
||||
x86_64-*)
|
||||
MIDL_FLAGS="${MIDL_FLAGS} -env x64"
|
||||
;;
|
||||
*)
|
||||
AC_MSG_RESULT([none needed])
|
||||
;;
|
||||
|
|
@ -1590,7 +1604,7 @@ AC_LANG_SAVE
|
|||
AC_LANG_C
|
||||
AC_MSG_CHECKING(for 64-bit OS)
|
||||
AC_TRY_COMPILE([$configure_static_assert_macros],
|
||||
[CONFIGURE_STATIC_ASSERT(sizeof(long) == 8)],
|
||||
[CONFIGURE_STATIC_ASSERT(sizeof(void*) == 8)],
|
||||
result="yes", result="no")
|
||||
AC_MSG_RESULT("$result")
|
||||
if test "$result" = "yes"; then
|
||||
|
|
@ -1657,6 +1671,12 @@ case "$host" in
|
|||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
case "${host_cpu}" in
|
||||
x86_64)
|
||||
HOST_CFLAGS="$HOST_CFLAGS -D_AMD64_"
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
|
||||
*-darwin*)
|
||||
|
|
@ -2041,7 +2061,7 @@ case "$target" in
|
|||
MOZ_DEBUG_FLAGS='-Zi'
|
||||
MOZ_DEBUG_LDFLAGS='-DEBUG -DEBUGTYPE:CV'
|
||||
MOZ_FIX_LINK_PATHS=
|
||||
MOZ_JS_LIBS='$(LIBXUL_DIST)/lib/js$(MOZ_BITS)$(VERSION_NUMBER).lib'
|
||||
MOZ_JS_LIBS='$(LIBXUL_DIST)/lib/mozjs.lib'
|
||||
OBJ_SUFFIX=obj
|
||||
RANLIB='echo not_ranlib'
|
||||
STRIP='echo not_strip'
|
||||
|
|
@ -2105,7 +2125,7 @@ case "$target" in
|
|||
RCFLAGS='-O coff --use-temp-file'
|
||||
# mingw doesn't require kernel32, user32, and advapi32 explicitly
|
||||
LIBS="$LIBS -lgdi32 -lwinmm -lwsock32"
|
||||
MOZ_JS_LIBS='-L$(LIBXUL_DIST)/lib -ljs$(MOZ_BITS)$(VERSION_NUMBER)'
|
||||
MOZ_JS_LIBS='-L$(LIBXUL_DIST)/lib -lmozjs'
|
||||
MOZ_FIX_LINK_PATHS=
|
||||
DYNAMIC_XPCOM_LIBS='-L$(LIBXUL_DIST)/lib -lxpcom -lxpcom_core'
|
||||
XPCOM_FROZEN_LDOPTS='-L$(LIBXUL_DIST)/lib -lxpcom'
|
||||
|
|
@ -2116,6 +2136,9 @@ case "$target" in
|
|||
HOST_CC='$(CC)'
|
||||
HOST_CXX='$(CXX)'
|
||||
HOST_LD='$(LD)'
|
||||
if test "$AS_BIN"; then
|
||||
AS="$(basename "$AS_BIN")"
|
||||
fi
|
||||
AR='lib -NOLOGO -OUT:"$@"'
|
||||
AR_FLAGS=
|
||||
RANLIB='echo not_ranlib'
|
||||
|
|
@ -2125,6 +2148,7 @@ case "$target" in
|
|||
UNZIP=unzip
|
||||
DOXYGEN=:
|
||||
GARBAGE='$(OBJDIR)/vc20.pdb $(OBJDIR)/vc40.pdb'
|
||||
ASM_SUFFIX=asm
|
||||
OBJ_SUFFIX=obj
|
||||
LIB_SUFFIX=lib
|
||||
DLL_PREFIX=
|
||||
|
|
@ -2145,14 +2169,14 @@ case "$target" in
|
|||
MOZ_DEBUG_LDFLAGS='-DEBUG -DEBUGTYPE:CV'
|
||||
WARNINGS_AS_ERRORS='-WX'
|
||||
MOZ_OPTIMIZE_FLAGS='-O1'
|
||||
MOZ_JS_LIBS='$(LIBXUL_DIST)/lib/js$(MOZ_BITS)$(VERSION_NUMBER).lib'
|
||||
MOZ_JS_LIBS='$(LIBXUL_DIST)/lib/mozjs.lib'
|
||||
MOZ_FIX_LINK_PATHS=
|
||||
DYNAMIC_XPCOM_LIBS='$(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/xpcom_core.lib'
|
||||
XPCOM_FROZEN_LDOPTS='$(LIBXUL_DIST)/lib/xpcom.lib'
|
||||
LIBXUL_LIBS='$(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/xul.lib'
|
||||
MOZ_COMPONENT_NSPR_LIBS='$(NSPR_LIBS)'
|
||||
if test $_MSC_VER -ge 1400; then
|
||||
LDFLAGS="$LDFLAGS -NXCOMPAT -SAFESEH"
|
||||
LDFLAGS="$LDFLAGS -NXCOMPAT"
|
||||
dnl For profile-guided optimization
|
||||
PROFILE_GEN_CFLAGS="-GL"
|
||||
PROFILE_GEN_LDFLAGS="-LTCG:PGINSTRUMENT"
|
||||
|
|
@ -2312,7 +2336,7 @@ case "$target" in
|
|||
;;
|
||||
|
||||
*)
|
||||
AC_CHECK_HEADERS(mmintrin.h oleacc.idl)
|
||||
AC_CHECK_HEADERS(oleacc.idl)
|
||||
|
||||
AC_LANG_SAVE
|
||||
AC_LANG_CPLUSPLUS
|
||||
|
|
@ -2323,6 +2347,14 @@ case "$target" in
|
|||
|
||||
case "$target" in
|
||||
i*86-*)
|
||||
if test "$HAVE_64BIT_OS"; then
|
||||
AC_MSG_ERROR([You are targeting i386 but using the 64-bit compiler.])
|
||||
fi
|
||||
|
||||
if test $_MSC_VER -ge 1400; then
|
||||
LDFLAGS="$LDFLAGS -SAFESEH"
|
||||
fi
|
||||
AC_CHECK_HEADERS(mmintrin.h)
|
||||
AC_DEFINE(_X86_)
|
||||
;;
|
||||
alpha-*)
|
||||
|
|
@ -2331,10 +2363,17 @@ case "$target" in
|
|||
mips-*)
|
||||
AC_DEFINE(_MIPS_)
|
||||
;;
|
||||
x86_64-*)
|
||||
AC_DEFINE(_AMD64_)
|
||||
;;
|
||||
*)
|
||||
AC_DEFINE(_CPU_ARCH_NOT_DEFINED)
|
||||
;;
|
||||
esac
|
||||
|
||||
if test "$HAVE_64BIT_OS"; then
|
||||
AC_DEFINE(_WIN64)
|
||||
fi
|
||||
;;
|
||||
|
||||
*-netbsd*)
|
||||
|
|
@ -6469,13 +6508,22 @@ if test "$MOZ_MEMORY"; then
|
|||
WIN32_CRT_SRC_DIR="$VCINSTALLDIR\crt\src"
|
||||
fi
|
||||
fi
|
||||
dnl cpu check
|
||||
case "${target_cpu}" in
|
||||
i*86)
|
||||
_WIN32_CRT_CPU=intel
|
||||
;;
|
||||
*)
|
||||
AC_MSG_ERROR([--enable-jemalloc not supported on ${target}])
|
||||
;;
|
||||
esac
|
||||
|
||||
if test ! -d "$WIN32_CRT_SRC_DIR"; then
|
||||
AC_MSG_ERROR([Invalid Win32 CRT source directory: ${WIN32_CRT_SRC_DIR}])
|
||||
fi
|
||||
WIN32_CRT_SRC_DIR=`cd "$WIN32_CRT_SRC_DIR" && pwd -W`
|
||||
_objdir_win=`pwd -W`
|
||||
WIN32_CUSTOM_CRT_DIR="$_objdir_win/memory/jemalloc/crtsrc/build/intel"
|
||||
WIN32_CUSTOM_CRT_DIR="$_objdir_win/memory/jemalloc/crtsrc/build/$_WIN32_CRT_CPU"
|
||||
MOZ_MEMORY_LDFLAGS="-MANIFEST:NO -LIBPATH:\"$WIN32_CUSTOM_CRT_DIR\" -NODEFAULTLIB:msvcrt -NODEFAULTLIB:msvcrtd -NODEFAULTLIB:msvcprt -NODEFAULTLIB:msvcprtd -DEFAULTLIB:mozcrt19 -DEFAULTLIB:mozcpp19"
|
||||
dnl Also pass this to NSPR/NSS
|
||||
DLLFLAGS="$DLLFLAGS $MOZ_MEMORY_LDFLAGS"
|
||||
|
|
|
|||
|
|
@ -102,10 +102,6 @@ endif
|
|||
endif
|
||||
|
||||
|
||||
ifeq (,$(filter-out WINNT WINCE,$(OS_ARCH)))
|
||||
LIBRARY_NAME = js$(MOZ_BITS)$(VERSION_NUMBER)
|
||||
endif
|
||||
|
||||
# JavaScript must be built shared, even for static builds, as it is used by
|
||||
# other modules which are always built shared. Failure to do so results in
|
||||
# the js code getting copied into xpinstall and jsd as well as mozilla-bin,
|
||||
|
|
|
|||
|
|
@ -180,7 +180,16 @@ case "$target" in
|
|||
if test -z "$CPP"; then CPP="cl -E -nologo"; fi
|
||||
if test -z "$CXXCPP"; then CXXCPP="cl -TP -E -nologo"; ac_cv_prog_CXXCPP="$CXXCPP"; fi
|
||||
if test -z "$LD"; then LD=link; fi
|
||||
if test -z "$AS"; then AS=ml; fi
|
||||
if test -z "$AS"; then
|
||||
case "${target_cpu}" in
|
||||
i*86)
|
||||
AS=ml;
|
||||
;;
|
||||
x86_64)
|
||||
AS=ml64;
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
if test -z "$MIDL"; then MIDL=midl; fi
|
||||
;;
|
||||
*-darwin*)
|
||||
|
|
@ -1409,7 +1418,7 @@ AC_LANG_SAVE
|
|||
AC_LANG_C
|
||||
AC_MSG_CHECKING(for 64-bit OS)
|
||||
AC_TRY_COMPILE([$configure_static_assert_macros],
|
||||
[CONFIGURE_STATIC_ASSERT(sizeof(long) == 8)],
|
||||
[CONFIGURE_STATIC_ASSERT(sizeof(void*) == 8)],
|
||||
result="yes", result="no")
|
||||
AC_MSG_RESULT("$result")
|
||||
if test "$result" = "yes"; then
|
||||
|
|
@ -1832,7 +1841,7 @@ case "$target" in
|
|||
MOZ_DEBUG_FLAGS='-Zi'
|
||||
MOZ_DEBUG_LDFLAGS='-DEBUG -DEBUGTYPE:CV'
|
||||
MOZ_FIX_LINK_PATHS=
|
||||
MOZ_JS_LIBS='$(libdir)/js$(MOZ_BITS)$(VERSION_NUMBER).lib'
|
||||
MOZ_JS_LIBS='$(libdir)/mozjs.lib'
|
||||
OBJ_SUFFIX=obj
|
||||
RANLIB='echo not_ranlib'
|
||||
STRIP='echo not_strip'
|
||||
|
|
@ -1923,7 +1932,7 @@ case "$target" in
|
|||
RCFLAGS='-O coff --use-temp-file'
|
||||
# mingw doesn't require kernel32, user32, and advapi32 explicitly
|
||||
LIBS="$LIBS -lgdi32 -lwinmm -lwsock32"
|
||||
MOZ_JS_LIBS='-L$(libdir) -ljs$(MOZ_BITS)$(VERSION_NUMBER)'
|
||||
MOZ_JS_LIBS='-L$(libdir) -lmozjs'
|
||||
MOZ_FIX_LINK_PATHS=
|
||||
DYNAMIC_XPCOM_LIBS='-L$(LIBXUL_DIST)/lib -lxpcom -lxpcom_core'
|
||||
XPCOM_FROZEN_LDOPTS='-L$(LIBXUL_DIST)/lib -lxpcom'
|
||||
|
|
@ -1963,14 +1972,14 @@ case "$target" in
|
|||
MOZ_DEBUG_LDFLAGS='-DEBUG -DEBUGTYPE:CV'
|
||||
WARNINGS_AS_ERRORS='-WX'
|
||||
MOZ_OPTIMIZE_FLAGS='-O1'
|
||||
MOZ_JS_LIBS='$(libdir)/js$(MOZ_BITS)$(VERSION_NUMBER).lib'
|
||||
MOZ_JS_LIBS='$(libdir)/mozjs.lib'
|
||||
MOZ_FIX_LINK_PATHS=
|
||||
DYNAMIC_XPCOM_LIBS='$(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/xpcom_core.lib'
|
||||
XPCOM_FROZEN_LDOPTS='$(LIBXUL_DIST)/lib/xpcom.lib'
|
||||
LIBXUL_LIBS='$(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/xul.lib'
|
||||
MOZ_COMPONENT_NSPR_LIBS='$(NSPR_LIBS)'
|
||||
if test $_MSC_VER -ge 1400; then
|
||||
LDFLAGS="$LDFLAGS -NXCOMPAT -SAFESEH"
|
||||
LDFLAGS="$LDFLAGS -NXCOMPAT"
|
||||
dnl For profile-guided optimization
|
||||
PROFILE_GEN_CFLAGS="-GL"
|
||||
PROFILE_GEN_LDFLAGS="-LTCG:PGINSTRUMENT"
|
||||
|
|
@ -2050,7 +2059,7 @@ case "$target" in
|
|||
;;
|
||||
|
||||
*)
|
||||
AC_CHECK_HEADERS(mmintrin.h oleacc.idl)
|
||||
AC_CHECK_HEADERS(oleacc.idl)
|
||||
|
||||
AC_LANG_SAVE
|
||||
AC_LANG_CPLUSPLUS
|
||||
|
|
@ -2061,6 +2070,14 @@ case "$target" in
|
|||
|
||||
case "$target" in
|
||||
i*86-*)
|
||||
if test "$HAVE_64BIT_OS"; then
|
||||
AC_MSG_ERROR([You are targeting i386 but using the 64-bit compiler.])
|
||||
fi
|
||||
|
||||
if test $_MSC_VER -ge 1400; then
|
||||
LDFLAGS="$LDFLAGS -SAFESEH"
|
||||
fi
|
||||
AC_CHECK_HEADERS(mmintrin.h)
|
||||
AC_DEFINE(_X86_)
|
||||
;;
|
||||
alpha-*)
|
||||
|
|
@ -2069,10 +2086,17 @@ case "$target" in
|
|||
mips-*)
|
||||
AC_DEFINE(_MIPS_)
|
||||
;;
|
||||
x86_64-*)
|
||||
AC_DEFINE(_AMD64_)
|
||||
;;
|
||||
*)
|
||||
AC_DEFINE(_CPU_ARCH_NOT_DEFINED)
|
||||
;;
|
||||
esac
|
||||
|
||||
if test "$HAVE_64BIT_OS"; then
|
||||
AC_DEFINE(_WIN64)
|
||||
fi
|
||||
;;
|
||||
|
||||
*-netbsd*)
|
||||
|
|
|
|||
|
|
@ -51,7 +51,11 @@ MOZ_PKG_PLATFORM := $(TARGET_OS)-$(TARGET_CPU)
|
|||
|
||||
# TARGET_OS/TARGET_CPU may be unintuitive, so we hardcode some special formats
|
||||
ifeq ($(OS_ARCH),WINNT)
|
||||
MOZ_PKG_PLATFORM := win$(MOZ_BITS)
|
||||
ifeq ($(TARGET_CPU),x86_64)
|
||||
MOZ_PKG_PLATFORM := win64-$(TARGET_CPU)
|
||||
else
|
||||
MOZ_PKG_PLATFORM := win32
|
||||
endif
|
||||
endif
|
||||
ifeq ($(OS_ARCH),Darwin)
|
||||
MOZ_PKG_PLATFORM := mac
|
||||
|
|
|
|||
|
|
@ -89,14 +89,9 @@ DEPENDENT_LIBS_LIST += \
|
|||
$(LIB_PREFIX)nss3$(DLL_SUFFIX) \
|
||||
$(LIB_PREFIX)ssl3$(DLL_SUFFIX) \
|
||||
$(LIB_PREFIX)smime3$(DLL_SUFFIX) \
|
||||
$(LIB_PREFIX)mozjs$(DLL_SUFFIX) \
|
||||
$(NULL)
|
||||
|
||||
ifeq (,$(filter-out WINNT WINCE,$(OS_ARCH)))
|
||||
DEPENDENT_LIBS_LIST += js$(MOZ_BITS)$(VERSION_NUMBER)$(DLL_SUFFIX)
|
||||
else
|
||||
DEPENDENT_LIBS_LIST += $(LIB_PREFIX)mozjs$(DLL_SUFFIX)
|
||||
endif
|
||||
|
||||
ifeq (bundle,$(MOZ_FS_LAYOUT))
|
||||
EXTRA_DSO_LDOPTS += $(DIST)/bin/XUL
|
||||
DEPENDENT_LIBS_LIST += XUL
|
||||
|
|
|
|||
Loading…
Reference in a new issue