tup icon indicating copy to clipboard operation
tup copied to clipboard

Tup >= v0.7.3-8 not working on Windows 8.1 32-bit with x64 CPU

Open marciof opened this issue 9 years ago • 15 comments

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.

marciof avatar Dec 25 '15 21:12 marciof

Have you built from source?

Qix- avatar Dec 25 '15 22:12 Qix-

No, I took the binaries from the download page: http://gittup.org/tup/win32/.

marciof avatar Dec 25 '15 22:12 marciof

@marciof Windows is finicky when it comes to binaries. Try building from source.

Qix- avatar Dec 25 '15 22:12 Qix-

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 avatar Jan 04 '16 20:01 gittup

@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.

Qix- avatar Jan 04 '16 20:01 Qix-

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 avatar Jan 07 '16 19:01 gittup

@gittup yeah, but does it output 64-bit binaries? /MACHINE:X64 I think is the flag that generates 64-bit binaries.

Qix- avatar Jan 07 '16 22:01 Qix-

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.

gittup avatar Jan 07 '16 23:01 gittup

Woah, did Microsoft catch up to modern times and finally stop charging for their 64bit compiler? :o Yay! Disregard then.

Qix- avatar Jan 07 '16 23:01 Qix-

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 :(

gittup avatar Jan 08 '16 00:01 gittup

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.

Qix- avatar Jan 08 '16 00:01 Qix-

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

gittup avatar Jan 08 '16 03:01 gittup

I'm on OS X, or else I would.

Qix- avatar Jan 08 '16 06:01 Qix-

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

hymerman avatar Jan 19 '16 16:01 hymerman

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!

adzenith avatar Apr 19 '16 16:04 adzenith