Указатель на текстовый сегмент из сегмента данных - PullRequest
1 голос
/ 04 сентября 2011

Можно ли сделать следующее с этой относительной адресацией в x86-64?

section .text
two
   dq 0

section .data
one:
   dq two

Когда я делаю это таким образом на OS X с nasm, я получаю следующее предупреждение компоновщика:

ld: предупреждение: пирог отключен. Абсолютная адресация (возможно -mdynamic-no-pic) не допускается в коде с подписью PIE, но используется в один из /var/tmp/tmp.1.Ho4qKA. Чтобы исправить это предупреждение, не скомпилировать с -mdynamic-no-pic или связать с -Wl, -no_pie

1 Ответ

0 голосов
/ 14 сентября 2011

Делайте то, что говорит предупреждение. PIE (позиционно-независимый исполняемый файл) включен, это означает, что .text может быть перемещен в память, как система пожелает, без изменения кода вообще. Компоновщик автоматически обнаружил это и отключил для вас, поэтому перемещение будет происходить как обычно, что позволит вам использовать ваши постоянные адреса.

...