Oleg Endo a écrit :
Simply merging .init_array into .text is not going to produce anything but some unused data in .text. .init_array is a vector of function pointers. These functions are supposed to be invoked by the startup code before invoking 'main'. You could try merging .init_array into the existing .ctors and see where it goes.
Thanks a lot for your explanations. With : . = ALIGN(16); /* cpu-local static initializers */ __ctors_CPU__ = .; *(SORT(.ctors.3*)) QUAD(0) /* node-local static initializers */ __ctors_NODE__ = .; *(SORT(.ctors.2*)) QUAD(0) /* global static initializers */ __ctors_GLOBAL__ = .; *(SORT(.ctors.1*)) *(.init_array) *(SORT(.init_array.*)) *(SORT(.ctors.*)) *(.ctors) QUAD(0) L4 can be built with gcc-4.7. Regards, JKB