This project is archived. Its data is read-only.
Cross-Compiling WebGL with mingw-w64 is broken
Enabling WebGL in the Windows .mozconfig leads to: ``` Blit.cpp i686-w64-mingw32-g++ -mwindows -o Blit.o -c -DANGLE_BUILD -DNOMINMAX -DLIBGLESV2_EXPORTS -D_CRT_SECURE_NO_DEPRECATE -D_SECURE_SCL=0 -DANGLE_DISABLE_TRACE -DANGLE_COMPILE_OPTIMIZATION_LEVEL=D3DCOMPILE_OPTIMIZATION_LEVEL1 -DCOMPILER_IMPLEMENTATION -DNO_NSPR_10_SUPPORT -I/home/ubuntu/build/tor-browser/gfx/angle/src/libGLESv2/../../include -I/home/ubuntu/build/tor-browser/gfx/angle/src/libGLESv2/../../include/KHR -I/home/ubuntu/build/tor-browser/gfx/angle/src/libGLESv2/.. -I"/include" -I/home/ubuntu/build/tor-browser/gfx/angle/src/libGLESv2 -I. -I../../../../dist/include -I/home/ubuntu/build/tor-browser/obj-mingw/dist/include/nspr -I/home/ubuntu/build/tor-browser/obj-mingw/dist/include/nss -Wall -Wpointer-arith -Woverloaded-virtual -Werror=return-type -Wtype-limits -Wempty-body -Wsign-compare -Wno-invalid-offsetof -Wcast-align -Wno-format -fno-strict-aliasing -mms-bitfields -mstackrealign -fno-keep-inline-dllexport -fno-rtti -ffunction-sections -fdata-sections -std=gnu++0x -pipe -DNDEBUG -DTRIMMED -g -fexceptions -O -fomit-frame-pointer /home/ubuntu/build/tor-browser/gfx/angle/src/libGLESv2/Blit.cpp Buffer.cpp i686-w64-mingw32-g++ -mwindows -o Buffer.o -c -DANGLE_BUILD -DNOMINMAX -DLIBGLESV2_EXPORTS -D_CRT_SECURE_NO_DEPRECATE -D_SECURE_SCL=0 -DANGLE_DISABLE_TRACE -DANGLE_COMPILE_OPTIMIZATION_LEVEL=D3DCOMPILE_OPTIMIZATION_LEVEL1 -DCOMPILER_IMPLEMENTATION -DNO_NSPR_10_SUPPORT -I/home/ubuntu/build/tor-browser/gfx/angle/src/libGLESv2/../../include -I/home/ubuntu/build/tor-browser/gfx/angle/src/libGLESv2/../../include/KHR -I/home/ubuntu/build/tor-browser/gfx/angle/src/libGLESv2/.. -I"/include" -I/home/ubuntu/build/tor-browser/gfx/angle/src/libGLESv2 -I. -I../../../../dist/include -I/home/ubuntu/build/tor-browser/obj-mingw/dist/include/nspr -I/home/ubuntu/build/tor-browser/obj-mingw/dist/include/nss -Wall -Wpointer-arith -Woverloaded-virtual -Werror=return-type -Wtype-limits -Wempty-body -Wsign-compare -Wno-invalid-offsetof -Wcast-align -Wno-format -fno-strict-aliasing -mms-bitfields -mstackrealign -fno-keep-inline-dllexport -fno-rtti -ffunction-sections -fdata-sections -std=gnu++0x -pipe -DNDEBUG -DTRIMMED -g -fexceptions -O -fomit-frame-pointer /home/ubuntu/build/tor-browser/gfx/angle/src/libGLESv2/Buffer.cpp BuiltInFunctionEmulator.cpp i686-w64-mingw32-g++ -mwindows -o BuiltInFunctionEmulator.o -c -DANGLE_BUILD -DNOMINMAX -DLIBGLESV2_EXPORTS -D_CRT_SECURE_NO_DEPRECATE -D_SECURE_SCL=0 -DANGLE_DISABLE_TRACE -DANGLE_COMPILE_OPTIMIZATION_LEVEL=D3DCOMPILE_OPTIMIZATION_LEVEL1 -DCOMPILER_IMPLEMENTATION -DNO_NSPR_10_SUPPORT -I/home/ubuntu/build/tor-browser/gfx/angle/src/libGLESv2/../../include -I/home/ubuntu/build/tor-browser/gfx/angle/src/libGLESv2/../../include/KHR -I/home/ubuntu/build/tor-browser/gfx/angle/src/libGLESv2/.. -I"/include" -I/home/ubuntu/build/tor-browser/gfx/angle/src/libGLESv2 -I. -I../../../../dist/include -I/home/ubuntu/build/tor-browser/obj-mingw/dist/include/nspr -I/home/ubuntu/build/tor-browser/obj-mingw/dist/include/nss -Wall -Wpointer-arith -Woverloaded-virtual -Werror=return-type -Wtype-limits -Wempty-body -Wsign-compare -Wno-invalid-offsetof -Wcast-align -Wno-format -fno-strict-aliasing -mms-bitfields -mstackrealign -fno-keep-inline-dllexport -fno-rtti -ffunction-sections -fdata-sections -std=gnu++0x -pipe -DNDEBUG -DTRIMMED -g -fexceptions -O -fomit-frame-pointer /home/ubuntu/build/tor-browser/gfx/angle/src/compiler/BuiltInFunctionEmulator.cpp CodeGenHLSL.cpp i686-w64-mingw32-g++ -mwindows -o CodeGenHLSL.o -c -DANGLE_BUILD -DNOMINMAX -DLIBGLESV2_EXPORTS -D_CRT_SECURE_NO_DEPRECATE -D_SECURE_SCL=0 -DANGLE_DISABLE_TRACE -DANGLE_COMPILE_OPTIMIZATION_LEVEL=D3DCOMPILE_OPTIMIZATION_LEVEL1 -DCOMPILER_IMPLEMENTATION -DNO_NSPR_10_SUPPORT -I/home/ubuntu/build/tor-browser/gfx/angle/src/libGLESv2/../../include -I/home/ubuntu/build/tor-browser/gfx/angle/src/libGLESv2/../../include/KHR -I/home/ubuntu/build/tor-browser/gfx/angle/src/libGLESv2/.. -I"/include" -I/home/ubuntu/build/tor-browser/gfx/angle/src/libGLESv2 -I. -I../../../../dist/include -I/home/ubuntu/build/tor-browser/obj-mingw/dist/include/nspr -I/home/ubuntu/build/tor-browser/obj-mingw/dist/include/nss -Wall -Wpointer-arith -Woverloaded-virtual -Werror=return-type -Wtype-limits -Wempty-body -Wsign-compare -Wno-invalid-offsetof -Wcast-align -Wno-format -fno-strict-aliasing -mms-bitfields -mstackrealign -fno-keep-inline-dllexport -fno-rtti -ffunction-sections -fdata-sections -std=gnu++0x -pipe -DNDEBUG -DTRIMMED -g -fexceptions -O -fomit-frame-pointer /home/ubuntu/build/tor-browser/gfx/angle/src/compiler/CodeGenHLSL.cpp Compiler.cpp i686-w64-mingw32-g++ -mwindows -o Compiler.o -c -DANGLE_BUILD -DNOMINMAX -DLIBGLESV2_EXPORTS -D_CRT_SECURE_NO_DEPRECATE -D_SECURE_SCL=0 -DANGLE_DISABLE_TRACE -DANGLE_COMPILE_OPTIMIZATION_LEVEL=D3DCOMPILE_OPTIMIZATION_LEVEL1 -DCOMPILER_IMPLEMENTATION -DNO_NSPR_10_SUPPORT -I/home/ubuntu/build/tor-browser/gfx/angle/src/libGLESv2/../../include -I/home/ubuntu/build/tor-browser/gfx/angle/src/libGLESv2/../../include/KHR -I/home/ubuntu/build/tor-browser/gfx/angle/src/libGLESv2/.. -I"/include" -I/home/ubuntu/build/tor-browser/gfx/angle/src/libGLESv2 -I. -I../../../../dist/include -I/home/ubuntu/build/tor-browser/obj-mingw/dist/include/nspr -I/home/ubuntu/build/tor-browser/obj-mingw/dist/include/nss -Wall -Wpointer-arith -Woverloaded-virtual -Werror=return-type -Wtype-limits -Wempty-body -Wsign-compare -Wno-invalid-offsetof -Wcast-align -Wno-format -fno-strict-aliasing -mms-bitfields -mstackrealign -fno-keep-inline-dllexport -fno-rtti -ffunction-sections -fdata-sections -std=gnu++0x -pipe -DNDEBUG -DTRIMMED -g -fexceptions -O -fomit-frame-pointer /home/ubuntu/build/tor-browser/gfx/angle/src/compiler/Compiler.cpp Context.cpp i686-w64-mingw32-g++ -mwindows -o Context.o -c -DANGLE_BUILD -DNOMINMAX -DLIBGLESV2_EXPORTS -D_CRT_SECURE_NO_DEPRECATE -D_SECURE_SCL=0 -DANGLE_DISABLE_TRACE -DANGLE_COMPILE_OPTIMIZATION_LEVEL=D3DCOMPILE_OPTIMIZATION_LEVEL1 -DCOMPILER_IMPLEMENTATION -DNO_NSPR_10_SUPPORT -I/home/ubuntu/build/tor-browser/gfx/angle/src/libGLESv2/../../include -I/home/ubuntu/build/tor-browser/gfx/angle/src/libGLESv2/../../include/KHR -I/home/ubuntu/build/tor-browser/gfx/angle/src/libGLESv2/.. -I"/include" -I/home/ubuntu/build/tor-browser/gfx/angle/src/libGLESv2 -I. -I../../../../dist/include -I/home/ubuntu/build/tor-browser/obj-mingw/dist/include/nspr -I/home/ubuntu/build/tor-browser/obj-mingw/dist/include/nss -Wall -Wpointer-arith -Woverloaded-virtual -Werror=return-type -Wtype-limits -Wempty-body -Wsign-compare -Wno-invalid-offsetof -Wcast-align -Wno-format -fno-strict-aliasing -mms-bitfields -mstackrealign -fno-keep-inline-dllexport -fno-rtti -ffunction-sections -fdata-sections -std=gnu++0x -pipe -DNDEBUG -DTRIMMED -g -fexceptions -O -fomit-frame-pointer /home/ubuntu/build/tor-browser/gfx/angle/src/libGLESv2/Context.cpp D3DConstantTable.cpp In file included from /home/ubuntu/build/tor-browser/gfx/angle/src/libGLESv2/../libEGL/Display.h:23:0, from /home/ubuntu/build/tor-browser/gfx/angle/src/libGLESv2/../libGLESv2/main.h:17, from /home/ubuntu/build/tor-browser/gfx/angle/src/libGLESv2/Buffer.cpp:13: /home/ubuntu/build/tor-browser/gfx/angle/src/libGLESv2/../libEGL/Config.h:97:5: error: a class-key must be used when declaring a friend /home/ubuntu/build/tor-browser/gfx/angle/src/libGLESv2/../libEGL/Config.h:97:5: error: friend declaration does not name a class or function make[7]: *** [Buffer.o] Error 1 make[7]: *** Waiting for unfinished jobs.... In file included from /home/ubuntu/build/tor-browser/gfx/angle/src/libGLESv2/../libEGL/Display.h:23:0, from /home/ubuntu/build/tor-browser/gfx/angle/src/libGLESv2/../libGLESv2/Blit.h:21, from /home/ubuntu/build/tor-browser/gfx/angle/src/libGLESv2/Blit.cpp:9: /home/ubuntu/build/tor-browser/gfx/angle/src/libGLESv2/../libEGL/Config.h:97:5: error: a class-key must be used when declaring a friend /home/ubuntu/build/tor-browser/gfx/angle/src/libGLESv2/../libEGL/Config.h:97:5: error: friend declaration does not name a class or function make[7]: *** [Blit.o] Error 1 In file included from /home/ubuntu/build/tor-browser/gfx/angle/src/libGLESv2/../libEGL/Display.h:23:0, from /home/ubuntu/build/tor-browser/gfx/angle/src/libGLESv2/Context.cpp:15: /home/ubuntu/build/tor-browser/gfx/angle/src/libGLESv2/../libEGL/Config.h:97:5: error: a class-key must be used when declaring a friend /home/ubuntu/build/tor-browser/gfx/angle/src/libGLESv2/../libEGL/Config.h:97:5: error: friend declaration does not name a class or function make[7]: *** [Context.o] Error 1 make[7]: Leaving directory `/home/ubuntu/build/tor-browser/obj-mingw/gfx/angle/src/libGLESv2' make[6]: *** [libs] Error 2 make[6]: Leaving directory `/home/ubuntu/build/tor-browser/obj-mingw/gfx/angle' make[5]: *** [libs] Error 2 make[5]: Leaving directory `/home/ubuntu/build/tor-browser/obj-mingw/gfx' make[4]: *** [libs_tier_platform] Error 2 make[4]: Leaving directory `/home/ubuntu/build/tor-browser/obj-mingw' make[3]: *** [tier_platform] Error 2 make[3]: Leaving directory `/home/ubuntu/build/tor-browser/obj-mingw' make[2]: *** [default] Error 2 make[2]: Leaving directory `/home/ubuntu/build/tor-browser/obj-mingw' make[1]: *** [realbuild] Error 2 make[1]: Leaving directory `/home/ubuntu/build/tor-browser' make: *** [build] Error 2 ```
issue