On 2/27/20 10:05 PM, William Roberts wrote: > Linker script? We just use a map file that has everything local except for what > we want to export. That's not the same. If you call an exported function that call might actually end up somewhere else. > Huh? I'm not following? If we just remove this, what would actually > break in libselinux? It's not breaking anything per-se. It can break something if a symbol is inadvertently or deliberately defined elsewhere. > This minor overhead on the first call to a routine to resolve the symbol isn't > really much overhead. After it's resolved its like an extra jmp or something. It's not as much about the overhead of the lookup. The indirect calls are expensive. And so is the loss of opportunities to optimize for the compiler. > If you really wanted to avoid relocation, couldn't you just link statically? Aside from the fact that you don't have the whole picture linking statically is problematic: https://akkadia.org/drepper/no_static_linking.html > This seems like it might be good for specific issues, but I don't see how this > infrastructure really prevents or fixes anything besides complicating the code, > perhaps enlighten me? Again, it's a semantic change in addition to a performance regression. Didn't you read the part where I suggested just using this one compiler option? How much less work are you willing to invest?