Walter T. schrieb:
> Im Map-File sehe ich.... nichts. Außer dass alle "verdächtigen"
> Funktionen aus der libc stammen (libg_s.a).
Da sollte doch zumindest das Modul autauchen? Hier mal einen Auszug (für 
anderes Target, was aber keine Rolle spielt):
1  | Archive member included to satisfy reference by file (symbol)
  | 
2  | 
  | 
3  | .../bin/../lib/gcc/avr/8.0.1/avr5/libgcc.a(_exit.o)
  | 
4  |                               .../bin/../lib/gcc/avr/8.0.1/../../../../avr/lib/avr5/crtatmega168.o (exit)
  | 
Von Modul crtatmega168.o wurde also Symbol "exit" referenziert, das noch 
nicht aufgelöst war.  Die Auflösung / Definition des Symbols "exit" 
geschah dadurch, dass gegen Modul _exit.o aus libgcc.a gelinkt wurde.
Einzelne Funktionen sieht man auf dieser Ebene nicht mehr, sondern nur 
noch Module oder Input-Sections.  Da libc/libm üblicherweise so 
übersetzt werden, dass jede Funktion in einem eigenen, entsprechend 
benannten Modul landet, kann man die Funktion hier einfach raten: Es ist 
_exit aus der libgcc.
Oder
1  | $ target-nm ...libgcc.a | grep -A4 '^_exit.o'
  | 
2  | _exit.o:
  | 
3  | 00000002 t __stop_program
  | 
4  | 00000000 T _exit
  | 
5  | 00000000 W exit
  |