Clang uses part of the host compiler toolchain; gcc is the default compiler on Arch included in the base package.
Maybe it depends on gcc so it can use gcc's assebler for inline assembly?
no its for linking. basically clang unless configured in the source it does not know what link options to give. Actually even rust uses gcc or clang to do same thing.
It depends on gcc, for some reason, and that depends on binutils?
(and I have no idea if anything here uses libbfd, since it's just a part of the binutils package and not split out)