Date: Sun, 12 Jul 2015 01:48:10 +1000 from: matthew green <m...@eterna.com.au>
thanks for doing this. however, i noticed one problem: (3) an ELF global symbol `__foo50' implementing its new signature (yes, `__foo50', not `__foo60'). this is not actually the way we'd *prefer* to do it, and it's beeon this this way most of the time in the past, but not always. that your main example for time_t change got it wrong isn't any excuse to continue the problem. (c.f., vfork14 which might be a better example?) if we changed in 6.0, the new symbol should say "60" in it. OK. __foo50 for what was introduced in 6.0 always seemed silly to me, but every example I found was done that way. Further examination reveals that we've basically been random and inconsistent about it, including __diagassert13 which I believe was first included in 1.6. So it looks like I ought to find a better example -- perhaps __sigprocmask14, whose signature changed, making it a little more obvious than __vfork14 -- and rewrite that section, with a footnote explaining the historical inconsistency. (I wrote that document originally just to describe current practices and rationale so that we could figure out what to do in the future with ELF symbol versioning, or when Someone^TM designs and implements the mythical Object Relocation Container to replace ELF.)