Senate gives preliminary approval to budget compromise