* Joshua Hudson via Gcc-help: > I'm not going to say that's what I'm writing because I'm not. Here's > the thing: If you remove all constructs like const char *str = "Hello, > world"; and similar things like initializing one static variable to > the address of another; all remaining constructs in C can be compiled > without relocations. This is highly architecture-dependent. You can search for HIDDEN_VAR_NEEDS_DYNAMIC_RELOC (previously: PI_STATIC_AND_HIDDEN, with a reversed sense) to get an idea which architectures which do not have this property. > Avoiding this *must* be possible because the relocation engine avoids > this problem. It's quite brittle and requires constant maintenance as the compiler changes. We've simplified the code significantly of the past few years and may finally be able to properly fix it, as far such a thing is possible without rewriting self-relocation processing in assembler. Thanks, Florian