Доброго времени суток.
Есть глобальная структура c вложенными структурами конфигурации. Для удобства обращения сложил указатели в статический массив:
static void *cfg_table[DEV_CNT] =
{
&sys_cntl.ethernet.cfg_cntl,
&sys_cntl.device[0].cfg_cntl,
&sys_cntl.device[1].cfg_cntl,
&sys_cntl.mdev.cfg_cntl
};
Столкнулся с тем, что адрес фактический адрес sys_cntl.ethernet.cfg_cntl
, который показывает gdb, отличается от записанного в массиве (сдвинут на несколько байт). Поскольку внутри cfg_cntl
есть адреса функций, это заканчивается SIGILL. Архитектура sparc64. Кто-нибудь с этим сталкивался?