Usando avr-gcc e intentando reducir el tamaño del binario usando -ffunction-sections y -fdata-sections al compilar y vincular con --gc-sections. El archivo .lds no contiene nada:
SECCIONES { }
Este error ocurre cuando se vinculan parcialmente muchos .o en un .a, que luego se usará para completar la compilación.
He leído algunas otras publicaciones que discuten estas opciones, pero nada que aclare el problema de ENTRY(). No parece ser necesario en la etapa parcial antes de intentar reducir el tamaño del código (el script del enlazador preexistente claramente no lo usa).
Estados de documentación: --gc-sectionts
"Esta opción se puede configurar cuando se realiza un enlace parcial (habilitado con la opción '-r'). En este caso, la raíz de los símbolos mantenidos debe especificarse explícitamente mediante una opción '--entry' o '--undefined' o mediante un comando de ENTRADA en el script del enlazador".
Aquí es donde estoy perdido. Agradecería mucho más explicaciones sobre cómo usar --undefined, --entry o ENTRY cmd en el script del enlazador para resolver este problema.
Tuve un problema similar y me rendí. Terminé compilando con la opción -fwhole-program habilitada, lo que redujo significativamente el tamaño de mi gestor de arranque.