Как сделать, чтобы gcc-ссылка была сильным символом в статической библиотеке, чтобы перезаписать слабый символ?

Моя проблема может быть кратко изложена в следующем:

bar.c:

#include 

void bar() {
    printf("bar\n");
}

main.c:

#include 

void __attribute__((weak)) bar() {
    printf("foo\n");
}

int main() {
    bar();
    return 0;
}

Makefile:

all:
    gcc -c bar.c
    ar -rc libbar.a bar.o
    gcc main.c -L. -lbar

Выход:

$ ./a.out
foo

Таким образом, слабый символ bar в main.c не перезаписывается сильным символом в bar.c из-за того, что bar.c связан с main.c в статической библиотеке libbar.a.

Как я могу сказать gcc сделать сильный символ в libbar.a перезаписать слабый символ в main.c?

Ответы на вопрос(2)

Ваш ответ на вопрос