Seems like the problem is likely a configuration target change in the clang-13 package that's current for bookworm.
Specifically because under bullseye (and clang-11) the default target is armv6k-unknown-linux-gnueabihf while under bookworm (and clang-13) the default target is arm-unknown-linux-gnueabihf.
Or maybe the default changed for the given build configuration on the LLVM side?
I really wish I understood the Debian change management process better. I guess I don't even really know if Raspbian is actually maintained by Debian.
But, when comparing [1] to [2], the rules file has a nice test that says "if DEB_HOST_ARCH is armhf, set the LLVM_HOST_TRIPLE to armv6k..." which seems to confirm a build configuration change.
Ah, thanks! I dug a little more and found that the original test [1] from llvm-toolchain was a little different in the upstream Debian repository. It set the triple to armv7l for armhf hosts.
But I haven't yet found a similar repository on the Raspbian side. I guess I'd expect to find it within their GitHub org, but my searching didn't reveal it.
Yeah, Raspbian doesn't seem to be developed as a community project. There's no package tracker[1] like Debian or Ubuntu. I suppose they don't tend to diverge much, in practice.
Anyway, I suppose this all means Raspberry Pi OS/Raspbian are able to patch this, without requiring it to first be fixed in Debian or Clang.
Uncovering this slight difference really makes me long for something like the Debian GitLab instance (or really any kind of public change tracking) to document a bug or suggest a change.
Agreed, sure looks like it's Raspbian's build configuration to fix.
You can also use https://raspi.debian.net/, which is preferable on newer Pis due to the use of arm64 (early Pis had a weird arch which sat between armel and armhf, so either you used armel and things were slow(er), or you rebuilt the packages with the extra float support (as Raspbian did)).
Specifically because under bullseye (and clang-11) the default target is armv6k-unknown-linux-gnueabihf while under bookworm (and clang-13) the default target is arm-unknown-linux-gnueabihf.
Or maybe the default changed for the given build configuration on the LLVM side?