French lawmakers pass social security budget in knife-edge vote