From The Linux Foundation
Jump to: navigation, search

Multiple Architecture Support for LSB Runtimes

Some LSB-conforming implementations may be capable of supporting multiple LSB architectures on the same system, either through native support (typically 32/64 bit combinations) or through emulation. No released LSB specification has required a conforming implementation to concurrently support multiple LSB architectures as a condition of conformance. There are also no current plans to add such a requirement, although interested parties are free to lobby for such a change.

It's a reasonable question to ask if, for example, on an LSB-certified 64-bit platform an LSB-certified 32-bit app of matching architecture will run. The answer as noted above is: it's up the implementation, the LSB does not require it.

If an implementation wishes to support multiple LSB architectures concurrently, this would be treated as distinct conformance efforts, for example a ppc64 distribution that wanted certification for both would need to submit both a ppc64 and a ppc32 certification application.

The LSB does not believe that there is any specific technical issue that makes such concurrence impossible, but some discussion follows below.

Packaging Provides

The Packaging specification requires architecture-specific package manager provides,

as well as the generic
ones, so these should be able to coexist.

Although outside the scope of the LSB specification, the way package managers support multiple architectures is far from standardized; in some cases they can install two different architecture packages of the same base name, in others they need to have distinguishable names. This is just a note as far as implementations go - they can make the LSB conformance work however they need to. It does suggest, however, that there might be a naming convention issues on the application side, where it cannot be hidden as an "implementation detail".

command, since LSB 2.0, is also able to provide answers for multiple architectures -

the mechanism for this is documented in the Packaging specification.

LSB Linker

The LSB runtime linker is defined to require an architecture-specific name, so these can coexist.

Libraries and Library Paths

There's probably not an issue when only two related (32/64) architectures are supported, as the platforms which have this capability separate between {lib} and {lib64}. However, the current model does answer this in a general way.

Commands and Utilities

Commands called by an application do not typically need to be different between related

architectures, e.g. calling the same
from either a 32 or 64 bit application

package should be fine. Is this sufficient in the general case?

[[[MultiArch]]/Comments User Comments] [[Include(MultiArch/Comments)]]