मैंने हाल ही में जीएनयू एलडी में लिंकर विकल्प "-स्सिम्बोलिक-फ़ंक्शंस" की खोज की है:क्या Bsymbolic- कार्यों का उपयोग करने के लिए एक नकारात्मक पक्ष है?
-Bsymbolic
When creating a shared library, bind references to global symbols to the
definition within the shared library, if any. Normally, it is possible
for a program linked against a shared library to override the definition
within the shared library.
This option is only meaningful on ELF platforms which support shared libraries.
-Bsymbolic-functions
When creating a shared library, bind references to global function symbols
to the definition within the shared library, if any.
This option is only meaningful on ELF platforms which support shared libraries.
यह जीसीसी विकल्प -fvisibility=hidden
के विपरीत है, जिसमें संदर्भित फ़ंक्शन के निर्यात को अन्य साझा करने से रोकने के बजाय ऑब्जेक्ट्स, यह उस फ़ंक्शन के लाइब्रेरी-आंतरिक संदर्भों को किसी भिन्न साझा ऑब्जेक्ट के निर्यात किए गए फ़ंक्शन से बाध्य होने से रोकता है। मैंने खुद को सूचित किया कि -Bsymbolic-functions
कार्यों के लिए पीएलटी प्रविष्टियों के निर्माण को रोक देगा, जो एक अच्छा साइड इफेक्ट है।
लेकिन मैं सोच रहा था कि पुस्तकालय की व्यक्तिगत फ़ंक्शन परिभाषाओं के लिए
-Bsymbolic
ओवरराइट करने की तरह, इस पर शायद एक बेहतर अनाज वाला नियंत्रण है या नहीं।क्या मुझे
-Bsymbolic-functions
का उपयोग करने के किसी भी नुकसान के बारे में पता होना चाहिए? मैं केवल इसका उपयोग करने की योजना बना रहा हूं, क्योंकि-Bsymbolic
अपवाद तोड़ देगा, मुझे लगता है (यह ऐसा करेगा जिससे टाइपिनो ऑब्जेक्ट्स के संदर्भ एकीकृत नहीं हैं, मुझे लगता है)।
धन्यवाद!
आप मेरे लिए लिंकर नरक के घंटों तक शानदार, खुश संकल्प थे। मैं तुमसे प्यार करता हूँ। –