2

I'm working on a tool which modifies clickonce manifests. I found an ambiguity in the MSDN documents around the clickonce application manifest. It says:

Specifies the processor. The valid values are msil for all processors, x86 for 32-bit Windows, IA64 for 64-bit Windows, and Itanium for Intel 64-bit Itanium processors.

But yet, this doesn't cover all values. If I compile a clickonce application for a 64-bit only executable, I'll get a manifest with the value amd64. Is this interchangeable with ia64?

Peter Cordes
  • 328,167
  • 45
  • 605
  • 847
Earlz
  • 62,085
  • 98
  • 303
  • 499

2 Answers2

1

amd64 and ia64 are completely different plaforms. They are not interchangeable. The comment from microsoft is indeed misleading.

dmaij
  • 1,017
  • 7
  • 15
  • what is different between them? I thought, aside from some very specific things like virtualization, they were basically compatible (that is, Intel's x86-64 and amd64) – Earlz Dec 13 '12 at 19:54
  • IA64 is a complete redesign by Intel. Where x86-64 and amd64 are eseentially 386 developed further, ia64 is done all over. Almost the only thing in common is that they are both 64 bit. No seriously, the ia64 is really a different architecture, with a different command set. I wouldn'd trust amd64 code to run on ia64 just because they both are 64 bit. – dmaij Dec 13 '12 at 19:58
  • Are you talking about Itanium!? I've never heard of this IA64, and it's existed since Clickonce initially was released apparently – Earlz Dec 13 '12 at 20:02
  • Correct. IA64 is the platform code for itanium. That might explain the confusion. – dmaij Dec 13 '12 at 20:51
  • I just looked at the docs at microsoft and filed a complaint about not being correct. I don't think they will do anything with it, so assume microsoft being microsoft x86-64 is from now on ia64 and itanium never happened, making my answer obsolete @Earlz: it might be interchangable after all (be careful though) – dmaij Dec 13 '12 at 20:58
  • Windows, and MS in general, uses "x64" for x86-64 / amd64. ia64 would be completely wrong: it unambiguously means Itanium in all contexts. I *hope* this is just a documentation error. – Peter Cordes Nov 16 '20 at 16:51
  • BTW, Intel's names for x86-64 include Intel64 and IA-32e. https://en.wikipedia.org/wiki/X86-64 / [The most correct way to refer to 32-bit and 64-bit versions of programs](https://stackoverflow.com/a/53364541) – Peter Cordes Nov 17 '20 at 01:07
0

IA64 refers to Intel's Itanium CPU (developed in partnership with HP) which is 64-bit but which is NOT compatible with the widely used Intel x86 architecture (386,486,Pentium,CORE i3/i5/i7,various AMD,etc). The IA64 CPU uses a completely different instruction set than x86, and the IA64 instruction set implements a design known as VLIW (Very Long Instruction Word). HP was apparently the main vendor of IA64 systems and they had developed the CPU (with Intel) as a replacement for their own RISC CPU, the HP PA-RISC. HP used Itanium 2 CPUs in their Integrity line of servers, with the high-end model of that line featuring up to 64 Itanium 2 CPUs. HP offered their Unix variant HP-UX as the OS for these IA64 systems, but there was also the option of running a version of Linux for IA64. Although there were Windows XP and Windows Server releases for Itanium-based systems, I'm not aware of any Windows desktop PC model having much sales success with IA64 CPUs. There were also Linux releases for IA64 including Red Hat.

  • Just wanted to comment on the following from 'dmaij': "...assume microsoft being microsoft x86-64 is from now on ia64 and itanium never happened" – Laurence Josserand Nov 15 '20 at 14:09