पर सॉफ्ट फ़्लोट मैं एक एम्बेडेड सिस्टम के लिए सॉफ़्टवेयर पर काम करता हूं जिसमें एफपीयू नहीं है। प्रदर्शन के बारे में अधिक यथार्थवादी दृष्टिकोण प्राप्त करने के लिए मैं अपने डेस्कटॉप पर सॉफ़्टवेयर फ़्लोटिंग पॉइंट लाइब्रेरी के साथ इस सॉफ़्टवेयर को बनाने में सक्षम होना चाहता हूं। क्या किसी को यह हासिल करने के बारे में कोई विचार है?x86_64
अब तक मैंने -msoft-float
का उपयोग जीसीसी के साथ करने में बहुत प्रगति नहीं की है। मैं वर्तमान में क्लैंग का उपयोग कर देख रहा हूं। झंडे -Xclang -msoft-float -Xclang -no-implicit-float
का उपयोग करके और एक लाइब्रेरी निर्दिष्ट करना जिसमें सॉफ्ट-फ्लोट दिनचर्या के कार्यान्वयन हैं, मैं संकलन के लिए अपना आवेदन प्राप्त करने में सक्षम हूं। जब मैं इसे चलाने की कोशिश करता हूं, तो यह हमेशा segfaults। जैसा कि मैं सबसे अच्छा बता सकता हूं, ऐसा इसलिए है क्योंकि पुस्तकालय जिन पर इस कार्यक्रम पर निर्भर करता है, नरम-फ्लोट के साथ संकलित नहीं किया गया था। ऐप gtk, sqlite, expat, gcrypt, कई आंतरिक पुस्तकालयों, और libc पर निर्भर करता है।
मैं यह समझने की कोशिश करना चाहता हूं कि मुलायम-फ्लोट समर्थन के साथ एक पूर्ण निर्माण वातावरण कैसे बनाया जाए। मैंने uclibc के buildroot की कोशिश की और CC
और CXX
को क्लैंग की बाइनरी में सेट करने की कोशिश की, लेकिन यह gcc टूलचैन (कंपाइलर संस्करण गलत होने के बारे में शिकायत करने वाली ऑटोटूल जैसी चीजों को संकलित करने के लिए आवश्यकताओं के कारण काम नहीं करता)। चूंकि मैं क्लैंग को नए बिल्ड्रोट में संकलक के रूप में उपयोग करना चाहता हूं (सॉफ्ट-फ्लोट सपोर्ट करने के लिए), मुझे जीसीसी बनाने की दबदबा की आवश्यकता नहीं दिख रही है। क्या यह जीसीसी के बिना ऐसा करना संभव है?
मुझे लगता है कि इस कोड को बदले बिना असंभव है, क्योंकि 'x86_64' ABI की आवश्यकता है' xmm' उपस्थित होने का पंजीकृत करता है। हो सकता है कि कुछ '-Ddouble = mpfr :: असली' ट्रिकरी 'mpfr' लाइब्रेरी का उपयोग करके काम करेगी, जिसे वैसे भी' gcc' द्वारा आवश्यक है। – hirschhornsalz
जैसा कि उल्लेख किया गया है, 'क्लैंग' फ़्लोटिंग पॉइंट निर्देशों या रजिस्टरों के संदर्भ के बिना बाइनरी संकलित करने में सक्षम था। मुझे लगता है कि मेरा असली सवाल इसलिए है कि अगर ऐसा कुछ उपयोग करके पूरे टूलचेन बनाने का कोई तरीका है। –
प्रस्तावित समाधान ठीक था? –