Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

int foo (int) __attribute__ ((ifunc ("resolve_foo")));
extern void abort (void);

static int
foo_impl (int x)
{
  return x;
}

void
bar (void)
{
  int (*f)(int) = foo;

  if (foo (5) != 5)
    abort ();

  if (f (42) != 42)
    abort ();
}

void *
resolve_foo (void)
{
  return (void *) foo_impl;
}