On Wed, Mar 07, 2012 at 10:30:17AM -0800, ron minnich wrote:
The solution in other projects I have worked on is to have an initialized struct and just copy it at runtime to the right place. This gets around all the issues with ld (which have been issues in various ways for 12 years now ... just different ones :)
How big are the tables? If they're not that big then just copying them to where they need to be at startup might be the best solution. LD is going to continue to break, always has and always will. Just a thought.
This fails on recent arch and ubuntu. If you can find a way not to use this kind of LD trick, life will be easier.
It's not really a trick - we're just asking LD to put sections at specific addresses - it's real basic stuff.
Of course if this is going to mess up entry points then we're out of luck.
It's code entry points as well. I can't think of an easy way to do that as things get real messy when relocating code due to relative offsets in the code. It's doable, but it quickly reaches the complexity of just implementing a poor-man's LD replacement.