The weak function attribute causes the symbol resulting from the function declaration to appear in the object file as a weak symbol, rather than a global one. The language feature provides the programmer writing library functions with a way to allow function definitions in user code to override the library function declaration without causing duplicate name errors.
weak function attribute syntax >>-__attribute__--((--+-weak-----+--))------------------------->< '-__weak__-'
Related information