Closed
Bug 1363989
Opened 7 years ago
Closed 8 months ago
webrender build fails on windows with strange-looking path
Categories
(Core :: Graphics: WebRender, defect, P3)
Tracking
()
RESOLVED
FIXED
Tracking | Status | |
---|---|---|
firefox56 | --- | unaffected |
firefox57 | --- | unaffected |
People
(Reporter: bagder, Unassigned)
References
Details
(Whiteboard: [gfx-noted])
Attachments
(1 file)
93.75 KB,
text/plain
|
Details |
I ran into this issue and I'm stuck.
I build current gecko-dev (from github), updated today, on Windows 7 using visual studio 2015 in a VM on my Linux box. I've built Firefox on this setup regularly over several years.
Today my build stops with many build errors and the first one is the webrender. See attachment for the build log from my mach invoke.
What's weird with the particular errors is that the errors reported reports paths that seems to have figured out some underlying path from under the VM and not only the paths within the VM itself.
I run my VM with a virtual drive called E: that is in fact my home Linux dir exposed as an E: drive to Windows. It allows me to edit the files and work with git etc in Linux land, but still compile and build the files in Windows land.
I build in windows in the /e/win-src/gecko-dev directory and I use mozilla-build 2.2 (I made sure to install the latest) and my Virtualbox 5.1.22 (on Debian) runs the latest "guest tools".
In this error case I get errors such as:
Compiling webrender v0.36.0 (file:///E:/win-src/gecko-dev/gfx/webrender)
error: couldn't read E:\win-src\gecko-dev\gfx\webrender\src\UNC/vboxsrv/daniel/win-src/gecko-dev/gfx/webrender/res/cs_blur.vs.glsl: The system cannot find the file specified. (os error 2)
--> e:/win-src/gecko-dev/obj-i686-pc-mingw32/toolkit/library\i686-pc-windows-msvc\debug\build\webrender-ed4c0bb21d24c174\out/shaders.rs:7:28
|
7 | h.insert("cs_blur.vs", include_str!("UNC/vboxsrv/daniel/win-src/gecko-dev/gfx/webrender/res/cs_blur.vs.glsl"));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Obviously the path gets seriously messed up. Any suggestions on what I can do next to track this down and fix it?
Comment 1•7 years ago
|
||
This error comes from the webrender crate [1], specifically it looks like a file generated by its build script [2], and perhaps the listed apology [3] is relevant? To be clear, though, I don't actually know what any of this code is going, just trying to help narrow it down to the source!
(may be good to cc some webrender folks)
[1]: https://github.com/servo/webrender/tree/master/webrender
[2]: https://github.com/servo/webrender/blob/master/webrender/build.rs
[3]: https://github.com/servo/webrender/blob/7f23715c7e6ad101f56813f8b5e5106b585d3047/webrender/build.rs#L24-L25
Comment 2•7 years ago
|
||
This bug feels more appropriate in the webrender component since the Firefox build system is just running `cargo build` here. If you feel differently, please move to Core :: Build Config.
Component: Build Config → Graphics: WebRender
Product: Firefox → Core
Comment 3•7 years ago
|
||
I would first try building webrender standalone by cloning it from github.com/servo/webrender and running `cargo build ` inside the webrender subfolder. If that fails in the same way it will probably need to be fixed in webrender upstream and it would be better to file an issue there. In the meantime if you just need a build you can disable the webrender part of the build by putting `ac_add_options --disable-webrender` in your mozconfig.
Reporter | ||
Comment 4•7 years ago
|
||
That triggers a different build error for me. This complains on X86 vs x64 conflicts so I'm not sure how helpful this is.
I cloned "https://github.com/servo/webrender" just now and I "cd webrender" in that directory (ending up in /e/win-src/webrender/webrender). Then I run 'cargo build' and here's the last bunch of lines I get:
Downloading winapi v0.2.8
Downloading winapi-build v0.1.1
Downloading gdi32-sys v0.2.0
Downloading user32-sys v0.2.0
Compiling winapi-build v0.1.1
Compiling unicode-xid v0.0.4
Compiling thread_profiler v0.1.1
Compiling bitflags v0.7.0
Compiling futures v0.1.13
Compiling winapi v0.2.8
Compiling lazy_static v0.2.2
Compiling user32-sys v0.2.0
Compiling webrender v0.39.0 (file:///E:/win-src/webrender/webrender)
error: linking with `link.exe` failed: exit code: 1112
|
= note: "c:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\amd64
_x86\\link.exe" "/NOLOGO" "/NXCOMPAT" "/LIBPATH:C:\\Users\\daniel\\.multirust\\t
oolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\
lib" "e:\\win-src\\webrender\\target\\debug\\build\\user32-sys-c36fef247f8a00cf\
\build_script_build-c36fef247f8a00cf.0.o" "/OUT:e:\\win-src\\webrender\\target\\
debug\\build\\user32-sys-c36fef247f8a00cf\\build_script_build-c36fef247f8a00cf.e
xe" "/OPT:REF,NOICF" "/DEBUG" "/LIBPATH:e:\\win-src\\webrender\\target\\debug\\d
eps" "/LIBPATH:C:\\Users\\daniel\\.multirust\\toolchains\\stable-x86_64-pc-windo
ws-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib" "\\\\vboxsrv\\daniel\\win-sr
c\\webrender\\target\\debug\\deps\\libbuild-be2484a2a757a053.rlib" "C:\\Users\\d
aniel\\.multirust\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_
64-pc-windows-msvc\\lib\\libstd-0a78323911070f99.rlib" "C:\\Users\\daniel\\.mult
irust\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-window
s-msvc\\lib\\librand-c279a51d66700350.rlib" "C:\\Users\\daniel\\.multirust\\tool
chains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib
\\libcollections-d7bf31a4ca1ea637.rlib" "C:\\Users\\daniel\\.multirust\\toolchai
ns\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\li
bstd_unicode-d367c3ba0db49600.rlib" "C:\\Users\\daniel\\.multirust\\toolchains\\
stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libpan
ic_unwind-2d4bf02140c11dcb.rlib" "C:\\Users\\daniel\\.multirust\\toolchains\\sta
ble-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libunwind
-add7a84d7e82d084.rlib" "C:\\Users\\daniel\\.multirust\\toolchains\\stable-x86_6
4-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\liblibc-84688accbc
86d6b7.rlib" "C:\\Users\\daniel\\.multirust\\toolchains\\stable-x86_64-pc-window
s-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\liballoc-fe2e68b21f0bdd7a.rli
b" "C:\\Users\\daniel\\.multirust\\toolchains\\stable-x86_64-pc-windows-msvc\\li
b\\rustlib\\x86_64-pc-windows-msvc\\lib\\liballoc_system-7fc0381594c93f56.rlib"
"C:\\Users\\daniel\\.multirust\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\
rustlib\\x86_64-pc-windows-msvc\\lib\\libcore-ea9d77e7c23fe65c.rlib" "C:\\Users\
\daniel\\.multirust\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x8
6_64-pc-windows-msvc\\lib\\libcompiler_builtins-91b619d34dd1f5aa.rlib" "advapi32
.lib" "ws2_32.lib" "userenv.lib" "shell32.lib" "msvcrt.lib"
= note: msvcrt.lib(chkstk.obj) : fatal error LNK1112: module machine type 'X86
' conflicts with target machine type 'x64'
error: aborting due to previous error
error: Could not compile `user32-sys`.
Build failed, waiting for other jobs to finish...
error: linking with `link.exe` failed: exit code: 1112
|
= note: "c:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\amd64
_x86\\link.exe" "/NOLOGO" "/NXCOMPAT" "/LIBPATH:C:\\Users\\daniel\\.multirust\\t
oolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\
lib" "e:\\win-src\\webrender\\target\\debug\\build\\webrender-5547de711aa71ad7\\
build_script_build-5547de711aa71ad7.0.o" "/OUT:e:\\win-src\\webrender\\target\\d
ebug\\build\\webrender-5547de711aa71ad7\\build_script_build-5547de711aa71ad7.exe
" "/OPT:REF,NOICF" "/DEBUG" "/LIBPATH:e:\\win-src\\webrender\\target\\debug\\dep
s" "/LIBPATH:C:\\Users\\daniel\\.multirust\\toolchains\\stable-x86_64-pc-windows
-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib" "C:\\Users\\daniel\\.multirust
\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msv
c\\lib\\libstd-0a78323911070f99.rlib" "C:\\Users\\daniel\\.multirust\\toolchains
\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libr
and-c279a51d66700350.rlib" "C:\\Users\\daniel\\.multirust\\toolchains\\stable-x8
6_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcollections-
d7bf31a4ca1ea637.rlib" "C:\\Users\\daniel\\.multirust\\toolchains\\stable-x86_64
-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libstd_unicode-d367
c3ba0db49600.rlib" "C:\\Users\\daniel\\.multirust\\toolchains\\stable-x86_64-pc-
windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libpanic_unwind-2d4bf02
140c11dcb.rlib" "C:\\Users\\daniel\\.multirust\\toolchains\\stable-x86_64-pc-win
dows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libunwind-add7a84d7e82d084
.rlib" "C:\\Users\\daniel\\.multirust\\toolchains\\stable-x86_64-pc-windows-msvc
\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\liblibc-84688accbc86d6b7.rlib" "C:\
\Users\\daniel\\.multirust\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rust
lib\\x86_64-pc-windows-msvc\\lib\\liballoc-fe2e68b21f0bdd7a.rlib" "C:\\Users\\da
niel\\.multirust\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_6
4-pc-windows-msvc\\lib\\liballoc_system-7fc0381594c93f56.rlib" "C:\\Users\\danie
l\\.multirust\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-p
c-windows-msvc\\lib\\libcore-ea9d77e7c23fe65c.rlib" "C:\\Users\\daniel\\.multiru
st\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-m
svc\\lib\\libcompiler_builtins-91b619d34dd1f5aa.rlib" "advapi32.lib" "ws2_32.lib
" "userenv.lib" "shell32.lib" "msvcrt.lib"
= note: msvcrt.lib(chkstk.obj) : fatal error LNK1112: module machine type 'X86
' conflicts with target machine type 'x64'
error: aborting due to previous error
error: Could not compile `webrender`.
Build failed, waiting for other jobs to finish...
error: build failed
daniel@daniel-win7 /e/win-src/webrender/webrender
Comment 5•7 years ago
|
||
I've seen this problem before (bug 1350001) when doing a 32-bit build on a 64-bit machine (which uses a 64-bit rust toolchain by default). Are you doing this build inside a MozillaBuild shell or a regular windows command shell? MozillaBuild explicitly sets some environment variables to control what Visual Studio does, and that doesn't play well with how cargo/rust tries to use Visual Studio.
On the assumption that you're doing this inside the 32-bit mozillabuild shell on a 64-bit machine, I suggest trying it inside the 64-bit mozillabuild shell instead. Or a non-MozillaBuild shell.
Reporter | ||
Comment 6•7 years ago
|
||
(In reply to Kartikaya Gupta (email:kats@mozilla.com) from comment #5)
> On the assumption that you're doing this inside the 32-bit mozillabuild
> shell on a 64-bit machine, I suggest trying it inside the 64-bit
> mozillabuild shell instead. Or a non-MozillaBuild shell.
That seems to have been the case indeed, thanks. When I retry with a 64bit mozillabuild, 'cargo build' ends with the same series of build errors that I get from my regular Firefox build as I reported initially. A few more of them are pasted below.
I'll use "ac_add_options --disable-webrender" in my .mozconfig for now to work around this.
error: couldn't read src\UNC/vboxsrv/daniel/win-src/webrender/webrender/res/ps_a
ngle_gradient.fs.glsl: The system cannot find the file specified. (os error 2)
--> e:\win-src\webrender\target\debug\build\webrender-d24208953dc275b6\out/sha
ders.rs:70:38
|
70 | h.insert("ps_angle_gradient.fs", include_str!("UNC/vboxsrv/daniel/win-s
rc/webrender/webrender/res/ps_angle_gradient.fs.glsl"));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: couldn't read src\UNC/vboxsrv/daniel/win-src/webrender/webrender/res/shar
ed_other.glsl: The system cannot find the file specified. (os error 2)
--> e:\win-src\webrender\target\debug\build\webrender-d24208953dc275b6\out/sha
ders.rs:71:30
|
71 | h.insert("shared_other", include_str!("UNC/vboxsrv/daniel/win-src/webre
nder/webrender/res/shared_other.glsl"));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: couldn't read src\UNC/vboxsrv/daniel/win-src/webrender/webrender/res/ps_r
adial_gradient.fs.glsl: The system cannot find the file specified. (os error 2)
--> e:\win-src\webrender\target\debug\build\webrender-d24208953dc275b6\out/sha
ders.rs:72:39
|
72 | h.insert("ps_radial_gradient.fs", include_str!("UNC/vboxsrv/daniel/win-
src/webrender/webrender/res/ps_radial_gradient.fs.glsl"));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Comment 7•7 years ago
|
||
Thanks. This should be filed as a bug against webrender upstream, at https://github.com/servo/webrender/issues/ as that's where it will need to be fixed. Do you mind doing that? They might need more information about your particular setup.
Reporter | ||
Comment 8•7 years ago
|
||
Comment 9•7 years ago
|
||
Thanks. We can leave this bug open for now and close it once we pull in the webrender update that has the fix for the above issue.
See Also: → https://github.com/servo/webrender/issues/1258
Updated•7 years ago
|
Whiteboard: [gfx-noted]
Updated•7 years ago
|
Priority: -- → P3
Updated•7 years ago
|
Blocks: stage-wr-nightly
Comment 10•7 years ago
|
||
This is a developer-facing issue rather than a user- or web-facing issue, so bumping to the backlog. We don't need to fix this before shipping.
Updated•7 years ago
|
status-firefox56:
--- → unaffected
status-firefox57:
--- → unaffected
Comment hidden (Intermittent Failures Robot) |
Comment 12•6 years ago
|
||
The log from the failure in comment 11 is interesting, there are a couple of ICEs in the rust compiler. Not actually related to this bug as filed, but might be worth investigating. Michael, do these stacks look familiar to you?
https://treeherder.mozilla.org/logviewer.html#?job_id=211958845&repo=autoland&lineNumber=27137
https://treeherder.mozilla.org/logviewer.html#?job_id=211958845&repo=autoland&lineNumber=27293
Flags: needinfo?(mwoerister)
Comment hidden (Intermittent Failures Robot) |
Comment 14•6 years ago
|
||
The first one looks like it might have to do with an inaccurate system timer and rustc's self-profiler not being prepared for handling this gracefully. (Or it's a bug in the self-profiler itself).
The second, I'm not so sure about. It looks like it might be panicking a second time, while trying to create the error message for the original panic. (Looks a bit like https://github.com/rust-lang/rust/issues/56095).
I haven't seen either of those errors before.
Flags: needinfo?(mwoerister)
Comment 15•6 years ago
|
||
Looks like the first panic is already known as https://github.com/rust-lang/rust/issues/51648. I left a comment on that issue.
Updated•2 years ago
|
Severity: normal → S3
Comment 16•8 months ago
|
||
Assuming this is not an issue anymore, feel free to reopen.
Status: NEW → RESOLVED
Closed: 8 months ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•