Bug 722933 - add -MACHINE option for link.exe. r=khuey
--- a/config/rules.mk
+++ b/config/rules.mk
@@ -908,17 +908,17 @@ ifdef ENABLE_STRIP
$(STRIP) $@
endif
ifdef MOZ_POST_PROGRAM_COMMAND
$(MOZ_POST_PROGRAM_COMMAND) $@
endif
$(HOST_PROGRAM): $(HOST_PROGOBJS) $(HOST_LIBS_DEPS) $(HOST_EXTRA_DEPS) $(GLOBAL_DEPS)
ifeq (_WINNT,$(GNU_CC)_$(HOST_OS_ARCH))
- $(HOST_LD) -NOLOGO -OUT:$@ -PDB:$(HOST_PDBFILE) $(HOST_OBJS) $(WIN32_EXE_LDFLAGS) $(HOST_LIBS) $(HOST_EXTRA_LIBS)
+ $(HOST_LD) -NOLOGO -OUT:$@ -PDB:$(HOST_PDBFILE) $(HOST_OBJS) $(WIN32_EXE_LDFLAGS) $(HOST_LDFLAGS) $(HOST_LIBS) $(HOST_EXTRA_LIBS)
ifdef MSMANIFEST_TOOL
@if test -f $@.manifest; then \
if test -f "$(srcdir)/$@.manifest"; then \
echo "Embedding manifest from $(srcdir)/$@.manifest and $@.manifest"; \
mt.exe -NOLOGO -MANIFEST "$(win_srcdir)/$@.manifest" $@.manifest -OUTPUTRESOURCE:$@\;1; \
else \
echo "Embedding manifest from $@.manifest"; \
mt.exe -NOLOGO -MANIFEST $@.manifest -OUTPUTRESOURCE:$@\;1; \
--- a/configure.in
+++ b/configure.in
@@ -196,16 +196,21 @@ case "$target" in
AS=ml;
;;
x86_64)
AS=ml64;
;;
esac
fi
if test -z "$MIDL"; then MIDL=midl; fi
+
+ # need override this flag since we don't use $(LDFLAGS) for this.
+ if test -z "$HOST_LDFLAGS" ; then
+ HOST_LDFLAGS=" "
+ fi
;;
*-darwin*)
# we prefer gcc-4.2 over gcc on older darwin, so
# use that specific version if it's available.
MOZ_PATH_PROGS(CC, $CC gcc-4.2 gcc)
MOZ_PATH_PROGS(CXX, $CXX g++-4.2 g++)
;;
esac
@@ -2198,17 +2203,25 @@ case "$host" in
HOST_BIN_SUFFIX=.exe
case "$host" in
*mingw*)
PERL="/bin/sh ${_topsrcdir}/build/msys-perl-wrapper"
;;
esac
case "${host_cpu}" in
+ i*86)
+ if test -n "$_WIN32_MSVC"; then
+ HOST_LDFLAGS="$HOST_LDFLAGS -MACHINE:X86"
+ fi
+ ;;
x86_64)
+ if test -n "$_WIN32_MSVC"; then
+ HOST_LDFLAGS="$HOST_LDFLAGS -MACHINE:X64"
+ fi
HOST_CFLAGS="$HOST_CFLAGS -D_AMD64_"
;;
esac
;;
*-darwin*)
HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX -DXP_MACOSX -DNO_X11"
HOST_NSPR_MDCPUCFG='\"md/_darwin.cfg\"'
@@ -2677,22 +2690,26 @@ ia64*-hpux*)
LDFLAGS="$LDFLAGS -SAFESEH"
fi
if test -n "$GNU_CC"; then
CFLAGS="$CFLAGS -mstackrealign -fno-keep-inline-dllexport"
CXXFLAGS="$CXXFLAGS -mstackrealign -fno-keep-inline-dllexport"
else
AC_DEFINE(HAVE_STDCALL)
+ DSO_LDOPTS="$DSO_LDOPTS -MACHINE:X86"
fi
MOZ_CHECK_HEADERS(mmintrin.h)
AC_DEFINE(_X86_)
;;
x86_64-*)
+ if test -n "$_WIN32_MSVC"; then
+ DSO_LDOPTS="$DSO_LDOPTS -MACHINE:X64"
+ fi
AC_DEFINE(_AMD64_)
;;
*)
AC_DEFINE(_CPU_ARCH_NOT_DEFINED)
;;
esac
if test "$HAVE_64BIT_OS"; then
--- a/js/src/config/rules.mk
+++ b/js/src/config/rules.mk
@@ -908,17 +908,17 @@ ifdef ENABLE_STRIP
$(STRIP) $@
endif
ifdef MOZ_POST_PROGRAM_COMMAND
$(MOZ_POST_PROGRAM_COMMAND) $@
endif
$(HOST_PROGRAM): $(HOST_PROGOBJS) $(HOST_LIBS_DEPS) $(HOST_EXTRA_DEPS) $(GLOBAL_DEPS)
ifeq (_WINNT,$(GNU_CC)_$(HOST_OS_ARCH))
- $(HOST_LD) -NOLOGO -OUT:$@ -PDB:$(HOST_PDBFILE) $(HOST_OBJS) $(WIN32_EXE_LDFLAGS) $(HOST_LIBS) $(HOST_EXTRA_LIBS)
+ $(HOST_LD) -NOLOGO -OUT:$@ -PDB:$(HOST_PDBFILE) $(HOST_OBJS) $(WIN32_EXE_LDFLAGS) $(HOST_LDFLAGS) $(HOST_LIBS) $(HOST_EXTRA_LIBS)
ifdef MSMANIFEST_TOOL
@if test -f $@.manifest; then \
if test -f "$(srcdir)/$@.manifest"; then \
echo "Embedding manifest from $(srcdir)/$@.manifest and $@.manifest"; \
mt.exe -NOLOGO -MANIFEST "$(win_srcdir)/$@.manifest" $@.manifest -OUTPUTRESOURCE:$@\;1; \
else \
echo "Embedding manifest from $@.manifest"; \
mt.exe -NOLOGO -MANIFEST $@.manifest -OUTPUTRESOURCE:$@\;1; \
--- a/js/src/configure.in
+++ b/js/src/configure.in
@@ -189,16 +189,21 @@ case "$target" in
AS=ml;
;;
x86_64)
AS=ml64;
;;
esac
fi
if test -z "$MIDL"; then MIDL=midl; fi
+
+ # need override this flag since we don't use $(LDFLAGS) for this.
+ if test -z "$HOST_LDFLAGS" ; then
+ HOST_LDFLAGS=" "
+ fi
;;
*-darwin*)
# prefer gcc-4.2 to default cc on older xcode
MOZ_PATH_PROGS(CC, $CC gcc-4.2 gcc)
MOZ_PATH_PROGS(CXX, $CXX g++-4.2 g++)
;;
esac
fi
@@ -2039,17 +2044,25 @@ case "$host" in
HOST_BIN_SUFFIX=.exe
case "$host" in
*mingw*)
PERL="/bin/sh ${_topsrcdir}/build/msys-perl-wrapper"
;;
esac
case "${host_cpu}" in
+ i*86)
+ if test -n "$_WIN32_MSVC"; then
+ HOST_LDFLAGS="$HOST_LDFLAGS -MACHINE:X86"
+ fi
+ ;;
x86_64)
+ if test -n "$_WIN32_MSVC"; then
+ HOST_LDFLAGS="$HOST_LDFLAGS -MACHINE:X64"
+ fi
HOST_CFLAGS="$HOST_CFLAGS -D_AMD64_"
;;
esac
;;
*-darwin*)
HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX -DXP_MACOSX -DNO_X11"
HOST_NSPR_MDCPUCFG='\"md/_darwin.cfg\"'
@@ -2486,22 +2499,27 @@ ia64*-hpux*)
if test $_MSC_VER -ge 1400; then
LDFLAGS="$LDFLAGS -SAFESEH"
fi
if test -n "$GNU_CC"; then
CFLAGS="$CFLAGS -mstackrealign -fno-keep-inline-dllexport"
CXXFLAGS="$CXXFLAGS -mstackrealign -fno-keep-inline-dllexport"
+ else
+ DSO_LDOPTS="$DSO_LDOPTS -MACHINE:X86"
fi
MOZ_CHECK_HEADERS(mmintrin.h)
AC_DEFINE(_X86_)
;;
x86_64-*)
+ if test -n "$_WIN32_MSVC"; then
+ DSO_LDOPTS="$DSO_LDOPTS -MACHINE:X64"
+ fi
AC_DEFINE(_AMD64_)
;;
*)
AC_DEFINE(_CPU_ARCH_NOT_DEFINED)
;;
esac
if test "$HAVE_64BIT_OS"; then