simon-git: putty (master): Simon Tatham
Commits to Tartarus hosted VCS
tartarus-commits at lists.tartarus.org
Thu May 25 08:29:46 BST 2017
TL;DR:
8d2755c Under clang-cl, include stdint.h regardless of _MSC_VER.
f02587f Makefile.clangcl: provide a way to tell lld-link about crt0.obj.
eda5364 Use / in pathnames in the Wix installer source.
Repository: https://git.tartarus.org/simon/putty.git
On the web: https://git.tartarus.org/?p=simon/putty.git
Branch updated: master
Committer: Simon Tatham <anakin at pobox.com>
Date: 2017-05-25 08:29:46
commit 8d2755c55f9d8b854ef9051937ececb23c5a4b23
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=8d2755c55f9d8b854ef9051937ececb23c5a4b23;hp=2e66a0d2601cd4275f039a7cc82c41e4add19f7f
Author: Simon Tatham <anakin at pobox.com>
Date: Thu May 25 08:17:42 2017 +0100
Under clang-cl, include stdint.h regardless of _MSC_VER.
stdint.h is one of the set of standard C headers that has more to do
with the compiler than the library, and hence, clang provides its own
version of it, even when you're using it in clang-cl mode with Visual
Studio headers, and even when those headers are old enough not to have
a stdint.h of their own. So in clang builds, including stdint.h is
always the right way to get uintptr_t defined.
windows/winstuff.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit f02587f7ac4f47982bf97674f5499dd3b6dede4b
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=f02587f7ac4f47982bf97674f5499dd3b6dede4b;hp=8d2755c55f9d8b854ef9051937ececb23c5a4b23
Author: Simon Tatham <anakin at pobox.com>
Date: Thu May 25 08:21:19 2017 +0100
Makefile.clangcl: provide a way to tell lld-link about crt0.obj.
I've been experimenting with using clang-cl with older versions of the
Visual Studio libraries and headers, and found that the older VS
libraries have a quirk which can cause link failure in a way that
doesn't happen with the newer one. I assume the corresponding old VS
linker must be doing some kind of special-case handling that lld isn't
mimicking.
The quirk arises because lld tries to pull in more than one of the
*crt0.obj startup objects which set things up before calling main or
WinMain (or whatever), and those objects define some of the same
symbols as each other. The fix is to explicitly ask for the right one
of those objects on the link command line, so that it's already been
loaded _before_ the linker starts searching libraries for unresolved
symbols; then the disputed symbols are never unresolved in the first
place during the library search phase.
But this means you have to pick your crt0 object differently depending
on which subsystem you're compiling for. Accordingly, here's an extra
feature in Makefile.clangcl to make that possible by means of the
right definitions on the make command line.
mkfiles.pl | 28 +++++++++++++++++++++++++++-
1 file changed, 27 insertions(+), 1 deletion(-)
commit eda5364eb476d4771e1f5a35ff81f50b4e309135
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=eda5364eb476d4771e1f5a35ff81f50b4e309135;hp=f02587f7ac4f47982bf97674f5499dd3b6dede4b
Author: Simon Tatham <anakin at pobox.com>
Date: Thu May 25 08:22:22 2017 +0100
Use / in pathnames in the Wix installer source.
I've also been experimenting recently with running Wix on Linux under
Mono, rather than running it on Windows in the obvious way. Wix under
Mono insists on forward slashes in pathnames, and it turns out that
Wix on Windows doesn't object to them either, so I can safely change
them over unconditionally and then my installer source will work in
both modes.
windows/installer.wxs | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
More information about the tartarus-commits
mailing list