Здравствуйте.
Я компилирую некоторый исполняемый файл в среде Linux, с помощью GCC с флагом -O2.
На выходе получаю ELF-файл, в котором функции из одного и того же исходного файла имеют подряд идущие адреса:
# nm binfile | sort
...
000000000040ca40 T queue_create
000000000040cab0 T queue_free
000000000040cad0 T queue_append
000000000040cb00 T queue_remove
...
Как можно с помощью флагов компилятора/линкера или любых стандартных UNIX-средств расположить адреса функций в исполняемом файле в случайном порядке? То есть, чтобы не было группировки функций по принадлежности к одному и тому же исходному файлу.
UPD Иначе говоря, нужно поменять последовательность, в которой компоновщик присвоил адреса функциям.