1/* Dummy crti file. 2 3 In this configuration, crti.o and crtn.o are both empty because the 4 .init_array/.fini_array sections are used exclusively. 5 6 Older ports cannot use this because even if the linker used to 7 build libc itself has .init_array support, we don't want to produce 8 a crt[in].o that presume a linker that new will be used to link 9 other things later. 10 11 But new configurations without compatibility concerns for 12 toolchains without .init_array support can use this to avoid the 13 superfluous .init and .fini boilerplate code. */ 14 15#include <elf-initfini.h> 16 17#if ELF_INITFINI 18# error Cannot use default crti.S because it lacks _init code 19#endif 20 21#ifdef PREINIT_FUNCTION 22 23# if PREINIT_FUNCTION_WEAK 24# error PREINIT_FUNCTION_WEAK is unsupported 25# endif 26 27/* This arranges for PREINIT_FUNCTION to be called upon loading a library that 28 contains crti.o. */ 29 30 .section .init_array,"a",%init_array 31 .dc.a PREINIT_FUNCTION 32 33#endif 34