मेरे पास काम पर एक दिलचस्प स्थिति है कि मैं एक अच्छा समाधान खोजने की कोशिश कर रहा हूं। हमारे पास कोड है जो बहु-कोर एमआईपीएस नंगे धातु (कोई कर्नेल) पर चलता है। हमें कुछ तृतीय पक्ष कोड के साथ एकीकृत करने की आवश्यकता है जिसे अपग्रेड करने की आवश्यकता है। मैं तीसरे पक्ष कोड को पीआईसी के रूप में संकलित करने के बारे में सोच रहा था और फिर जब मैं इस कोड को डाउनलोड करता हूं तो कोड/डेटा प्रतीकों के लिए जीओटी बदलता है (मेरा नियंत्रण है कि कोड कहां रहता है)। साथ ही, मान लें कि तृतीय पक्ष कोड में इंटरफेस बदल नहीं है इसलिए कोई नई पीएलटी/जीओटी प्रविष्टियां नहीं हैं। क्या यह काम करेगा? मुझे अन्य बातों पर विचार करना चाहिए?साझा लाइब्रेरी ऑफसेट्स को ठीक करने के लिए अनुकरण गतिशील लोडर
उत्तर
क्या सही उत्तर "गतिशील लिंकर/लोडर एम्बेड करें" से लंबा है? आपकी समस्या वही दिखाई देती है जो ld.so और पसंद से हल होती है। एक गतिशील लिंकर/लोडर को उन सभी चीजों का वर्णन करना चाहिए जो जॉन लेविन द्वारा Linkers and Loaders जैसी पुस्तकों का विषय है।
मैं अपने स्वयं के एम्बेडेड लोडर लिखने से कुछ आसान ढूंढ रहा हूं। मैंने ऊपर दी गई पुस्तक को पढ़ा है। जब मैं अपनी समस्या के माध्यम से काम कर रहा हूं तो मैं जो कर रहा हूं उसे पोस्ट करूंगा। धन्यवाद!। – vamsi
क्या लिनक्स/यूनिक्स binutils objcopy
आप जो खोज रहे हैं वह बनें। यह मानते हुए कि आप यादृच्छिक क्रम में रनटाइम पर गतिशील रूप से उन्हें लोड करने के बजाय वास्तव में अपनी सभी बाइनरी बना रहे हैं [और आपके पास उस स्मृति में उन्हें फैलाने के लिए पर्याप्त स्मृति नहीं है], तो मुझे लगता है कि यह काम करेगा।
बेशक, अगर आपको केवल गॉट को ठीक करने की आवश्यकता है, तो मुझे नहीं लगता कि आप ऐसा क्यों नहीं कर सकते हैं - यह मुश्किल है कि कुछ टोपी लिखना मुश्किल नहीं है। लेकिन objcopy पहले से ही लिखा गया है, और बाइनरी/निष्पादन योग्य "मैसिंग के बारे में काफी कुछ कर सकता है" (मैंने इसे विभिन्न प्रणालियों के लिए बूट-रोम बनाने के लिए उपयोग किया है, जिसमें पीसी के लिए BIOS रोम और इसी तरह के) शामिल हैं [नहीं कि मैं आया इस विचार के साथ, जैसे मैंने किसी के मेकफ़ाइल को लिया, जिसमें इसके अंदर ओब्जाकॉपी हुई - मैंने देखा कि यह समझने के लिए क्या हुआ कि यह कैसे किया गया जब यह एक बिंदु या किसी अन्य पर गलत हो रहा था]
- 1. क्रॉस-प्लेटफार्म सी ++ गतिशील लाइब्रेरी प्लगइन लोडर
- 2. गैर डिफ़ॉल्ट लोडर के लिए साझा लाइब्रेरी की जांच
- 3. गतिशील लाइब्रेरी
- 4. साझा साझा करने के उद्देश्य के लिए एक साझा लाइब्रेरी "समान" माना जाता है?
- 5. NoClassDefFoundError को ठीक करने के लिए दृष्टिकोण?
- 6. अप्रयुक्त साझा लाइब्रेरी के खिलाफ लिंक करने के लिए बल
- 7. लिनक्स में अन्य साझा लाइब्रेरी के विरुद्ध साझा लाइब्रेरी को कैसे लिंक करें?
- 8. सी ++ के लिए वितरित साझा मेमोरी लाइब्रेरी?
- 9. गतिशील लिंकर और गतिशील लोडर के बीच क्या अंतर है?
- 10. साझा लाइब्रेरी निर्माण में शामिल करने के लिए एक स्थिर लाइब्रेरी से प्रतीकों को कैसे बल देना है?
- 11. साझा लाइब्रेरी नाम टकराव
- 12. साझा लाइब्रेरी की निर्भरता लिंकिंग
- 13. किसी साझा ऑब्जेक्ट लाइब्रेरी में चर साझा करने के लिए कैसे करें
- 14. समस्या किसी साझा लाइब्रेरी
- 15. पाइथन रिमोट पूंछ अनुकरण करने के लिए?
- 16. सी # आसान गतिशील प्रतिबिंब के लिए लाइब्रेरी
- 17. किसी साझा लाइब्रेरी से प्रतीकों को निर्यात करने के लिए कैसे करें
- 18. साझा लाइब्रेरी कन्स्ट्रक्टर
- 19. रंग अंधापन अनुकरण करने के लिए एल्गोरिदम?
- 20. अजगर साझा लाइब्रेरी
- 21. साझा जीबीसी साझा पुस्तकालयों में अपरिभाषित संदर्भों के बारे में सूचित करने के लिए
- 22. साझा लाइब्रेरी मेमोरी स्पेस
- 23. सी ++ साझा लाइब्रेरी सी
- 24. सीएमके त्रुटि: साझा लाइब्रेरी लक्ष्य
- 25. साझा लाइब्रेरी में वैश्विक चर का उपयोग
- 26. एक साझा लाइब्रेरी में एक स्थिर लाइब्रेरी को कनवर्ट करें?
- 27. साझा लाइब्रेरी में लाइब्रेरी फ़ंक्शंस का चुनिंदा स्टेटिक लिंकिंग
- 28. बूस्ट थ्रेड लाइब्रेरी को संकलित करने के लिए कैसे करें
- 29. jquery लाइब्रेरी में 'jQuery परिभाषित नहीं किया गया' त्रुटि को ठीक करने के लिए कैसे करें?
- 30. विकृत यूआरआई को ठीक करने के लिए स्कैला या जावा लाइब्रेरी
मुझे करना है कहें, जबकि मुझे लगता है कि यह एक बहुत ही स्थानीय प्रश्न के बहुत गहरे छोर में तैराकी कर रहा है, मैं बस इसे नीचे वोट करने के लिए नहीं ला सकता हूं (और वास्तव में इसके बजाय वोट-वोट), क्योंकि यह एक बहुत ही दिलचस्प है विचार और जिज्ञासा ने मुझे जीत लिया है (और स्पष्ट रूप से अन्य भी)। सौभाग्य! – WhozCraig
@vamsi प्रश्न मेरे लिए थोड़ा अस्पष्ट है। क्या आप तीसरे पक्ष (अपग्रेड) का नया संस्करण लोड करते समय हर बार GOT को बदलते हैं? क्या आप खुद लोडर लिखना चाहते हैं? – selalerer
@selalerer हां, मेरा मतलब है कि हर बार जब मैं एक नया तृतीय पक्ष संस्करण लोड करता हूं तो गॉट बदल जाता है। हां, संक्षेप में मैं क्या करूँगा एक हल्के लोडर है। मैं एक पूर्ण नेतृत्व वाले लोडर को लागू नहीं करना चाहता हूं। मैं बस इतना करना चाहता हूं कि जीओटी/पीएलटी टेबल फिक्सअप करें और नया कोड सक्रिय करें। – vamsi