Esta es una pregunta de segunda mano de un sitio de desarrollo de SO, pero me dio curiosidad ya que no pude encontrar una explicación decente en ninguna parte.
Al compilar y vincular un programa C ++ independiente usando gcc, a veces ocurre un error de vinculador como este:
out/kernel.o:(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'
Aparentemente, esto se debe a que este símbolo está definido en libstdc ++, que falta en un entorno independiente. Solucionar el problema simplemente requiere definir este símbolo en alguna parte:
void *__gxx_personality_v0;
Lo cual es bueno, pero no me gustan las cosas que simplemente funcionan mágicamente ... Entonces la pregunta es, ¿cuál es el propósito de este símbolo?
-fno-exceptions
. AgreguéCPPFLAGS += -fno-exceptions
a mi archivo MAKE y eso resolvió el error.