Closed Bug 1512504 Opened 5 years ago Closed 5 years ago

Drop support for building on MSVC

Categories

(Firefox Build System :: General, enhancement)

enhancement
Not set
normal

Tracking

(firefox67 fixed)

RESOLVED FIXED
mozilla67
Tracking Status
firefox67 --- fixed

People

(Reporter: RyanVM, Assigned: glandium)

References

()

Details

Attachments

(4 files)

Per discussion today, we intend to drop support for MSVC once clang-cl has proper ARM64 support.
Depends on: 1512822

I'll work on a patch for this, although I'm not sure when we should go ahead and actually land it.

Assignee: nobody → mh+mozilla

An bonus point of dropping MSVC support is that we would be able to start using designated initializer immediately, as GCC and Clang have supported that in C++ for long, while MSVC only supports it under C99 (thus not in C++).

(In reply to Mike Hommey [:glandium] from comment #1)

I'll work on a patch for this, although I'm not sure when we should go ahead and actually land it.

The next merge day is Monday, January 28th, so I'd vote for immediately after the merge.

(In reply to Ted Mielczarek [:ted] [:ted.mielczarek] from comment #3)

(In reply to Mike Hommey [:glandium] from comment #1)

I'll work on a patch for this, although I'm not sure when we should go ahead and actually land it.

The next merge day is Monday, January 28th, so I'd vote for immediately
after the merge.

We just updated clang to a release candidate build that may still have some bugs to shake out before the official release. I don't want to open myself up to "you broke my clang and took away my MSVC" rage. Could I ask for at least a week of grace period?

Depends on: 1523146
Depends on: 1524467

(In reply to David Major [:dmajor] from comment #4)

We just updated clang to a release candidate build that may still have some bugs to shake out before the official release. I don't want to open myself up to "you broke my clang and took away my MSVC" rage. Could I ask for at least a week of grace period?

There's no real pressing need here. We can just start removing MSVC-specific code once we do this.

Consequently, this removes:

  • MOZ_LIBPRIO, which is now always enabled.
  • non_msvc_compiler, which is now always true.
  • The cl.py wrapper, since it's not used anymore.
  • CL_INCLUDES_PREFIX, which was only used for the cl.py wrapper.
  • NONASCII, which was only there to ensure CL_INCLUDES_PREFIX still
    worked in non-ASCII cases.

This however keeps a large part of detecting and configuring for MSVC,
because we still do need it for at least headers, libraries, and midl.

Depends on D19614

Depends on D19615

clang-cl defines it on its own, although the value is slightly different
from FUNCSIG (it doesn't contain the ABI, which doesn't really
matter). We've only been setting it this was on clang-cl by extension of
setting it for msvc.

Depends on D19616

See Also: → 1510163
Pushed by mh@glandium.org:
https://hg.mozilla.org/integration/autoland/rev/a47861d74f11
Remove automated msvc builds. r=froydnj
https://hg.mozilla.org/integration/autoland/rev/51c3380d5b94
Remove support for MSVC. r=froydnj
https://hg.mozilla.org/integration/autoland/rev/d4093b779fa4
Remove now unused CFG test. r=tjr
https://hg.mozilla.org/integration/autoland/rev/b29c87add05f
Don't set __PRETTY_FUNCTION__ on clang-cl. r=froydnj
Blocks: 1528071
Blocks: 1528074
Blocks: 1528075
See Also: → 1528165
Blocks: 1537673
No longer depends on: 1646904
Blocks: 1651703
You need to log in before you can comment on or make changes to this bug.