Como ya se mencionó en el comentario, por defecto el triplete objetivo es generado por el script config.guess . Su lógica es bastante simple. Primero se utiliza uname
para obtener información básica del sistema:
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
Estas cadenas se combinan y se combinan con patrones codificados. El resultado también está codificado:
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
...(snip)...
x86_64:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
...(snip)...
Para algunos sistemas es posible dar un resultado más significativo, como IBM en "rs6000-ibm-aix".
Los mantenedores de distribución simplemente anulan esta cadena con la suya propia (también codificada):
$ 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 probablemente generará x86_64-pc-linux-gnu de forma predeterminada: config.guess actualizado en el repositorio ascendente.