Training courses
Kernel and Embedded Linux
Bootlin training courses
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
void foo() __attribute__((ifunc("resolve_foo"))); static void foo_impl() {} extern void abort (void); void test() { void (*pg)(void) = foo; if (pg != foo_impl) abort (); pg(); } static void* resolve_foo() { extern void zoo(void); void (*pz)(void) = zoo; pz(); return foo_impl; }