Merge from upstream, add supprt for -Sl and do -Su properly