[CRIU] Re: [PATCH 04/13] make: Generate offsets from linked files
only
Pavel Emelyanov
xemul at parallels.com
Wed Apr 18 06:42:24 EDT 2012
On 04/18/2012 01:34 PM, Cyrill Gorcunov wrote:
> On Wed, Apr 18, 2012 at 12:18:34PM +0400, Pavel Emelyanov wrote:
>> On 04/18/2012 01:55 AM, Cyrill Gorcunov wrote:
>>> Instead of generating offsets from early compiled
>>> object files (one day the offsets obtained from
>>> there might be changed during linkage stage) better
>>> to get them from a final stage where all object
>>> files involved are linked into complete binary blob.
>>>
>>> That happened that at early stage we indeed were using
>>> only single file per parasite and restorer but at present
>>> there a couple of file involved (and will be more in
>>> future) so we need a safe approach.
>>>
>>> Also note the symbols being exported are prefixed as
>>> "__export_". This is easier approach for now. Putting
>>> such symbols into separate section requires a way
>>> more efforts to handle.
>>>
>>> Signed-off-by: Cyrill Gorcunov <gorcunov at openvz.org>
>>> ---
>>> Makefile | 6 ++++--
>>> cr-restore.c | 4 ++--
>>> gen-offsets.sh | 4 ++--
>>> include/parasite.h | 6 +++---
>>> include/restorer.h | 4 ++--
>>> parasite.c | 16 ++++++++--------
>>> pie.lds.S | 3 ---
>>> restorer.c | 4 ++--
>>> 8 files changed, 23 insertions(+), 24 deletions(-)
>>>
>>> diff --git a/Makefile b/Makefile
>>> index aa2f801..0a6df29 100644
>>> --- a/Makefile
>>> +++ b/Makefile
>>> @@ -89,7 +89,8 @@ parasite-util-net.o: util-net.c
>>>
>>> $(HEAD-BIN): $(PIE-LDS) $(OBJS-BLOB) parasite-util-net.o
>>> $(E) " GEN " $@
>>> - $(Q) $(LD) -T $(PIE-LDS) $(OBJS-BLOB) parasite-util-net.o -o $@
>>> + $(Q) $(LD) --oformat=binary -T $(PIE-LDS) $(OBJS-BLOB) parasite-util-net.o -o $@
>>> + $(Q) $(LD) --oformat=elf64-x86-64 -T $(PIE-LDS) $(OBJS-BLOB) parasite-util-net.o -o $@.o
>>
>> Why do we need the .bin file then? AFAIS the .bin.o is only used next, what do I miss?
>
> .bin.o will also have Elf headers, thus to find offsets of functions in object
> file we will need to parse Elf headers itself (since `nm "symbol" x.o' will
> show us virtual address but not real offset in object file).
Брр... Давай два списка: 1. зачем нужен xxx.bin файл 2. зачем нужен xxx.bin.o файл
> Cyrill
> .
>
More information about the CRIU
mailing list