Это производственная часть тройки конфигурация / цель. Об этом говорится в Autobook :
manufacturer
A somewhat freeform field which indicates the manufacturer of the system. This is often simply `unknown'. Other common strings are `pc' for an IBM PC compatible system, or the name of a workstation vendor, such as `sun'.
В руководстве autoconf это называется company
.
Я не эксперт в компиляции с GCC, но похоже, что информация, предоставляемая этим полем, носит скорее информационный характер, а unknown
- это просто значение по умолчанию, которое GCC использует, если явно не перезаписано. GCC в Ubuntu 12.04, например, использует x86_64-linux-gnu
, Debian 7s GCC i486-linux-gnu
, поэтому вполне возможно оставить поле пустым.
Как уже было сказано в комментарии, по умолчанию целевой триплет генерируется скриптом config.guess. Его логика довольно проста. Сначала он использует uname
для получения базовой информации о системе:
UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
Эти строки комбинируются и сопоставляются с жестко закодированными шаблонами. Результат также жестко закодирован:
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
...(snip)...
x86_64:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
...(snip)...
Для некоторых систем можно дать более значимый результат, например, IBM в "rs6000-ibm-aix".
Сопровождающие дистрибутивы просто переопределяют эту строку своей собственной (также жестко закодированной):
$ gcc -v
...(snip)...
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.9.2-10'
...(snip)...
--target=x86_64-linux-gnu
GCC 6, вероятно, будет выводить x86_64-pc-linux-gnu по умолчанию: обновлен config.guess в репозитории upstream.