Есть закрытый драйвер (ELF для Солярис/спарк, но это скорее всего, не принципиально), содержащий примерно такой код:
static struct type_a struct1 = {
1,
func1_from_other_module,
static_func2,
};
static struct type_b struct2 = {
/* Тут тоже полно ссылок на локальные и внешние фукции */
};
Как посредством objcopy (или ещё чего) сделать что-нибудь из следующего:
- поменять в struct1 ссылку static_func2 на func2_from_other_module ?
- зарезервировать место между struct1 и struct2 ?
- или перенести struct1 в конец файла (и обновить ссылки на неё)?
Второй-третий пункт опциональны. Просто, в новой версии соляры, type_a cущественно расширился, и теперь структуры наползают друг на друга. К счастью, пожертвовав некоторой функциональностью на это забить, но лучше сделать всё чисто.