The US Senate has overwhelmingly passed an annual defence spending bill, setting up a showdown with President Donald Trump who has threatened to veto the legislation.
The mammoth $US740 billion ($A978 billion) bill passed in a 84-to-13 vote, which is far greater than the two-thirds majority needed to override a presidential veto.
Earlier this week, the lower chamber House of Representatives also passed the bill with an overwhelming majority, meaning that if Trump does follow through with his veto threat, lawmakers will likely have a rare super-majority to overcome a presidential veto.
It would be the first veto override of Trump’s presidency.
Trump is threatening to wield his veto power primarily over a demand that Congress repeal legal protections for technology companies, as the president is locked in a fight with social media giants over alleged bias against conservatives.
He is also upset about a provision in the bill that would remove Confederate names from military bases and restrict troop withdrawals in Germany and Afghanistan.
The bill contains funding for national security, a pay rise for military service members and sets core policy decisions.
The annual appropriations bill is seen as a cornerstone of US defence policy: it has passed every year since the 1960s in a bipartisan fashion.
Despite Trump’s frequent veto threats through Twitter, lawmakers have largely brushed aside the president by approving the legislation which has been in the works for months.
The bill amounts to a rare bipartisan rebuke of Trump’s foreign policy, with measures to effectively halt the president’s planned troop withdrawal in Germany and complicate a troop withdrawal from Afghanistan.
The bill would also prevent any troop withdrawal from South Korea and mandates Turkey sanctions over Ankara officials’ purchase of the Russian S-400 anti-aircraft system.
A small group of Trump allies in the Republican Party have sided with the president against the bill.
Meanwhile some Senate Democrats on the progressive wing of the party, including Bernie Sanders and Elizabeth Warren, voted against the bill, citing the need to fund coronavirus stimulus and saying the US defence budget is too bloated.