no se en detalles la diferencia de gpasm y el asm del MPALB se que las hay pero no se donde, igual que el sdcc y C18, el cpik y el sdcc, etc... yo personal mente recomiendo que si an a trabajar en linux utilicen las erramientas de linux, en cambio si trabajan con windows utilicen las erramientas de windows, en resumen se le hará mas facil de cualquiera de las dos maneras. Pro ende si utilizas el SDCC utiliza el gpasm porque creo que el error esta en la nomenclatura del asm, entre MPLAB y GPASM hay muchas diferencias creo que el problema esta en la nomenclatura del codigo, el sdcc nesesita del gpasm en las paguina del sdcc lo dice, instala el gpasm en windows y compila el asm con gpasm, disculpa lo de las librerias, tienes razon si tubieras problemas con las librerias no pudieras obtener el asm y el .o, pero el sdcc esta fincionando correctamente no tienes errores de codigo, como dije el problema esta en la nomenclatura del asm instala gpasm y construye el hex desde el gpasm
Saludos