Closed Bug 1654109 Opened 1 year ago Closed 11 months ago

Firefox binaries have Unix paths in codeview_pdb70_debug_info which breaks symbolication in WPA


(Firefox Build System :: Toolchains, defect)



(firefox-esr78 wontfix, firefox82 wontfix, firefox83 wontfix, firefox84 fixed)

84 Branch
Tracking Status
firefox-esr78 --- wontfix
firefox82 --- wontfix
firefox83 --- wontfix
firefox84 --- fixed


(Reporter: jrmuizel, Assigned: away)




(Keywords: regression)


(1 file)

Previously, we'd have a path like: "z:\task_1581500222\build\src\obj-firefox\gfx\angle\targets\libGLESv2\libGLESv2.pdb"

Now we have a path like: /builds/worker/workspace/obj-build/gfx/angle/targets/libGLESv2/libGLESv2.pdb

This seems to break various programs on Windows that try to download the symbols (WPA) because they try to get the symbol using the full path instead of the just the file name.

FWIW, it looks like this change may have happened some time between February and now.

Blocks: 1654013

More specifically it looks like the change happened 19th or 20th of March

Regressed by: ship-win-cross

In fact it looks like %_PDB% is magic string to just use the basename of the pdb. So adding /pdbaltpath:%_PDB% should just work.

Glandium, is adding /pdbaltpath:%_PDB% practical?

Flags: needinfo?(mh+mozilla)

You tell me. Doesn't it break debugging local builds?

Flags: needinfo?(mh+mozilla)

Yeah, I guess it would. The alternatives are to pass a Windows like path to /pdbaltpath, move the pdbs so that we can get %_PDB% to work or fix lld to rewrite the path. What do you think is best?

Flags: needinfo?(mh+mozilla)

Could we set /pdbaltpath:%_PDB% only if the host is Linux?

That seems like it would work too.

if the host is not Windows, yes.

Flags: needinfo?(mh+mozilla)

Does this build behave as expected?

(Need to use for the symbol server)

Flags: needinfo?(jmuizelaar)

Jeff, heads up, the try push symbols are going to age out soon.

I'll try today.

Yep, symbols load in Windows Performance Analyzer with that try build

Flags: needinfo?(jmuizelaar)

In cross-compiled Windows builds, our binaries embed PDB paths like /builds/worker/... which breaks some Windows tools that expect Windows-style paths. This patch sets -PDBALTPATH:%_PDB% which instructs the linker to emit only the basename. That's apparently enough that the tools can still find the right symbols.

Assignee: nobody → dmajor
Pushed by
Use PDB basename in cross-compiled Windows builds r=firefox-build-system-reviewers,mhentges
Closed: 11 months ago
Resolution: --- → FIXED
Target Milestone: --- → 84 Branch
You need to log in before you can comment on or make changes to this bug.