जैसा कि यह पहले ही टिप्पणी में उल्लेख किया गया था, डिफ़ॉल्ट रूप से लक्ष्य triplet 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)...
कुछ प्रणालियों के लिए अधिक सार्थक परिणाम देना संभव है, जैसे "rs6000-ibm-aix" में IBM।
वितरण अनुरक्षक केवल अपने स्वयं के साथ इस स्ट्रिंग को ओवरराइड करते हैं (हार्डकोड भी):
$ 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
जीसीसी 6 शायद डिफ़ॉल्ट रूप से x86_64-pc-linux-gnu आउटपुट करेगा: अपस्ट्रीम रिपॉजिटरी में नवीनीकृत config.guess ।