Допустим, есть несколько общих библиотек, связанных с исполняемым файлом.Скажем, libaaa.so ссылается на глобальную переменную aaa
, а libbbb.so ссылается на глобальную переменную bbb
.
Насколько я понимаю, код обращается к этим переменным косвенно через GOT, используя смещения,У меня возникают проблемы с пониманием того, как смещение для aaa
в libaaa.so и смещение для bbb
в libbbb.so удается избежать конфликта друг с другом.
Как создается код для общих библиотекчто все ссылки во всех библиотеках заканчиваются на разных смещениях в GOT?
Я уверен, что упускаю что-то глупое.