PackagingDrafts/CrossCompilers

From FedoraProject

Jump to: navigation, search

Contents

Guidelines for Cross-compilation packages

Naming

Cross-compiler packages follow this naming scheme:

where

The version and release are appended as usual and of course the host architecture is included in the final rpm naming in the usual manner.

For example, a binutils package targeted at the RTEMS 4.7 environment on i386 would be named:

The full filename of the package, for version 2.16 and release 5 hosted on an x86_64 machine running FC-5, would be

(need more examples)

[racor: The cross-prefix is redundant and superfluous. IMNSHO, it is as silly as would be enforcing all native tools to be prefixed by "native". ]Counter proposal: <target-non_canonical>-<package> is sufficient. This proposal reflects the canonicalization conventions being applied by the GNU toolchains. e.g. gcc -> <target_non_canonical>-gcc, as -> <target_non_canonical>-as, etc.

File Naming

Executables and manpages which live in the regular search paths should be prefixed with (or perhaps suffixed by?) "ARCH-ENV-" where ARCH and ENV are described above so that they do not conflict with the host files.

[racor: cross tools are native applications. There is no need to special-case them. Like any other packages a cross-tools packages' files MUST NOT conflict. ]The GNU toolchain applies the convention to "canonicalize" (== prepending <target_non_canonical>) such files.

For example, the "objdump" program which is part of the binutils packages targeted at RTEMS 4.7 on i386 would be named

[racor: For the GNU toolchain, this is completely out of the Guidelines's control, but dictated by the implementation. ]It applies its "canonicalization": <target_non_canonical>-<application>.

The same convention is implemented and supported into the autotools.

There is no choice.

File Locations

Library files and such need to live in a separate hierarchy per ARCH-ENV. A couple of possibilities:

[racor: For the GNU toolchain, this is completely out of the Guidelines's control, but dictated by the implementation. ]The GNU toolchain applies $(prefix)/<target_non_canonical>/* for such files. Exceptions:

There is no choice.

The only real problem is $(prefix)/<target_non_canonical>/ not being covered by the FHS nor the LSB.