पीआईसी कोड से किए गए कॉल के लिए, आप सही हैं कि पीएलटी की वास्तव में आवश्यकता नहीं है। संकलक बस जीओटी से प्राप्त पते पर एक गॉट लुकअप और अप्रत्यक्ष कॉल उत्पन्न कर सकता था। पीएलटी का उपयोग करना कोड को थोड़ा अधिक कुशल बनाने के लिए होता है (कम से कम, कम कॉल ब्लोट प्रति कॉल) ताकि इसे आम तौर पर इस्तेमाल किया जा सके।
जहां पीएलटी की बिल्कुल आवश्यकता है, हालांकि, गैर-पीआईसी कोड में है जो गतिशील जुड़ा हुआ है। (आमतौर पर यह केवल मुख्य कार्यक्रम में होता है; कई आर्कों पर, साझा पुस्तकालयों में गैर-पीआईसी कोड को भी अनुमति/समर्थित नहीं किया जाता है।) जब संकलक फ़ंक्शन कॉल के लिए गैर-पीआईसी कोड उत्पन्न करता है, तो उसे यह जानने का कोई तरीका नहीं है कि वास्तविक गंतव्य पता को जीओटी के माध्यम से रनटाइम पर गतिशील रूप से हल किया जाएगा। तो यह सिर्फ एक सामान्य कॉल निर्देश उत्पन्न करता है। तब लिंकर ज़िम्मेदार होता है, जब यह उस प्रतीक के लिए कॉल-टाइप स्थानांतरण को स्थानीय रूप से हल नहीं किया जाता है और उसे पीओटी एंट्री उत्पन्न करने के लिए रनटाइम लिंकिंग की आवश्यकता होती है जो जीओटी से पता लोड करता है और अप्रत्यक्ष कूद बनाता है। इस तरह, मूल गैर-पीआईसी फ़ंक्शन कॉल कोड असम्बद्ध काम करता है।
स्रोत
2013-12-10 05:10:08
[प्रक्रिया लिंकेज तालिका और वैश्विक ऑफ़सेट तालिका] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/9688076/process-linkage-table-and-global-offset-table) –
वह प्रश्न मेरे प्रश्न का उत्तर नहीं देता है सभी – Rell3oT