ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
16 апреля
1046172 Топик полностью
VladislavS. (22.10.2020 15:53, просмотров: 353) ответил VladislavS. на "Просто выпиливанием __libc_init_array() тут не обойтись." - ключ -nostartfiles всё делает. Остаётся только руками конструкторы вызвать.
Немного оптимизировал функцию вызова конструкторов. Ещё 16 байт сэкономлено. 
inline void __attribute__((always_inline)) __run_init_array(void)
{          
  for (void(**fConstr)(void) = __preinit_array_start; fConstr < __preinit_array_end; (*fConstr++)());
  for (void(**fConstr)(void) = __init_array_start; fConstr < __init_array_end; (*fConstr++)());       
}