Лук тонко нарежьте полукольцами. Растопите масло в кастрюле с толстым дном и на среднем огне, готовьте лук, часто помешивая, так, чтобы он не подгорел, а только зазолотился и стал мягким, 20 мин. Посолите, поперчите.
Посыпьте лук сахаром и мукой и готовьте, помешивая, еще 10 мин.
Влейте половину горячего бульона, доведите до кипения, варите на медленном огне 15 мин. Влейте оставшийся бульон и порто, варите еще 30-40 мин.
Разлейте суп по огнеупорным тарелкам или горшочкам, разложите ломтики хлеба, слегка их утопив, так, чтобы они чуть намокли с обеих сторон, посыпьте тертым сыром и запекайте под грилем до тех пор, пока сыр не образует румяную корочку 5-7 мин. Подавайте немедленно.