20.2.3.2. Setting the Architecture Values
The arch_canon setting builds up a table of mappings between architecture names and the numbers used internally. The following example shows the Intel and SPARC architecture settings to 1 and 3 internally.
arch_canon: athlon: athlon 1
arch_canon: i686: i686 1
arch_canon: i586: i586 1
arch_canon: i486: i486 1
arch_canon: i386: i386 1
arch_canon: sparc: sparc 3
arch_canon: sun4: sparc 3
arch_canon: sun4m: sparc 3
arch_canon: sun4c: sparc 3
arch_canon: sun4d: sparc 3
arch_canon: sparcv9: sparcv9 3
The arch_compat setting builds a table of compatible architectures. The format is:
arch_compat: arch: compatible_with
This sets the given architecture arch as being compatible with another architecture.
For example:
arch_compat: athlon: i686
This setting indicates that an athlon architecture is compatible with an i686. The table gets built up further with the following Intel-architecture compatibilities:
arch_compat: i686: i586
arch_compat: i586: i486
arch_compat: i486: i386
arch_compat: i386: noarch
The os_canon setting defines a table of operating system labels and internal numeric values. The basic syntax is:
os_canon: arch: name value
The arch comes from the uname(2) call. The name provides an RPM name for that operating system, and the value defines an internal numeric ID for that OS, for example:
os_canon: Linux: Linux 1
os_canon: HP-UX: hpux10 6
The buildarchtranslate setting defines the operating system settings to use as the build architecture. This value translates information from the uname(2) call to a value used by the arch_canon setting. For example:
buildarchtranslate: athlon: i386
buildarchtranslate: i686: i386
buildarchtranslate: i586: i386
buildarchtranslate: i486: i386
buildarchtranslate: i386: i386
buildarchtranslate: sun4c: sparc
buildarchtranslate: sun4d: sparc
buildarchtranslate: sun4m: sparc
buildarchtranslate: sparcv9: sparc
buildarchtranslate: sun4u: sparc64