[PATCH] [Layout] Assign ordinals in resolution order
Shankar Easwaran
shankare at codeaurora.org
Tue Oct 8 22:44:10 PDT 2013
On 10/9/2013 12:40 AM, kledzik at apple.com wrote:
> It looks to me like the ordinals are assigned to archive members as the members are used. This will result in unstable output because the lazy loading nature of archives loads the members in some what chaotic way (small changes to what if referenced by initial .o files can radically change the load order of members).
ELF needs the symbols to appear in resolution order.
>
> For the darwin linker, we gave each archive a range of ordinals. For instance if you link with -lfoo -lbar, the library ordinal for libfoo.a might be 100 and for libbar.a be 200. Later when members are loaded from each, the member's ordinal is the owning libraries ordinal plus the member index (libfoo.a(foo.o) might have an ordinal of 100+3=103).
DarwinLinkingContext would need to override the
getNextOrdinalAndIncrement function, that would use the
currentInputElement and the file returned to associate ordinals like
earlier.
Thanks
Shankar Easwaran
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by the Linux Foundation
More information about the llvm-commits
mailing list