From soluço, or from Old Galician-Portuguese solluçar, from Vulgar Latin *suggluttiāre, from singultō (“to gasp, to hiccup”) (with the prefix sub- and altered by influence from gluttiō (“to swallow”)), from Latin singultus.
Compare Galician saloucar, Spanish sollozar, Romanian sughița, also Italian singhiozzare.