Skip to content

Support clang build on windows. #163

Closed

Description

@gengjiawen

We have run into multi issues using msvc compiler. Is it possible we add clang support for windows too.
Some benefits:

  • v8 use clang on windows too, v8 build will be less problematic.
  • clang is small compared to visual studio
  • ninja support

cc @nodejs/v8 @nodejs/build

Activity

  1. targos commented on Jun 29, 2020

    @targos
    Member

    It's possible if someone does the work to enable it.

  2. ryzokuken commented on Jun 29, 2020

    @ryzokuken

    @gengjiawen it sounds like a major win. As @targos said, I hope someone finds the time and energy to make this happen.

  3. richardlau commented on Jun 29, 2020

    @richardlau
    Member

    This is probably one for @nodejs/platform-windows (in particular @joaocgreis and @bzoz). As long as Node.js supports building with MSVC we'll need to continue building on it so adding an additional toolchain (clang) doesn't avoid us having to fix the build with MSVC.

  4. gengjiawen commented on Jun 29, 2020

    @gengjiawen
    MemberAuthor

    an additional toolchain (clang) doesn't avoid us having to fix the build with MSVC.

    Actually v8 doesn't use msvc bring too much trouble when we building Node.js.If this is doable, we can move msvc support to second layer ?

    The biggest problem with msvc is that, it's very hard to debug with all those mistery.
    It often take many days to debug a msvc-only problem like in this repo and bnoordhuis/v8-cmake#10.

  5. mmarchini commented on Jun 29, 2020

    @mmarchini

    It would be amazing if we could do so, and it had been suggested before by V8. One thing to consider is that such a change would be semver-major, and the biggest challenge is ensuring native modules still work (and I'm not sure if native modules would need a different toolchain with clang instead of msvc, @nodejs/platform-windows might know it). As soon as we had this working it would be feasible for us to use clang to test this repo, since V8 updates are semver-major by default.

  6. targos commented on Jul 13, 2020

    @targos
    Member

    I started experimenting with ClangCL here: https://github.com/targos/node/commits/clang-cl
    Currently blocked on ICU: nodejs/node#34201

  7. targos commented on Jan 10, 2024

    @targos
    Member

    Work is happening on nodejs/node#35433

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions