2012-12-11 3 views
6

क्रॉस संकलन उपकरण पार करते समय, आपको अक्सर "एक लक्ष्य तिहराई" प्रदान करना होगा। उदाहरण दियाक्या उपयोग में सभी ज्ञात लक्ष्य ट्रिपलेट्स की एक सूची मौजूद है?

  • i686-पीसी-linux-gnu
  • हाथ-नन-linux-gnueabi
  • PowerPC-अज्ञात-linux

और इतने पर ...

इन ट्रिपलेट्स, जो कि वास्तव में चार घटक हैं, में निम्नलिखित रूप हैं:

<CPU>-<MANUFACTURER>[-<KERNEL>]-<OS>

कर्नेल वैकल्पिक है और निर्माता "अज्ञात" या "कोई नहीं" जैसा कुछ हो सकता है, क्योंकि यह प्रायः प्रासंगिक नहीं होता है।

जो मुझे अभी तक नहीं मिला है वह एक पृष्ठ है जो यहां उपयोग किए जाने वाले सभी संभावित मूल्यों को दस्तावेज करता है। मुझे पता है कि सभी घटक बहुत अधिक "मुक्त शैली" हैं, इसलिए कोई आधिकारिक मानक नहीं है जो आपको आधिकारिक मानकीकृत सूची से घटकों का उपयोग करने के लिए मजबूर करेगा। फिर भी टूल डिज़ाइनर और कॉन्फ़िगर स्क्रिप्ट लेखकों से उम्मीद है कि उपयोगकर्ता अपने ट्रिपलेट को उनके टूल्स/स्क्रिप्ट्स में निर्दिष्ट कर सकें, इसलिए उनके पास कुछ संभावित मूल्यों को ध्यान में रखना चाहिए और वहां "अनौपचारिक सूची" टूल निर्माता, स्क्रिप्ट लेखकों और उपयोगकर्ता जैसे कुछ हो सकते हैं संदर्भ।

क्या किसी को कभी ऐसी सूची मिली है?

उत्तर

5

हां, libtool स्रोतों में है। इसे PLATFORMS कहा जाता है। यह शायद पूरा नहीं है। config.sub नामक एक फ़ाइल भी है जो उत्पन्न होती है जब autoreconf चलाया जाता है। वे शायद अधिक अद्यतित/पूर्ण हैं।

लेकिन परिभाषा के अनुसार, आप जो पूछ रहे हैं वह असंभव प्रतीत होता है। यदि कोई नया 'xyz' CPU है जो कुछ निर्माता रोल आउट करता है तो यह एक समय के लिए सूची में दिखाई नहीं देगा।

तो configure स्क्रिप्ट लेखक उस मामले में क्या करता है? मेरा समाधान निम्नलिखित है। मेरे पास autoreconf है जिसे bootstrap.sh नामक एक स्क्रिप्ट में बुलाया गया है जो Goat Book लोगों द्वारा वकालत के रूप में निर्माण से पहले कुछ चीजें सेट करता है। autoreconf के बाद मुझे AC_CONFIG_AUX_DIR पर प्रतिलिपि बनाने के लिए config.sub में जो कुछ चाहिए, उसे जोड़ने के लिए यह स्क्रिप्ट sed (अच्छी तरह से तकनीकी रूप से sed wrapper स्क्रिप्ट GNU shtool) का उपयोग करती है।

सौभाग्य से, config.sub फ़ाइलों को टाइमस्टैंप किया गया है, इसलिए अगर "आधिकारिक" सूची में 'xyz' जोड़ा जाता है तो आप बस टाइमस्टैम्प का परीक्षण कर सकते हैं। फिर आप अपने टैरबॉल में नया "आधिकारिक" config.sub जोड़ देंगे और bootstrap.sh का उपयोग यह जांचने के लिए करेंगे कि autoreconf हाल ही में पर्याप्त config.sub लिख रहा है या नहीं। यदि यह हाल ही में पर्याप्त नहीं है, तो पुराने व्यक्ति को नए के साथ कॉपी करें।

+0

PLATFORMS सूची के लिए +1, दुर्भाग्य से यह पूरी तरह से एआरएम को याद करता है। – Mecki

+0

[llvm :: ट्रिपल क्लास रेफरेंस] भी है (http://llvm.org/docs/doxygen/html/classllvm_1_1Triple.html)। न केवल एआरएम सूचीबद्ध है, इसलिए आईओएस भी है। यह शायद क्लेंग के लिए सहायक होगा। मुझे यकीन नहीं है कि लिनक्स उपकरणों के लिए कितना उपयोगी है। – jww

संबंधित मुद्दे