Это вопрос из вторых рук с сайта разработки ОС, но мне было любопытно, потому что я не мог найти достойного объяснения где угодно.
При компиляции и связывании отдельно стоящей программы на С++ с использованием gcc иногда возникает такая ошибка компоновщика:
out/kernel.o:(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'
Это, по-видимому, потому, что этот символ определен в libstdС++, который отсутствует в свободностоящей среде. Исправление проблемы просто требует определения этого символа где-то:
void *__gxx_personality_v0;
Это хорошо, но мне не нравятся вещи, которые просто магически работают... Итак, вопрос в том, какова цель этого символа?