Yorumda daha önce bahsedildiği gibi, varsayılan olarak hedef üçlüsü config.guess betiği tarafından oluşturulur . Mantık oldukça basit. İlk olarak uname
bazı temel sistem bilgilerini almak için kullanılır :
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
Bu dizeler birleştirilir ve sabit kodlanmış desenlerle eşleştirilir. Sonuç ayrıca kodlanmıştır:
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
...(snip)...
x86_64:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
...(snip)...
Bazı sistemler için, "rs6000-ibm-aix" deki IBM gibi daha anlamlı sonuçlar vermek mümkündür.
Dağıtım koruyucular bu dizeyi kendileriyle (ayrıca sabit kodlanmış) geçersiz kılar:
$ 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 muhtemelen varsayılan olarak x86_64-pc-linux-gnu çıktısı verir: yukarı akış deposunda güncellenmiş config.guess .