использую MinGW для сборки одного проекта (динамическая библиотека)... проект должен быть как можно меньшего объема... в результете сборки получается 6,5 килобайт для 32-битных операционных систем и 7,5 для 64-битных операционных систем... в принципе неплохой размер, но посмотрев получившийся PE-файл я обнаружил в нем несколько лишних на мой взгляд секций: .rdata - константы, .idata - данные для импорта функций, .edata - данные для экспорта функций... я хотел смерждить эти секции с секцией .data, для этого написал вот такой скрипт линкера: Код (Text): SECTIONS { . = SIZEOF_HEADERS; . = ALIGN(__section_alignment__); .text __image_base__ + ( __section_alignment__ < 0x1000 ? . : __section_alignment__ ) : { *(.text) } .data BLOCK(__section_alignment__) : { *(.data) *(.rdata) *(.edata) SORT(*)(.idata$2) SORT(*)(.idata$3) LONG (0); LONG (0); LONG (0); LONG (0); LONG (0); SORT(*)(.idata$4) SORT(*)(.idata$5) SORT(*)(.idata$6) SORT(*)(.idata$7) } .reloc BLOCK(__section_alignment__) : { *(.reloc) } /DISCARD/ : { *(.drectve) } } в результате PE-файл стал собираться с нужными мне секциями (данные всех трех секции успешно добавились в секцию .data), но смещения таблиц импорта и экспорта стали нулевыми... что я сделал не так? возможно ли вообще для виндовой версии гну-шного линкера смешивать секции с данными таблицы импорта и таблицы экспорта с другими секциями?