Как использовать раздел .init_array?

Вот этот код работает как инициализирующий при наличии одного файла с секцией .init_array:

AssemblerВыделить код

1
2
3
4
5
6
7
8
9
10
11
12

_start:
    mov     edi, 0
1:
    lea     eax, .init_array
    add     eax, edi
    cmp     dword ptr[eax], 0
    je      2f
    call    [eax]
    add     edi, 4
    jmp     1b  
2:
    jmp     main

В одном файле конец секции можно помечать нулем, и тогда инициализирующий код будет перебирать указатели на функции пока не встретится нуль. Но как помечать конец секции при наличии нескольких файлов с секцией .init_array? Предполагаю, что существует известное и стандартное решение, но пока не смог найти.