Basically, I have this C function linked: ```c /* * Copyright (C) 2004 CodeSourcery, LLC * * Permission to use, copy, modify, and distribute this file * for any purpose is hereby granted without fee, provided that * the above copyright notice and this notice appears in all * copies. * * This file is distributed WITHOUT ANY WARRANTY; without even the implied * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ /* Handle ELF .{pre_init,init,fini}_array sections. */ #include /* These magic symbols are provided by the linker. */ extern void (*__preinit_array_start[])(void) __attribute__((weak)); extern void (*__preinit_array_end[])(void) __attribute__((weak)); extern void (*__init_array_start[])(void) __attribute__((weak)); extern void (*__init_array_end[])(void) __attribute__((weak)); extern void _init(void); /* Iterate over all the init routines. */ __attribute__((__used__)) void __libc_init_array(void) { size_t count; size_t i; count = __preinit_array_end - __preinit_array_start; for (i = 0; i < count; i++) __preinit_array_start[i](); _init(); count = __init_array_end - __init_array_start; for (i = 0; i < count; i++) __init_array_start[i](); } /* Dummy function to throw a linker error if defined elsewhere. */ void _init(void) { } ```