Faits :
A.
Par ordonnance pénale du 30 mars 2014, le Ministère public du canton de Genève a condamné X._ pour vol à une peine privative de liberté de 30 jours, sous déduction de deux jours de détention avant jugement. Il a en outre révoqué les sursis accordés les 2 avril et 10 juillet 2012 à respectivement une peine pécuniaire de 40 jours-amende, à 30 fr. le jour, et une peine pécuniaire de 10 jours-amende, à 10 fr. le jour.
B.
X._ a formé opposition à cette ordonnance pénale et sollicité qu'un avocat lui soit désigné.
Par ordonnance du 15 avril 2014, le ministère public a refusé d'ordonner la défense d'office. Il a convoqué X._ à une audience fixée au 27 mai 2014 à 9 h 00. Constatant au procès-verbal de dite audience le défaut du prévenu à 9 h 20, cette autorité a rendu sur le siège une ordonnance constatant le retrait de l'opposition formée contre l'ordonnance pénale du 30 mars 2014, en application de l'<ref-law>.
C.
Par arrêt du 9 septembre 2014, la Chambre pénale de recours de la Cour de justice du canton de Genève a rejeté le recours formé par X._ contre l'ordonnance du 27 mai 2014.
D.
X._ forme un recours en matière pénale auprès du Tribunal fédéral contre cet arrêt. Il conclut, avec suite de frais et dépens, à son annulation et au renvoi de la cause à l'autorité précédente pour qu'elle statue à nouveau. Il sollicite l'assistance judiciaire.
Invités à se déterminer, l'autorité précédente n'a pas répondu, le ministère public a conclu au rejet du recours.

Considérant en droit :
1.
Le recourant invoque notamment une violation de l'<ref-law>.
1.1. Aux termes de cette disposition, si l'opposant, sans excuse, fait défaut à une audition malgré une citation, son opposition est réputée retirée.
Selon la jurisprudence, si l'autorité suisse peut faire parvenir une citation à comparaître à un prévenu qui séjourne à l'étranger, elle n'est en revanche pas habilitée à l'assortir de menaces de sanctions, la citation représentant une invitation dans la procédure en cause. Le prévenu ne peut subir aucun préjudice de fait et de droit au motif qu'il n'y donne pas suite. La fiction de retrait de l'<ref-law> n'entre donc pas en considération dans un tel cas (<ref-ruling> consid. 2 p. 88 ss).
1.2. Le recourant étant domicilié en France, le ministère public pouvait certes lui faire parvenir une citation à comparaître à l'audience du 27 mai 2014. Il ne pouvait en revanche pas l'assortir de la menace de la sanction prévue par l'<ref-law>. L'arrêt attaqué, qui met en oeuvre la fiction consacrée par cette disposition, viole le droit fédéral. Ce qui précède rend sans objet les autres griefs soulevés par le recourant.
2.
Le recours est admis. Le recourant, qui obtient gain de cause, ne supportera pas de frais (art. 66 al. 1 et 4 LTF). Il a droit à des dépens à la charge du canton (<ref-law>). Cela rend sans objet sa demande d'assistance judiciaire.

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est admis, l'arrêt attaqué est annulé et la cause est renvoyée à l'autorité cantonale pour nouvelle décision.
2.
Il n'est pas perçu de frais judiciaires.
3.
La République et canton de Genève versera au conseil du recourant une indemnité de 3'000 fr. à titre de dépens pour la procédure devant le Tribunal fédéral.
4.
Le présent arrêt est communiqué aux parties et à la Cour de justice de la République et canton de Genève, Chambre pénale de recours.
Lausanne, le 9 septembre 2015
Au nom de la Cour de droit pénal
du Tribunal fédéral suisse
Le Président : Denys
La Greffière : Cherpillod