tup
tup copied to clipboard
Tup >= v0.7.3-8 not working on Windows 8.1 32-bit with x64 CPU
Error message from tup-v0.7.3-8-g081564d.zip:
C:>tup This version of C:\Program Files\tup\tup.exe is not compatible with the version of Windows you're running. Check your computer's system information and then contact the software publisher.
Last known release that works on my computer is tup-v0.7.3-4-g1a8d07e.zip.
Have you built from source?
No, I took the binaries from the download page: http://gittup.org/tup/win32/.
@marciof Windows is finicky when it comes to binaries. Try building from source.
I'd guess this is because tup.exe is now built targetting x86-64 instead of a 32-bit binary. Is there a way to handle this with a single binary? Or do I need to build a 32-bit version of tup as well? (if that's even still possible).
@gittup you need both. Windows doesn't have universal binaries like OS X does. 32-bit binaries can run on 64-bit machines thanks to WOW32 on Windows, but not the other way around.
Also something else to keep in mind, 32-bit compilers for MS are free, but the 64-bit compilers cost money.
Hmm, they do? I have a 64-bit cl.exe that came with the express edition of VS. In either case, tup should work with a 32-bit compiler, as long as Windows itself is 64-bit. This issue is if Windows is 32-bit.
@gittup yeah, but does it output 64-bit binaries? /MACHINE:X64
I think is the flag that generates 64-bit binaries.
I think so:
$ cl ok.c Microsoft (R) C/C++ Optimizing Compiler Version 18.00.21005.1 for x64 Copyright (C) Microsoft Corporation. All rights reserved.
ok.c Microsoft (R) Incremental Linker Version 12.00.21005.1 Copyright (C) Microsoft Corporation. All rights reserved.
/out:ok.exe ok.obj
$ file ok.exe ok.exe: PE32+ executable (console) x86-64, for MS Windows
(compared to ok.exe: PE32 executable (console) Intel 80386, for MS Windows from the 32-bit version).
I just ran VS2013 x64 Cross Tools Command Prompt from my VS install.
Woah, did Microsoft catch up to modern times and finally stop charging for their 64bit compiler? :o Yay! Disregard then.
It's possible I'm mis-remembering and bought a full version one day? It looks like I installed it two years ago, but I have no memory of it unfortunately :(
Oh :/ Yeah. If memory serves, express versions don't include the 64-bit compilers. Once you buy VS (not-express) then you can compile in 64-bit. Not sure if they've changed that with the community version but I highly doubt it.
Want to try re-installing it and see what happens? I have the 32-bit version at: /cygdrive/c/Program Files (x86)/Microsoft Visual Studio 12.0/VC/BIN/cl and 64-bit at: /cygdrive/c/Program Files (x86)/Microsoft Visual Studio 12.0/VC/BIN/x86_amd64/cl
I'm on OS X, or else I would.
Just passing by - this may be irrelevant if Tup isn't meant to be built with VS2015, but you definitely can build 64-bit executables with Visual Studio 2015 Community edition:
https://msdn.microsoft.com/en-us/library/hs24szh9.aspx (links to latest doc on MSDN, VS2015 at the time of writing this comment)
That wasn't the case for VS2013 and earlier, though apparently an x86_x64 cross-compiler was supplied:
https://msdn.microsoft.com/en-us/library/hs24szh9(v=vs.120).aspx https://msdn.microsoft.com/en-us/library/hs24szh9(v=vs.110).aspx
I just ran into this problem as well. I'll try building from source, but it would be fantastic if there were 32-bit binaries on the website as well. Thanks!