Whether .dynamic is writable depends on the architecture (I believe the only one on which it isn't is MIPS, but I could be wrong about that). Looks like binutils doesn't take that into account when issuing this diagnostic in the assembler and expects .dynamic to have SHF_ALLOC only. Probably something to complain about to them. I don't believe there's an actual problem though, just an incorrect diagnostic.