9

Does anyone (here) know if Windows 8 will have a sort of fat exe that one can compile with Visual Studio 2012 that will be supported on both ARM and x86 machines? I am guessing not, since you can't create fat binaries that will execute 32 or 64 bit code so far as I am aware (only solution available that I am aware of is 32 bit that creates a 64 bit executable on the fly).

It seems like it would be helpful of Microsoft to extend exe or create a fat binary format for Windows 8 and beyond at least that would allow one to compile a single executable for Window's expanding palette of platforms.

edit: The following link shows how to compile an ARM exe in the first dev preview. Figured I would add that because it gives no hint of fat binary support, but it is also early in the game. I don't think not having it now rules it out as a possibility. Compile for ARM

Joshua W
  • 1,103
  • 12
  • 29
  • 1
    I thought the focus would be to compile .NET programs, so it would work on x86/x86_64 as well as ARM. Interesting question. – Prof. Falken Oct 19 '11 at 12:43
  • 1
    I think this is a focus of the .NET byte code... however, if I am not mistaken, you still need to compile for a particular architecture. I think this is for the start code that launches the JIT compiler. Don't quote me on that, though. Also, the Windows 8 App Market will probably allow commits for each type of binary. Up-voted for the good commentary, regardless. – Joshua W Oct 28 '11 at 02:26

3 Answers3

2

The need for fat binary support in Windows 8 is mitigated by the requirement that binaries for the ARM platform be distributed through the Windows app store. Modern apps are compiled to a single package.

Joshua W
  • 1,103
  • 12
  • 29
0

Separate binaries are needed for execution on different systems. Similar as they have for win32 and win64.

avra
  • 3,690
  • 19
  • 19
0

I've seen no news, hints, or even rumors about such feature. Considering that we already have to keep a separate set of executables and DLLs for x86 and x64, I don't see this changing for ARM. Also, considering ARM machines usually have quite limited memory as it is, dragging along x86/x64 ballast "just in case" makes even less sense.

Igor Skochinsky
  • 24,629
  • 2
  • 72
  • 109
  • I am aware of the constraints that ARM systems typically have, however I anticipate tablets and such will not have nearly these constraints, not to mention that the bulk of a complex program is not in the executable, but in the supporting files if I am not mistaken. – Joshua W Sep 23 '11 at 04:34
  • So? The flash space is still limited, and if every binary is two or three times bigger than what's necessary, you can run out of space very fast. Either way, the first part of my answer still stands, so what's up with the downvoting? – Igor Skochinsky Oct 19 '11 at 15:31
  • 1
    The first is a guess and the other is wrong. (Nothing wrong with guesses though.) The up and coming ARM machines can have as large disks as any x86 notebook, and they can address at least 2 gigabyte RAM, maybe 4. Here is Windows 8 running on 1 gigabyte RAM ARM: http://www.tekgoblin.com/2011/04/13/windows-8-has-leaked-compatible-with-arm-processors-proof-video/ – Prof. Falken Oct 19 '11 at 16:08
  • For what it's worth *I* don't think either that Windows 8 will support FAT binaries. I think they will encourage people to go .NET – Prof. Falken Oct 19 '11 at 16:09
  • I don't have the rep to down-vote, but I would imagine it is because your concerns don't seem to be that valid, @IgorSkochinsky. Tablets and smart phones are quickly becoming extremely capable machines. The hardware in the new Droid Razr, for instance surpasses that of the computers I was using not five years ago. Thanks for the input, though. I welcome expanded thoughts on why a modern tablet wouldn't be able to handle a fat binary, especially since it is capable of running Windows 8. – Joshua W Oct 28 '11 at 02:38