Foundationপ্রথম নীতি থেকে
LEVEL 5 · Compilers

Procedure Linkage Table

প্রসিডিওর লিংকেজ টেবিল

Shared library-র function call-এর trampoline — প্রথম call-এ dynamic linker-এ resolve হয়, পরের call সরাসরি লাফায় (lazy binding)।

also: PLT

call puts@plt
  ↓
puts@plt: jmp *GOT[puts]      ; প্রথমবার GOT → plt+push/jmp (resolver)
                              ; resolve হওয়ার পরে GOT → আসল puts
  • Lazy binding: যে function call-ই হয়নি, তার address resolve-ই হয় না — startup দ্রুত
  • দাম: indirect jump (branch predictor ঠিকঠাক হলে সস্তা), আর -z now-এ lazy বন্ধ করা যায়
  • Security: PLT/GOT hijack classic technique — RELRO, CFI এর জবাব
  • objdump -d a.out-এ puts@plt label গুলোই এই যন্ত্রের দৃশ্যমান অংশ