I see the following in hypervisor.ld but it is beyond my understanding: .init_array : AT (ADDR (.init_array) - OFFSET) { PROVIDE (CTORS_L = .); KEEP (SORT_BY_INIT_PRIORITY(*)(.init_array.65534 .ctors.00001)) PROVIDE (CTORS_C = .); KEEP (SORT_BY_INIT_PRIORITY(*)(.init_array.65533 .ctors.00002)) PROVIDE (CTORS_G = .); KEEP (SORT_BY_INIT_PRIORITY(*)(.init_array.* .ctors.*)) KEEP (*(.init_array .ctors)) PROVIDE (CTORS_E = .); } : kern