Zerosquare (./1083) :
Sans parler du fait que la licence existante ne doit probablement pas couvrir le nouveau compilateur - parce que oui bien sûr, ce bazar est payant, merci Microchip 
Si c'est ça le problème:
SDCC contient un backend PIC16 (en développement) qui gère les PIC18Fxxx. Cela dit, ça ne résout pas ce problème:
oui je sais, C18 est obsolète ; mais le code existant a été compilé avec, je veux pas introduire de régressions en changeant de compilo, et je suis pas payé pour ça de toute façon.
(surtout que les différences entre C18 et SDCC risquent d'être plus grandes qu'entre C18 et XC8), et il y a aussi cet avertissement dans la documentation:
This port is not yet mature and still lacks many features. However, it can work for simple code.
mais je le mentionne quand-même au cas où.