[tor-commits] [tor-browser/tor-browser-17.0.6esr-2] Fix build issues with MinGW.

mikeperry at torproject.org mikeperry at torproject.org
Thu May 16 23:09:18 UTC 2013


commit 76a007d7babf0db5180c880088de1e53f3b7dfb4
Author: Mike Perry <mikeperry-git at torproject.org>
Date:   Mon Apr 29 23:52:48 2013 -0700

    Fix build issues with MinGW.
    
    The following patches were applied:
    https://hg.mozilla.org/mozilla-central/rev/c581bb3ceac5
    https://hg.mozilla.org/mozilla-central/rev/b0c6a324e72f
    https://hg.mozilla.org/mozilla-central/rev/305ce1b73071
    
    Still need (but conflicts prevent us from using them):
    https://hg.mozilla.org/mozilla-central/rev/ddabcd6f9491
    https://hg.mozilla.org/mozilla-central/rev/476e02f9a619
---
 accessible/public/ia2/Makefile.in                  |   10 +++++-----
 accessible/public/msaa/Makefile.in                 |    8 ++++----
 accessible/public/msaa/nsIWinAccessNode.idl        |    2 +-
 accessible/src/msaa/AccessibleWrap.cpp             |    2 +-
 accessible/src/msaa/HyperTextAccessibleWrap.h      |    2 +-
 accessible/src/msaa/nsAccessNodeWrap.h             |    4 ++--
 browser/installer/package-manifest.in              |    6 +++---
 configure.in                                       |   15 ++++++++++++++-
 gfx/angle/Makefile.in                              |    4 ++++
 gfx/angle/src/libEGL/Makefile.in                   |   12 +++++++++++-
 gfx/angle/src/libGLESv2/Makefile.in                |   16 ++++++++++++++++
 gfx/angle/src/libGLESv2/libGLESv2.def              |    5 +++++
 gfx/layers/d3d9/LayerManagerD3D9.cpp               |    1 +
 js/src/configure.in                                |    1 +
 .../src/common/windows/guid_string.h               |    2 +-
 widget/windows/nsWindow.h                          |    2 +-
 16 files changed, 71 insertions(+), 21 deletions(-)

diff --git a/accessible/public/ia2/Makefile.in b/accessible/public/ia2/Makefile.in
index 504c2c0..32e272a 100644
--- a/accessible/public/ia2/Makefile.in
+++ b/accessible/public/ia2/Makefile.in
@@ -73,11 +73,11 @@ EMBED_MANIFEST_AT = 2
 include $(topsrcdir)/config/rules.mk
 
 OS_LIBS = \
-  kernel32.lib \
-  rpcns4.lib \
-  rpcrt4.lib \
-  ole32.lib \
-  oleaut32.lib \
+  -lkernel32 \
+  -lrpcns4 \
+  -lrpcrt4 \
+  -lole32 \
+  -loleaut32 \
   $(NULL)
 
 # generate list of to-be-generated files that are missing
diff --git a/accessible/public/msaa/Makefile.in b/accessible/public/msaa/Makefile.in
index 2055ad2..df60e49 100644
--- a/accessible/public/msaa/Makefile.in
+++ b/accessible/public/msaa/Makefile.in
@@ -52,10 +52,10 @@ MIDL_GENERATED_FILES = \
 SRCDIR_CSRCS	= $(addprefix $(srcdir)/,$(CSRCS))
 
 OS_LIBS = \
-	kernel32.lib \
-	rpcns4.lib \
-	rpcrt4.lib \
-	oleaut32.lib \
+	-lkernel32 \
+	-lrpcns4 \
+	-lrpcrt4 \
+	-loleaut32 \
 	$(NULL)
 
 $(MIDL_GENERATED_FILES): done_gen
diff --git a/accessible/public/msaa/nsIWinAccessNode.idl b/accessible/public/msaa/nsIWinAccessNode.idl
index 133d784..e129030 100644
--- a/accessible/public/msaa/nsIWinAccessNode.idl
+++ b/accessible/public/msaa/nsIWinAccessNode.idl
@@ -7,7 +7,7 @@
 #include "nsISupports.idl"
 
 %{C++
-#include "Guiddef.h"
+#include "guiddef.h"
 %}
 
 [ref] native MSCOMIIDRef(IID);
diff --git a/accessible/src/msaa/AccessibleWrap.cpp b/accessible/src/msaa/AccessibleWrap.cpp
index 08470c9..a3fad2c 100644
--- a/accessible/src/msaa/AccessibleWrap.cpp
+++ b/accessible/src/msaa/AccessibleWrap.cpp
@@ -40,7 +40,7 @@
 #include "Accessible2_i.c"
 #include "AccessibleRole.h"
 #include "AccessibleStates.h"
-#include "OLEACC.H"
+#include "oleacc.h"
 
 using namespace mozilla;
 using namespace mozilla::a11y;
diff --git a/accessible/src/msaa/HyperTextAccessibleWrap.h b/accessible/src/msaa/HyperTextAccessibleWrap.h
index 9e87071..1699f6c 100644
--- a/accessible/src/msaa/HyperTextAccessibleWrap.h
+++ b/accessible/src/msaa/HyperTextAccessibleWrap.h
@@ -10,7 +10,7 @@
 
 #include "HyperTextAccessible.h"
 #include "ia2AccessibleEditableText.h"
-#include "ia2AccessibleHyperText.h"
+#include "ia2AccessibleHypertext.h"
 
 class HyperTextAccessibleWrap : public HyperTextAccessible,
                                 public ia2AccessibleHypertext,
diff --git a/accessible/src/msaa/nsAccessNodeWrap.h b/accessible/src/msaa/nsAccessNodeWrap.h
index 33a4ca9..16749a8 100644
--- a/accessible/src/msaa/nsAccessNodeWrap.h
+++ b/accessible/src/msaa/nsAccessNodeWrap.h
@@ -25,8 +25,8 @@
 #include "nsIDOMElement.h"
 #include "nsIContent.h"
 #include "nsAccessNode.h"
-#include "OLEIDL.H"
-#include "OLEACC.H"
+#include "oleidl.h"
+#include "oleacc.h"
 #include <winuser.h>
 #ifdef MOZ_CRASHREPORTER
 #include "nsICrashReporter.h"
diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
index 391e093..7b24967 100644
--- a/browser/installer/package-manifest.in
+++ b/browser/installer/package-manifest.in
@@ -40,9 +40,9 @@
 @BINPATH@/hyphenation/*
 @BINPATH@/@PREF_DIR@/firefox-l10n.js
 @BINPATH@/searchplugins/*
-#ifdef XP_WIN32
- at BINPATH@/uninstall/helper.exe
-#endif
+;#ifdef XP_WIN32
+;@BINPATH@/uninstall/helper.exe
+;#endif
 #ifdef MOZ_UPDATER
 @BINPATH@/update.locale
 @BINPATH@/updater.ini
diff --git a/configure.in b/configure.in
index 63c7bdb..988741e 100644
--- a/configure.in
+++ b/configure.in
@@ -701,6 +701,18 @@ EOF
             AC_MSG_ERROR([windres version $WINDRES_VERSION or higher is required to build.])
         fi
 
+        AC_CHECK_PROGS(MIDL, $target-widl widl)
+        if test -n "$MIDL"; then
+            case "$target" in
+            i*86-*)
+                MIDL_FLAGS="$MIDL_FLAGS --win32 -m32"
+                ;;
+            x86_64-*)
+                MIDL_FLAGS="$MIDL_FLAGS --win64 -m64"
+                ;;
+            esac
+        fi
+    
         MOZ_WINSDK_MAXVER=0x06020000
     fi # !GNU_CC
 
@@ -2240,6 +2252,7 @@ ia64*-hpux*)
         if test -n "$GNU_CC"; then
             CFLAGS="$CFLAGS -mstackrealign -fno-keep-inline-dllexport"
             CXXFLAGS="$CXXFLAGS -mstackrealign -fno-keep-inline-dllexport"
+            LDFLAGS="$LDFLAGS -Wl,--enable-stdcall-fixup -Wl,--large-address-aware"
         else
             AC_DEFINE(HAVE_STDCALL)
             DSO_LDOPTS="$DSO_LDOPTS -MACHINE:X86"
@@ -5705,7 +5718,7 @@ if test -n "$MOZ_WEBGL_DISABLED"; then
   MOZ_ANGLE_RENDERER=
 fi
 
-if test -n "$MOZ_ANGLE_RENDERER"; then
+if test -n "$MOZ_ANGLE_RENDERER" -a -z "$CROSS_COMPILE"; then
   # Get the SDK path from the registry.
   # First try to get the June 2010 SDK
   MOZ_DIRECTX_SDK_REG_KEY=`reg query 'HKLM\Software\Microsoft\DirectX' //s | grep 'Microsoft DirectX SDK (June 2010)' | head -n 1`
diff --git a/gfx/angle/Makefile.in b/gfx/angle/Makefile.in
index 981579c..78333c3 100644
--- a/gfx/angle/Makefile.in
+++ b/gfx/angle/Makefile.in
@@ -125,8 +125,12 @@ ifdef MOZ_ANGLE_RENDERER
 DIRS = src/libGLESv2 src/libEGL
 
 libs::
+ifdef MOZ_D3DX9_CAB
 	expand "$(MOZ_D3DX9_CAB)" -F:$(MOZ_D3DX9_DLL) "$(DIST)/bin"
+endif
+ifdef MOZ_D3DCOMPILER_CAB
 	expand "$(MOZ_D3DCOMPILER_CAB)" -F:$(MOZ_D3DCOMPILER_DLL) "$(DIST)/bin"
+endif
 
 endif
 
diff --git a/gfx/angle/src/libEGL/Makefile.in b/gfx/angle/src/libEGL/Makefile.in
index b643f1a..3f10262 100644
--- a/gfx/angle/src/libEGL/Makefile.in
+++ b/gfx/angle/src/libEGL/Makefile.in
@@ -68,9 +68,19 @@ RCFILE = $(srcdir)/libEGL.rc
 
 include $(topsrcdir)/config/rules.mk
 
+OS_LIBS += $(call EXPAND_LIBNAME,dwmapi)
+
+ifdef GNU_CC
+
+OS_CXXFLAGS := $(filter-out -fno-exceptions,$(OS_CXXFLAGS)) -fexceptions
+OS_LIBS += -ld3d9 -ldxguid -llibGLESv2
+
+else
+
 EXTRA_DSO_LDOPTS = "$(MOZ_DIRECTX_SDK_PATH)/lib/$(MOZ_DIRECTX_SDK_CPU_SUFFIX)/d3d9.lib" \
                    "$(MOZ_DIRECTX_SDK_PATH)/lib/$(MOZ_DIRECTX_SDK_CPU_SUFFIX)/dxguid.lib" \
 		   "$(DIST)/lib/libGLESv2.lib" \
-		   dwmapi.lib \
 		   delayimp.lib \
 		   /delayload:dwmapi.dll
+
+endif
diff --git a/gfx/angle/src/libGLESv2/Makefile.in b/gfx/angle/src/libGLESv2/Makefile.in
index 67bbd78..9a626b2 100644
--- a/gfx/angle/src/libGLESv2/Makefile.in
+++ b/gfx/angle/src/libGLESv2/Makefile.in
@@ -165,6 +165,22 @@ RCFILE = $(srcdir)/libGLESv2.rc
 
 include $(topsrcdir)/config/rules.mk
 
+ifdef GNU_CC
+
+TextureSSE2.$(OBJ_SUFFIX): CXXFLAGS+=-msse2
+
+OS_CXXFLAGS := $(filter-out -fno-exceptions,$(OS_CXXFLAGS)) -fexceptions
+OS_LIBS += -ld3d9
+ifdef MOZ_D3DX9_VERSION
+OS_LIBS += -ld3dx9_$(MOZ_D3DX9_VERSION) -ld3dcompiler_$(MOZ_D3DX9_VERSION)
+else
+OS_LIBS += -ld3dx9 -ld3dcompiler
+endif
+
+else
+
 EXTRA_DSO_LDOPTS = "$(MOZ_DIRECTX_SDK_PATH)/lib/$(MOZ_DIRECTX_SDK_CPU_SUFFIX)/d3d9.lib" \
                    "$(MOZ_DIRECTX_SDK_PATH)/lib/$(MOZ_DIRECTX_SDK_CPU_SUFFIX)/d3dx9.lib" \
                    "$(MOZ_DIRECTX_SDK_PATH)/lib/$(MOZ_DIRECTX_SDK_CPU_SUFFIX)/D3DCompiler.lib"
+
+endif
diff --git a/gfx/angle/src/libGLESv2/libGLESv2.def b/gfx/angle/src/libGLESv2/libGLESv2.def
index 5f935c3..2324dcb 100644
--- a/gfx/angle/src/libGLESv2/libGLESv2.def
+++ b/gfx/angle/src/libGLESv2/libGLESv2.def
@@ -180,3 +180,8 @@ EXPORTS
     glGetCurrentContext             @147 NONAME
     glGetProcAddress                @148 NONAME
     glBindTexImage                  @158 NONAME
+
+    ; GCC has problems with linking to undecored stdcall functions,
+    ; so we explicitly add aliases for APIs used by EGL
+    glGetProcAddress at 4=glGetProcAddress
+    glBindTexImage at 4=glBindTexImage
diff --git a/gfx/layers/d3d9/LayerManagerD3D9.cpp b/gfx/layers/d3d9/LayerManagerD3D9.cpp
index fcda692..c3f85e5 100644
--- a/gfx/layers/d3d9/LayerManagerD3D9.cpp
+++ b/gfx/layers/d3d9/LayerManagerD3D9.cpp
@@ -16,6 +16,7 @@
 #include "nsServiceManagerUtils.h"
 #include "gfxFailure.h"
 #include "mozilla/Preferences.h"
+#include "nsServiceManagerUtils.h"
 
 #include "gfxCrashReporterUtils.h"
 
diff --git a/js/src/configure.in b/js/src/configure.in
index e5962d6..bca3ff3 100644
--- a/js/src/configure.in
+++ b/js/src/configure.in
@@ -1871,6 +1871,7 @@ ia64*-hpux*)
         if test -n "$GNU_CC"; then
             CFLAGS="$CFLAGS -mstackrealign -fno-keep-inline-dllexport"
             CXXFLAGS="$CXXFLAGS -mstackrealign -fno-keep-inline-dllexport"
+            LDFLAGS="$LDFLAGS -Wl,--large-address-aware"
         else
             DSO_LDOPTS="$DSO_LDOPTS -MACHINE:X86"
         fi
diff --git a/toolkit/crashreporter/google-breakpad/src/common/windows/guid_string.h b/toolkit/crashreporter/google-breakpad/src/common/windows/guid_string.h
index f8aa8a2..57716e5 100644
--- a/toolkit/crashreporter/google-breakpad/src/common/windows/guid_string.h
+++ b/toolkit/crashreporter/google-breakpad/src/common/windows/guid_string.h
@@ -32,7 +32,7 @@
 #ifndef COMMON_WINDOWS_GUID_STRING_H__
 #define COMMON_WINDOWS_GUID_STRING_H__
 
-#include <Guiddef.h>
+#include <guiddef.h>
 
 #include <string>
 
diff --git a/widget/windows/nsWindow.h b/widget/windows/nsWindow.h
index dde77bf..32af401 100644
--- a/widget/windows/nsWindow.h
+++ b/widget/windows/nsWindow.h
@@ -33,7 +33,7 @@
 #include "TaskbarWindowPreview.h"
 
 #ifdef ACCESSIBILITY
-#include "OLEACC.H"
+#include "oleacc.h"
 #include "mozilla/a11y/Accessible.h"
 #endif
 





More information about the tor-commits mailing list