|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v8.1 14/27] xsplice, symbols: Implement symbol name resolution on address.
On 04/22/2016 11:08 AM, Jan Beulich wrote: On 22.04.16 at 10:45, <ross.lagerwall@xxxxxxxxxx> wrote:On 04/22/2016 08:51 AM, Jan Beulich wrote:On 22.04.16 at 09:17, <ross.lagerwall@xxxxxxxxxx> wrote:On 04/21/2016 01:26 AM, Konrad Rzeszutek Wilk wrote: snip I've looked into this a little further. The only .LC* symbols left in the .o file are the ones which are used in bug_frame relas. These symbols do not make it into the core symbol table because the relas are dropped when the xen binary is linked just before tools/symbols is run. Obviously we can't drop the rela sections for xsplice because it needs to be relocatable. Yet _if_ such symbols make it into the symbol table of a .o, then there is no reason for them to not also make it into the runtime symbol table. Of course similar ones from different modules then shouldn't conflict with one another, and as these are local symbols perhaps the reason for them conflicting is that in the process of creating the runtime symbol table entries you neglect to prefix them with their source or object file names, as is done by xen/tools/symbols.c for the core symbol table? Quite obviously the symbol name generation should match between core and modules...The build tool does prefix the required functions and objects with their source/object file names. The problem is that these are generated symbols, so even if you had e.g. keyhandler.c#.LC0, keyhandler.c#.LC1, in the symbol table, they might be completed unrelated if you change the source even slightly. Having these entries in the symbol table would not make any sense.Why not? They could still serve as anchor for subsequent patches. They're not useful because they're autogenerated and the numbering may change from build to build. So two patch modules may have conflicting symbols just because they happen to use the same .LCx symbol. Rather than ignoring STT_NOTYPE, an alternative would be to ignore symbols starting with ".L".That's an option, but as said before, the rules for which symbols to enter into the symbol table should be consistent for core and modules. Yes. And, as best I can tell, .L symbols are not in the core table so this would then make it consistent for modules. -- Ross Lagerwall _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |