|
Description
|
The current solaris link-editor is a native linker, meaning that it can
only link objects of the type supported by the currently running
system. We are facing an increasing need for cross linking, by which a given
instance of the link-editor can link objects destined to run on a different
target than the one running the linker itself:
- The Solaris code makes heavy use of the unique features
supported by Solaris link-editor, many of which were
developed for just that purpose. Ports of OpenSolaris
usually attempt to bootstrap using the GNU ld, which
already supports cross linking, but which does not support
all the Solaris features we use. The ability to add a new
target to the Solaris linker using a non-native host, and then
to use that linker to bootstrap the rest of the system is
a significant shortcut.
- A cross linker opens the door to the development of cross
compilers. This will allow the use of fast and cheap
desktop systems to be used to build code for other less
accessible systems. The target might be a large expensive
system, or a small embedded one.
We currently support linkers for x86 and sparc platforms. The cross
link-editor needs to be able to run on either of these platforms and
link either type of object.
It should be noted that cross linking is well supported on
GNU based platforms.
|