Closed Bug 1314625 Opened 8 years ago Closed 8 years ago

make clang-cl builds compile with module support

Categories

(Firefox Build System :: General, defect)

All
Windows
defect
Not set
normal

Tracking

(firefox52 affected)

RESOLVED INCOMPLETE
Tracking Status
firefox52 --- affected

People

(Reporter: froydnj, Unassigned)

References

Details

To make a long story short, our copy of ffmpeg (and upstream's) won't build with clang-cl because of subtle incompatibilities with Intel intrinsics.  The long version is written up in http://lists.llvm.org/pipermail/cfe-dev/2016-September/050943.html

The outcome of that mailing list thread seems to be that one has to enable modules support (http://clang.llvm.org/docs/Modules.html) to deal with this incompatibility.  This is totally doable (I have done it locally), but it requires manually providing clang-cl with a temporary directory to stash module information.  clang would normally compute an appropriate directory itself, but clang-cl cannot, for reasons discussed in the above mailing list thread.

If we wanted to add the appropriate flags, what's the right place to put them?  We could add them in toolchain.configure, but that's a bit odd, because they're not required for standards compliance, target architecture, etc.  We could add them in old-configure.in, which would be simplest, but it'd be one more thing to move over to Python configure.

Presumably we'd just put the modules cache somewhere under topobjdir.
Flags: needinfo?(mh+mozilla)
It seems to me we should limit those flags to the ffmpeg directories... so they would belong to some moz.build/common.mozbuild file
Flags: needinfo?(mh+mozilla)
(In reply to Mike Hommey [:glandium] from comment #1)
> It seems to me we should limit those flags to the ffmpeg directories... so
> they would belong to some moz.build/common.mozbuild file

Yeah, we don't need modules everywhere right now, just for ffvpx.
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → INCOMPLETE
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.