Other things I tried that didn't help:
* Other versions of cross gcc (8, 9, 10, 11 12)
* Other versions of host gcc (10)
* Other versions of pico-sdk (1.3.1, 1.4.0)
arm-none-eabi-gcc as packaged in Debian works.
arm-none-eabi-gcc as packaged in Nix doesn't.
I haven't yet looked further into why.