Cross Compile Firefox on Linux using Mingw

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Cross Compile Firefox on Linux using Mingw

osbert.morris
Hello everyone,

I am running into the following error when trying to cross-compile a Windows x64 build on a Linux OS.


22:00.99 liblayout_xul_grid.a.desc
22:01.31 nsPresArena.o
22:01.32 nsRefreshDriver.o
22:09.60 WindowsUIUtils.o
22:14.74 Unified_cpp_layout_base0.o
22:15.21 liblayout_build.a.desc
22:15.53 Unified_cpp_memory_volatile0.o
22:15.73 LayerTreeInvalidation.o
22:17.99 libmemory_volatile.a.desc
22:18.17 nsBidiKeyboard.o
22:19.90 /usr/local/gematik/firefox_builds/firefox-latest/mozilla-central/widget/windows/WindowsUIUtils.cpp:23:39: fatal error: windows.ui.viewmanagement.h: No such file or directory
22:19.92  #include <windows.ui.viewmanagement.h>
22:19.95                                        ^
22:19.96 compilation terminated.
22:19.99
22:20.01 In the directory  /usr/local/gematik/firefox_builds/firefox-latest/mozilla-mingw64/widget/windows
22:20.02 The following command failed to execute properly:
22:20.03 x86_64-w64-mingw32-g++ -mwindows -o WindowsUIUtils.o -c -DDEBUG=1 -DTRACING=1 -DWIN32_LEAN_AND_MEAN -D_WIN32 -DWIN32 -D_CRT_RAND_S -DCERT_CHAIN_PARA_HAS_EXTRA_FIELDS -DOS_WIN=1 -D_UNICODE -DCHROMIUM_BUILD -DU_STATIC_IMPLEMENTATION -DUNICODE -D_WINDOWS -D_SECURE_ATL -DMOZ_UNICODE -DSTATIC_EXPORTABLE_JS_API -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -I/usr/local/gematik/firefox_builds/firefox-latest/mozilla-central/widget/windows -I/usr/local/gematik/firefox_builds/firefox-latest/mozilla-mingw64/widget/windows -I/usr/local/gematik/firefox_builds/firefox-latest/mozilla-mingw64/ipc/ipdl/_ipdlheaders -I/usr/local/gematik/firefox_builds/firefox-latest/mozilla-central/ipc/chromium/src -I/usr/local/gematik/firefox_builds/firefox-latest/mozilla-central/ipc/glue -I/usr/local/gematik/firefox_builds/firefox-latest/mozilla-central/layout/generic -I/usr/local/gematik/firefox_builds/firefox-latest/mozilla-central/layout/xul -I/usr/local/gematik/firefox_builds/firefox-latest/mozilla-centr
 al/toolkit/xre -I/usr/local/gematik/firefox_builds/firefox-latest/mozilla-central/widget -I/usr/local/gematik/firefox_builds/firefox-latest/mozilla-central/xpcom/base -I/usr/local/gematik/firefox_builds/firefox-latest/mozilla-mingw64/dist/include -I/usr/local/gematik/firefox_builds/firefox-latest/mozilla-mingw64/dist/include/nspr -I/usr/local/gematik/firefox_builds/firefox-latest/mozilla-mingw64/dist/include/nss -DMOZILLA_CLIENT -include /usr/local/gematik/firefox_builds/firefox-latest/mozilla-mingw64/mozilla-config.h -MD -MP -MF .deps/WindowsUIUtils.o.pp -Wall -Wc++11-compat -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wsign-compare -Wtype-limits -Wwrite-strings -Wunreachable-code -Wno-invalid-offsetof -Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-format -fno-exceptions -fno-strict-aliasing -mms-bitfields -fno-rtti -fno-exceptions -fno-math-errno -std=gnu++0x -pipe -g -fno-omit-frame-pointer -I/usr/
 local/gematik/firefox_builds/firefox-latest/mozilla-mingw64/dist/include/cairo /usr/local/gematik/firefox_builds/firefox-latest/mozilla-central/widget/windows/WindowsUIUtils.cpp
22:20.04 gmake[5]: *** [WindowsUIUtils.o] Error 1
22:20.04 gmake[5]: *** Waiting for unfinished jobs....
22:20.04 Layers.o
22:25.81 In file included from /usr/local/gematik/firefox_builds/firefox-latest/mozilla-central/widget/windows/WinMouseScrollHandler.cpp:12:0:
22:25.81 Warning: -Wignored-qualifiers in /usr/local/gematik/firefox_builds/firefox-latest/mozilla-central/widget/windows/nsWindow.h: type qualifiers ignored on function return type
22:25.81 /usr/local/gematik/firefox_builds/firefox-latest/mozilla-central/widget/windows/nsWindow.h:299:47: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
22:25.81    bool                    const DestroyCalled() { return mDestroyCalled; }
22:25.81                                                ^
22:28.53 gmake[4]: *** [widget/windows/target] Error 2
22:28.53 gmake[4]: *** Waiting for unfinished jobs....
22:28.53 PersistentBufferProvider.o
22:35.96 Unified_cpp_layout_base1.o
22:37.25 Unified_cpp_layout_base2.o
23:00.16 BasicImageLayer.o
23:30.76 CompositorD3D11.o
23:52.27 ReadbackManagerD3D11.o
25:00.34 /usr/local/gematik/firefox_builds/firefox-latest/mozilla-central/gfx/layers/d3d11/CompositorD3D11.cpp: In member function 'bool mozilla::layers::CompositorD3D11::CopyBackdrop(const IntRect&, RefPtr<ID3D11Texture2D>*, RefPtr<ID3D11ShaderResourceView>*)':
25:03.26 /usr/local/gematik/firefox_builds/firefox-latest/mozilla-central/gfx/layers/d3d11/CompositorD3D11.cpp:610:3: error: 'CD3D11_SHADER_RESOURCE_VIEW_DESC' was not declared in this scope
25:03.35    CD3D11_SHADER_RESOURCE_VIEW_DESC desc(D3D11_SRV_DIMENSION_TEXTURE2D, DXGI_FORMAT_B8G8R8A8_UNORM);
25:03.45    ^
25:03.45 /usr/local/gematik/firefox_builds/firefox-latest/mozilla-central/gfx/layers/d3d11/CompositorD3D11.cpp:613:60: error: 'desc' was not declared in this scope
25:03.48    HRESULT hr = mDevice->CreateShaderResourceView(texture, &desc, getter_AddRefs(srv));
25:03.48                                                             ^
25:03.62 /usr/local/gematik/firefox_builds/firefox-latest/mozilla-central/gfx/layers/d3d11/CompositorD3D11.cpp: In member function 'virtual void mozilla::layers::CompositorD3D11::ForcePresent()':
25:04.26 Warning: -Wsign-compare in /usr/local/gematik/firefox_builds/firefox-latest/mozilla-central/gfx/layers/d3d11/CompositorD3D11.cpp: comparison between signed and unsigned integer expressions
25:04.26 /usr/local/gematik/firefox_builds/firefox-latest/mozilla-central/gfx/layers/d3d11/CompositorD3D11.cpp:1317:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
25:04.26    if (desc.BufferDesc.Width == rect.width && desc.BufferDesc.Height == rect.height) {
25:04.27                              ^
25:04.30 Warning: -Wsign-compare in /usr/local/gematik/firefox_builds/firefox-latest/mozilla-central/gfx/layers/d3d11/CompositorD3D11.cpp: comparison between signed and unsigned integer expressions
25:04.31 /usr/local/gematik/firefox_builds/firefox-latest/mozilla-central/gfx/layers/d3d11/CompositorD3D11.cpp:1317:69: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
25:04.32    if (desc.BufferDesc.Width == rect.width && desc.BufferDesc.Height == rect.height) {
25:04.32                                                                      ^
25:04.33 /usr/local/gematik/firefox_builds/firefox-latest/mozilla-central/gfx/layers/d3d11/CompositorD3D11.cpp: In member function 'bool mozilla::layers::CompositorD3D11::VerifyBufferSize()':
25:04.34 Warning: -Wsign-compare in /usr/local/gematik/firefox_builds/firefox-latest/mozilla-central/gfx/layers/d3d11/CompositorD3D11.cpp: comparison between signed and unsigned integer expressions
25:04.34 /usr/local/gematik/firefox_builds/firefox-latest/mozilla-central/gfx/layers/d3d11/CompositorD3D11.cpp:1362:35: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
25:04.34    if (((swapDesc.BufferDesc.Width == mSize.width &&
25:04.35                                    ^
25:04.35 Warning: -Wsign-compare in /usr/local/gematik/firefox_builds/firefox-latest/mozilla-central/gfx/layers/d3d11/CompositorD3D11.cpp: comparison between signed and unsigned integer expressions
25:04.36 /usr/local/gematik/firefox_builds/firefox-latest/mozilla-central/gfx/layers/d3d11/CompositorD3D11.cpp:1363:35: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
25:04.36         swapDesc.BufferDesc.Height == mSize.height) ||
25:04.36                                    ^
25:04.36
25:04.36 In the directory  /usr/local/gematik/firefox_builds/firefox-latest/mozilla-mingw64/gfx/layers
25:04.37 The following command failed to execute properly:
25:04.40 x86_64-w64-mingw32-g++ -mwindows -o CompositorD3D11.o -c -DDEBUG=1 -DTRACING=1 -DGOOGLE_PROTOBUF_NO_RTTI -DWIN32_LEAN_AND_MEAN -D_WIN32 -DWIN32 -D_CRT_RAND_S -DCERT_CHAIN_PARA_HAS_EXTRA_FIELDS -DOS_WIN=1 -D_UNICODE -DCHROMIUM_BUILD -DU_STATIC_IMPLEMENTATION -DUNICODE -D_WINDOWS -D_SECURE_ATL -DD3D_DEBUG_INFO -DMOZ_ENABLE_D3D10_LAYER -DSTATIC_EXPORTABLE_JS_API -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -I/usr/local/gematik/firefox_builds/firefox-latest/mozilla-central/gfx/layers -I/usr/local/gematik/firefox_builds/firefox-latest/mozilla-mingw64/gfx/layers -I/usr/local/gematik/firefox_builds/firefox-latest/mozilla-mingw64/ipc/ipdl/_ipdlheaders -I/usr/local/gematik/firefox_builds/firefox-latest/mozilla-central/ipc/chromium/src -I/usr/local/gematik/firefox_builds/firefox-latest/mozilla-central/ipc/glue -I/usr/local/gematik/firefox_builds/firefox-latest/mozilla-central/docshell/base -I/usr/local/gematik/firefox_builds/firefox-latest/mozilla-central/layout/base -I/usr/local/gema
 tik/firefox_builds/firefox-latest/mozilla-central/layout/generic -I/usr/local/gematik/firefox_builds/firefox-latest/mozilla-central/gfx/skia -I/usr/local/gematik/firefox_builds/firefox-latest/mozilla-central/gfx/skia/skia/include/config -I/usr/local/gematik/firefox_builds/firefox-latest/mozilla-central/gfx/skia/skia/include/core -I/usr/local/gematik/firefox_builds/firefox-latest/mozilla-central/gfx/skia/skia/include/gpu -I/usr/local/gematik/firefox_builds/firefox-latest/mozilla-central/gfx/skia/skia/include/utils -I/usr/local/gematik/firefox_builds/firefox-latest/mozilla-mingw64/dist/include -I/usr/local/gematik/firefox_builds/firefox-latest/mozilla-mingw64/dist/include/nspr -I/usr/local/gematik/firefox_builds/firefox-latest/mozilla-mingw64/dist/include/nss -DMOZILLA_CLIENT -include /usr/local/gematik/firefox_builds/firefox-latest/mozilla-mingw64/mozilla-config.h -MD -MP -MF .deps/CompositorD3D11.o.pp -Wall -Wc++11-compat -Wempty-body -Wignored-qualifiers -Woverloaded-virtua
 l -Wpointer-arith -Wsign-compare -Wtype-limits -Wwrite-strings -Wunreachable-code -Wno-invalid-offsetof -Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-format -fno-exceptions -fno-strict-aliasing -mms-bitfields -fno-rtti -fno-exceptions -fno-math-errno -std=gnu++0x -pipe -g -fno-omit-frame-pointer -I/usr/local/gematik/firefox_builds/firefox-latest/mozilla-mingw64/dist/include/cairo /usr/local/gematik/firefox_builds/firefox-latest/mozilla-central/gfx/layers/d3d11/CompositorD3D11.cpp
25:04.40 gmake[5]: *** [CompositorD3D11.o] Error 1
25:04.40 gmake[4]: *** [gfx/layers/target] Error 2
26:22.86 liblayout_base.a.desc
26:29.47 gmake[3]: *** [compile] Error 2
26:29.53 gmake[2]: *** [default] Error 2
26:29.62 gmake[1]: *** [realbuild] Error 2
26:29.64 gmake: *** [build] Error 2
26:29.74 147 compiler warnings present.



My .mozconfig is configured as:
#Specify the cross compile
export CROSS_COMPILE=1
ac_add_options --enable-application=browser
ac_add_options --target=x86_64-w64-mingw32
ac_add_options --enable-default-toolkit=cairo-windows
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../mozilla-mingw64

ac_add_options  --enable-debug
ac_add_options  --disable-optimize

ac_add_options --disable-crashreporter
ac_add_options --disable-maintenance-service
ac_add_options --disable-webrtc
ac_add_options --without-intl-api
ac_add_options --disable-sandbox

#ac_add_options --disable-accessibility # uncomment if you don't have widl installed

# Use parallel build. Adjust number of processes for your setup.
mk_add_options MOZ_MAKE_FLAGS=-j4
mk_add_options AUTOCLOBBER=1

It's the same case when I try to build just the xulrunner.

Hope to hear from someone coz I'm at a loss currently.

Cheers,
Osbert
_______________________________________________
dev-builds mailing list
[hidden email]
https://lists.mozilla.org/listinfo/dev-builds
Reply | Threaded
Open this post in threaded view
|

Re: Cross Compile Firefox on Linux using Mingw

Stefan Sitter-2
On 14.03.2016 15:42, [hidden email] wrote:
> /usr/local/gematik/firefox_builds/firefox-latest/mozilla-central/widget/windows/WindowsUIUtils.cpp:23:39:
> fatal error: windows.ui.viewmanagement.h: No such file or directory

On my Windows system the header file is located in
"C:\Program Files (x86)\Windows Kits\8.1\Include\winrt"

Maybe you need to provide the build system with the location of the
Windows SDK somehow? Or maybe there is some switch to turn off features
that require Windows SDK for building?

/Stefan
_______________________________________________
dev-builds mailing list
[hidden email]
https://lists.mozilla.org/listinfo/dev-builds
Reply | Threaded
Open this post in threaded view
|

Re: Cross Compile Firefox on Linux using Mingw

osbert.morris
On Monday, March 14, 2016 at 7:08:14 PM UTC+1, Stefan Sitter wrote:

> On 14.03.2016 15:42, wrote:
> > /usr/local/gematik/firefox_builds/firefox-latest/mozilla-central/widget/windows/WindowsUIUtils.cpp:23:39:
> > fatal error: windows.ui.viewmanagement.h: No such file or directory
>
> On my Windows system the header file is located in
> "C:\Program Files (x86)\Windows Kits\8.1\Include\winrt"
>
> Maybe you need to provide the build system with the location of the
> Windows SDK somehow? Or maybe there is some switch to turn off features
> that require Windows SDK for building?
>
> /Stefan

Thanks Stefan, I was thinking along the same lines. However, I could not find any of the combinations to completely turn off the dependence on Windows SDK. And porting the SDK to Linux could cause more problems IMHO, so I avoided doing that for now.

But meanwhile, I got over that hurdle by using a patch provided by Alexpux https://github.com/Alexpux/MINGW-packages/blob/master/mingw-w64-firefox/0013-MinGW-w64-Disable-TabletMode-stuff.patch, which ifdefs out the dependency on  windows.ui.viewmanagement.h if using MinGW. I made it past that point and now stuck with a new problem. :)
_______________________________________________
dev-builds mailing list
[hidden email]
https://lists.mozilla.org/listinfo/dev-builds