/* Dummy crti file. In this configuration, crti.o and crtn.o are both empty because the .init_array/.fini_array sections are used exclusively. Older ports cannot use this because even if the linker used to build libc itself has .init_array support, we don't want to produce a crt[in].o that presume a linker that new will be used to link other things later. But new configurations without compatibility concerns for toolchains without .init_array support can use this to avoid the superfluous .init and .fini boilerplate code. */ #include #if ELF_INITFINI # error Cannot use default crti.S because it lacks _init code #endif #ifdef PREINIT_FUNCTION # if PREINIT_FUNCTION_WEAK # error PREINIT_FUNCTION_WEAK is unsupported # endif /* This arranges for PREINIT_FUNCTION to be called upon loading a library that contains crti.o. */ .section .init_array,"a",%init_array .dc.a PREINIT_FUNCTION #endif