Functions declared with __attribute__((weak)) and then defined without __attribute__((weak)) behave as weak functions. This is not the same behavior as the __weak keyword