Heat oil in a large saucepan over high heat.
Add shallots, garlic, salt and pepper. Sauté for 1 minute. Stir in sugar and port, bring to a boil, bring to a boil and cook for 3 minutes. Stir in stock, rosemary and cook over high heat, for about 20 minutes, until reduced and thick enough to coat the back of a spoon. Remove from heat.
Sauce can be used immediately or covered and refrigerated for up to three days. Reheat before serving.