-
Notifications
You must be signed in to change notification settings - Fork 124
Run the CMake smoke test on Windows #757
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Run the CMake smoke test on Windows #757
Conversation
5dba721
to
1b9252a
Compare
@compnerd Any idea what's up with this?
It seems TSC can't build itself because TSCBasic is trying to link libTSCLibc.lib when it should actually be TSCLibc.lib, but the wrong spelling is not referenced anywhere on the command line or in response files! Does it somehow get embedded in the .obj files by the compiler? How is Swift CI currently building TSC successfully with CMake? |
1b9252a
to
bbcbc04
Compare
Yes, the spelling is embedded into the object file by the compiler. The new prefix of |
This is all with nightly (6.3) toolchains...
"remove"? I was able to get past this error by adding that flag. That said, I now get this:
...due to this flag being passed manually here and here. Should we actually remove those? It seems If I instead set CLANG_C_COMPILER / CLANG_CXX_COMPILER to clang-cl to work around the unrecognized flags issue, I'm getting this:
|
…n Windows These were originally added 6 years ago in swiftlang#475 to "Disable incremental linking so llbuild.ilk's don't conflict" because at the time the command line tool and library targets were given the same OUTPUT_NAME, which conflicted. In swiftlang#1005 these targets were given distinct names, so the workaround should no longer be necessary. This helps unblock swiftlang/swift-build#757 because this flag is currently added without regard for the specific compiler driver in use, so the flag might not work based on whether clang-cl.exe or cl.exe vs clang.exe (where it would require a -Xlinker prefix), is used.
It seems fairly clear that those llbuild flags should be removed, so I went ahead and put that up for review: swiftlang/swift-llbuild#1011 |
Ah, okay. I always get confused about the directionality :(. Its just a question of matching the output from CMake to match what the compiler wants.
We need to disable incremental linking as that will break everything as the Swift runtime is unable to deal with the additional padding in the protocol tables which is required for incremental linking. We should be passing
I would say just write this as We should pass in |
…n Windows These were originally added 6 years ago in #475 to "Disable incremental linking so llbuild.ilk's don't conflict" because at the time the command line tool and library targets were given the same OUTPUT_NAME, which conflicted. In #1005 these targets were given distinct names, so the workaround should no longer be necessary. This helps unblock swiftlang/swift-build#757 because this flag is currently added without regard for the specific compiler driver in use, so the flag might not work based on whether clang-cl.exe or cl.exe vs clang.exe (where it would require a -Xlinker prefix), is used.
This would have caught a recent regression.
bbcbc04
to
764b703
Compare
@swift-ci test |
This would have caught a recent regression (#750 / #751).