IntelSixtyFourBitLinux is a Linux system for Intel 64 bit CPUs which also have to run 32 bit code as well. The designers of such a Linux distribution have to make a decision on how to store libraries for each type of software so that the correct library can be linked when needed with the minimum of knowledge.
See UbuntuLinux for a discussion of the problems which arise when different decisions are made by different distribution designers.
There are two relevant standards for such things, FilesystemHierarchyStandard (FHS) and LinuxStandardBase (LSB). Unfortunately they do not define a solution to this particular problem.
Who says they have to run both 32- and 64- bit code? Microsoft decided they wanted 32-bit compatibility for their 64-bit OSes, but there's no rule that says a 64-bit OS has to run 32-bot code...? -- MikeSmith
People don't have to but they may well find it convenient to do so. It makes sense when an application is only available in 32 bit for some reason. The problem arose for me when I was building a version of the gcc compiler, which is a tool which can compile for both modes, so needs to know where to put the libraries. The distribution designers have allowed for both so that tools can be brought across. I think in practice most users will be using some 32 bit code. I think it is a good thing for developers to be aware of the issue. It is worthwhile in my opinion to have a look at https://wiki.ubuntu.com/MultiarchSpec?. (sorry https links don't work here) -- JohnFletcher
Content moved and adapted from SixtyFourBitLinux which is not a specific enough name to describe what I meant. -- JohnFletcher