David Daney wrote:
[snip]
WRT possible breakge to things expecting the real "_gp": I agree that
might be a problem. One possibility would be to define a new symbol,
something like __gnu_local_gp, and make -mno-shared use that instead
of plain _gp. -mno-shared is a new option, so there's no backwards
compatiblity problem.
OK, I kind of like this idea. But I am not an ABI authority. I am
assuming the the meaning of "_gp_disp" is defined somewhere in the ABI
specs. I know _gp is specified. Does anybody have objections to adding
the new magic __gnu_local_gp symbol?
I have the general (and still vague) idea to have multigot-capable object
files, with _gp _gp.1 .. _gp.n and _gp_disp _gp_disp.1 .. _gp_disp.n
depending on the GOT in use, and with the single got case staying binary
compatible. I think this would cover your case as well, but it's of
course much more work.