Bug 1460620 - Have MinGW look for d3dcompiler_47.dll (so it will be packaged) r=froydnj
authorTom Ritter <tom@mozilla.com>
Tue, 08 Jan 2019 15:16:39 -0600
changeset 453096 763f90cc2fac67d6c5598df0fc3af3a335680382
parent 453095 eec2f1188f37b7bd2433e24c8c5edd7fbb5381ab
child 453097 998ab57c13668895fc962260071b714cce36efdd
push id35345
push usershindli@mozilla.com
push dateWed, 09 Jan 2019 21:42:48 +0000
treeherdermozilla-central@8e746f670f43 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersfroydnj
bugs1460620
milestone66.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1460620 - Have MinGW look for d3dcompiler_47.dll (so it will be packaged) r=froydnj
old-configure.in
toolkit/moz.configure
--- a/old-configure.in
+++ b/old-configure.in
@@ -2207,22 +2207,27 @@ if test -n "$MOZ_ANGLE_RENDERER"; then
     AC_MSG_ERROR([Couldn't determine MOZ_D3D_CPU_SUFFIX.])
   fi
 
   ######################################
   # Find _46+ for use by Vista+.
 
   # Find a D3D compiler DLL in a Windows SDK.
   MOZ_D3DCOMPILER_VISTA_DLL=
-  case "$MOZ_WINSDK_MAXVER" in
-  0x0603*|0x0A00*)
+  if test "$OS_ARCH" != "$HOST_OS_ARCH"; then
     MOZ_D3DCOMPILER_VISTA_DLL=d3dcompiler_47.dll
-    AC_MSG_RESULT([Found D3D compiler in Windows SDK.])
-  ;;
-  esac
+    AC_MSG_RESULT([Assuming D3D compiler will be in fxc2.])
+  else
+    case "$MOZ_WINSDK_MAXVER" in
+    0x0603*|0x0A00*)
+      MOZ_D3DCOMPILER_VISTA_DLL=d3dcompiler_47.dll
+      AC_MSG_RESULT([Found D3D compiler in Windows SDK.])
+    ;;
+    esac
+  fi
 
   if test -n "$MOZ_D3DCOMPILER_VISTA_DLL"; then
     # We have a name, now track down the path.
     if test -n "$WINDOWSSDKDIR"; then
       MOZ_D3DCOMPILER_VISTA_DLL_PATH="$WINDOWSSDKDIR/Redist/D3D/$MOZ_D3D_CPU_SUFFIX/$MOZ_D3DCOMPILER_VISTA_DLL"
       if test -f "$MOZ_D3DCOMPILER_VISTA_DLL_PATH"; then
         AC_MSG_RESULT([Found MOZ_D3DCOMPILER_VISTA_DLL_PATH: $MOZ_D3DCOMPILER_VISTA_DLL_PATH])
         MOZ_HAS_WINSDK_WITH_D3D=1
@@ -2230,23 +2235,30 @@ if test -n "$MOZ_ANGLE_RENDERER"; then
         AC_MSG_RESULT([AArch64 Windows includes d3dcompiler DLLs])
         MOZ_D3DCOMPILER_VISTA_DLL_PATH=
       else
         AC_MSG_RESULT([MOZ_D3DCOMPILER_VISTA_DLL_PATH doesn't exist: $MOZ_D3DCOMPILER_VISTA_DLL_PATH])
         AC_MSG_ERROR([Windows SDK at "$WINDOWSSDKDIR" appears broken. Try updating to MozillaBuild 1.9 final or higher.])
         MOZ_D3DCOMPILER_VISTA_DLL_PATH=
       fi
     else
-      AC_MSG_RESULT([Windows SDK not found.])
+      MOZ_D3DCOMPILER_VISTA_DLL_PATH="$(dirname $FXC)/$MOZ_D3DCOMPILER_VISTA_DLL"
+      if test -f "$MOZ_D3DCOMPILER_VISTA_DLL_PATH"; then
+        AC_MSG_RESULT([Found MOZ_D3DCOMPILER_VISTA_DLL_PATH: $MOZ_D3DCOMPILER_VISTA_DLL_PATH])
+      else
+        AC_MSG_RESULT([MOZ_D3DCOMPILER_VISTA_DLL_PATH doesn't exist: $MOZ_D3DCOMPILER_VISTA_DLL_PATH])
+        AC_MSG_ERROR([fxc2 or "$MOZ_D3DCOMPILER_VISTA_DLL" seem to be missing from the expected location.])
+        MOZ_D3DCOMPILER_VISTA_DLL_PATH=
+      fi
     fi
   else
     if test "$OS_ARCH" = "$HOST_OS_ARCH"; then
       AC_MSG_ERROR([Couldn't find Windows SDK 8.1 or higher needed for ANGLE.])
     else
-      AC_MSG_RESULT([Windows SDK not needed for ANGLE in Linux MinGW build.])
+      AC_MSG_ERROR([We should need "$MOZ_D3DCOMPILER_VISTA_DLL" for ANGLE in Linux MinGW build, but we didn't look for it.])
     fi
   fi
 
   if test -z "$MOZ_D3DCOMPILER_VISTA_DLL_PATH"; then
     MOZ_D3DCOMPILER_VISTA_DLL=
   fi
 
   # On mingw, check if headers are provided by toolchain.
@@ -2258,20 +2270,18 @@ if test -n "$MOZ_ANGLE_RENDERER"; then
   # Check that we found what we needed.
   MOZ_FOUND_A_D3D_COMPILER=
 
   if test -n "$MOZ_D3DCOMPILER_VISTA_DLL"; then
     MOZ_FOUND_A_D3D_COMPILER=1
     AC_MSG_RESULT([Found d3dcompiler DLL for Vista+: $MOZ_D3DCOMPILER_VISTA_DLL])
   fi
 
-  if test -z "$CROSS_COMPILE"; then
-    if test -z "MOZ_FOUND_A_D3D_COMPILER"; then
-      AC_MSG_ERROR([Couldn't find an acceptable D3D compiler DLL.])
-    fi
+  if test -z "MOZ_FOUND_A_D3D_COMPILER"; then
+    AC_MSG_ERROR([Couldn't find an acceptable D3D compiler DLL.])
   fi
 fi # MOZ_ANGLE_RENDERER
 
 dnl ========================================================
 dnl Gamepad support
 dnl ========================================================
 
 dnl Moved gamepad platform check to moz.build, linux header check still needed here.
--- a/toolkit/moz.configure
+++ b/toolkit/moz.configure
@@ -1288,16 +1288,17 @@ set_config('MOZ_LAYOUT_DEBUGGER', depend
 
 
 # Shader Compiler for Windows (and MinGW Cross Compile)
 # ==============================================================
 
 with only_when(compile_environment):
     fxc = check_prog('FXC', ('fxc.exe', 'fxc2.exe'), when=depends(target)
                      (lambda t: t.kernel == 'WINNT'))
+    add_old_configure_assignment('FXC', fxc)
     wine = check_prog('WINE', ['wine'], when=depends(target, host)
                       (lambda t, h: t.kernel == 'WINNT' and h.kernel == 'Linux'))
 
 
 # VPX
 # ===
 
 with only_when(compile_environment):