Wenn du die Funktion einfach nur "inline" deklarierst, ist sie
(implizit) "extern inline". Die Behandlung von "extern inline" hat
sich im Verlaufe der GCC-Entwicklung geändert, da C99 hier etwas
anderes spezifiziert, als GCC zuvor implementiert hatte.
Eigentlich ist aber "extern inline" sowieso Kokolorus. Entweder ist
die Funktion als Funktion implementiert (und global mit ihrer Adresse
bekannt), aber dann hat es keinen großen Zweck, sie an anderer Stelle
noch inline implementieren zu lassen. Oder aber, sie ist klein genug,
dann wird sie überall inline implementiert, aber dann brauche ich auch
keine globale Implementierung mehr zusätzlich.
Summa summarum: wenn schon "inline", dann "static inline".