All of lore.kernel.org
 help / color / mirror / Atom feed
From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: Daniel Kiper <daniel.kiper@oracle.com>
Cc: jgross@suse.com, sstabellini@kernel.org,
	andrew.cooper3@citrix.com, cardoe@cardoe.com,
	pgnet.dev@gmail.com, ning.sun@intel.com, david.vrabel@citrix.com,
	jbeulich@suse.com, xen-devel@lists.xenproject.org,
	qiaowei.ren@intel.com, gang.wei@intel.com, fu.wei@linaro.org
Subject: Re: [PATCH v6 01/15] x86: properly calculate ELF end of image address
Date: Fri, 16 Sep 2016 16:43:21 -0400	[thread overview]
Message-ID: <20160916204320.GA18677@char.us.oracle.com> (raw)
In-Reply-To: <1473711511-11931-2-git-send-email-daniel.kiper@oracle.com>

On Mon, Sep 12, 2016 at 10:18:16PM +0200, Daniel Kiper wrote:
> Currently ELF end of image address is calculated using first line from
> "nm -nr xen/xen-syms" output. However, today usually it contains random
> symbol address not related to end of image in any way. So, it looks

Weird. The -n says:

"  -n
       -v
       --numeric-sort
           Sort symbols numerically by their addresses, rather than alphabetically by their names.
"

And you are right. It is ignoring it:

[konrad@char xen]$ nm -nr xen/xen-syms| sort | head -1
ffff82d080000000 T __image_base__
[konrad@char xen]$ nm -nr xen/xen-syms | head -1
ffff82d08033d000 B efi

[konrad@char xen]$ nm -nr xen/xen-syms| sort | tail -5
ffff82d08033cb00 B _end
ffff82d08033cb00 B __per_cpu_data_end
ffff82d08033d000 B __2M_rwdata_end
ffff82d08033d000 B efi
                 U _GLOBAL_OFFSET_TABLE_

> that for years that stuff have been working just by lucky coincidence.
> Hence, it have to be changed to something more reliable. So, let's take
> ELF end of image address by reading _end symbol address from nm output.
> 
> Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com>
> ---
>  xen/arch/x86/Makefile |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
> index d3875c5..a4fe740 100644
> --- a/xen/arch/x86/Makefile
> +++ b/xen/arch/x86/Makefile
> @@ -91,7 +91,7 @@ endif
>  
>  $(TARGET): $(TARGET)-syms $(efi-y) boot/mkelf32
>  	./boot/mkelf32 $(notes_phdrs) $(TARGET)-syms $(TARGET) 0x100000 \
> -	`$(NM) -nr $(TARGET)-syms | head -n 1 | sed -e 's/^\([^ ]*\).*/0x\1/'`
> +		`$(NM) -nr $(TARGET)-syms | awk '$$3 == "_end" {print "0x"$$1}'`
>  

Something is off with your tabs/spaces.


I would also modify the arch/x86/xen.lds.S and put a comment
around _end = .; to mention this dependency - in case somebody adds some 
extra things after _end.


>  .PHONY: tests
>  tests:
> -- 
> 1.7.10.4
> 

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

  reply	other threads:[~2016-09-16 20:43 UTC|newest]

Thread overview: 69+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-12 20:18 [PATCH v6 00/15] x86: multiboot2 protocol support Daniel Kiper
2016-09-12 20:18 ` [PATCH v6 01/15] x86: properly calculate ELF end of image address Daniel Kiper
2016-09-16 20:43   ` Konrad Rzeszutek Wilk [this message]
2016-09-19 11:14     ` Jan Beulich
2016-09-19 13:56       ` Daniel Kiper
2016-09-19 14:52         ` Jan Beulich
2016-09-20 11:43           ` Daniel Kiper
2016-09-20 13:28             ` Jan Beulich
2016-09-20 18:00           ` Daniel Kiper
2016-09-21  9:37             ` Jan Beulich
2016-09-22 11:45               ` Daniel Kiper
2016-09-22 12:02                 ` Jan Beulich
2016-09-19 11:18     ` Daniel Kiper
2016-09-12 20:18 ` [PATCH v6 02/15] x86/boot/reloc: create generic alloc and copy functions Daniel Kiper
2016-09-19 11:23   ` Jan Beulich
2016-09-12 20:18 ` [PATCH v6 03/15] x86/boot/reloc: rename some variables and rearrange code a bit Daniel Kiper
2016-09-12 20:18 ` [PATCH v6 04/15] x86: add multiboot2 protocol support Daniel Kiper
2016-09-19 11:42   ` Jan Beulich
2016-09-21  8:56     ` Daniel Kiper
2016-09-21  9:41       ` Jan Beulich
2016-09-12 20:18 ` [PATCH v6 05/15] efi: create efi_enabled() Daniel Kiper
2016-09-19 11:58   ` Jan Beulich
2016-09-19 14:27     ` Daniel Kiper
2016-09-19 14:31       ` Wei Liu
2016-09-19 14:57       ` Jan Beulich
2016-09-19 15:38         ` Daniel Kiper
2016-09-19 16:00           ` Jan Beulich
2016-09-12 20:18 ` [PATCH v6 06/15] x86: allow EFI reboot method neither on EFI platforms Daniel Kiper
2016-09-19 12:01   ` Jan Beulich
2016-09-12 20:18 ` [PATCH v6 07/15] efi: build xen.gz with EFI code Daniel Kiper
2016-09-12 20:18 ` [PATCH v6 08/15] x86/efi: create new early memory allocator Daniel Kiper
2016-09-19 12:12   ` Jan Beulich
2016-09-19 15:04     ` Daniel Kiper
2016-09-19 15:17       ` Jan Beulich
2016-09-20  9:45         ` Daniel Kiper
2016-09-20  9:57           ` Jan Beulich
2016-09-20 10:52             ` Daniel Kiper
2016-09-20 13:46               ` Jan Beulich
2016-09-20 18:45                 ` Daniel Kiper
2016-09-21  9:42                   ` Jan Beulich
2016-09-22 10:52                     ` Daniel Kiper
2016-09-22 11:25                       ` Jan Beulich
2016-09-22 12:07                         ` Daniel Kiper
2016-09-22 13:12                           ` Jan Beulich
2016-09-22 17:07                           ` Julien Grall
2016-09-23 10:50                             ` Daniel Kiper
2016-09-23 11:07                               ` Julien Grall
2016-09-23 11:35                                 ` Daniel Kiper
2016-09-23 11:42                                   ` Julien Grall
2016-09-23 11:53                                     ` Daniel Kiper
2016-09-23 14:10                                   ` Jan Beulich
2016-09-12 20:18 ` [PATCH v6 09/15] x86: add multiboot2 protocol support for EFI platforms Daniel Kiper
2016-09-19 12:29   ` Jan Beulich
2016-09-19 15:18     ` Daniel Kiper
2016-09-19 15:28       ` Jan Beulich
2016-09-12 20:18 ` [PATCH v6 10/15] x86/boot: implement early command line parser in C Daniel Kiper
2016-09-19 12:47   ` Jan Beulich
2016-09-19 15:27     ` Daniel Kiper
2016-09-19 16:03       ` Jan Beulich
2016-09-20  9:49         ` Daniel Kiper
2016-09-20 10:05           ` Jan Beulich
2016-09-20 11:31             ` Daniel Kiper
2016-09-12 20:18 ` [PATCH v6 11/15] x86: change default load address from 1 MiB to 2 MiB Daniel Kiper
2016-09-19 12:54   ` Jan Beulich
2016-09-12 20:18 ` [PATCH v6 12/15] x86/setup: use XEN_IMG_OFFSET instead of Daniel Kiper
2016-09-19 13:00   ` Jan Beulich
2016-09-12 20:18 ` [PATCH v6 13/15] x86: make Xen early boot code relocatable Daniel Kiper
2016-09-12 20:18 ` [PATCH v6 14/15] x86/boot: rename sym_phys() to sym_offs() Daniel Kiper
2016-09-12 20:18 ` [PATCH v6 15/15] x86: add multiboot2 protocol support for relocatable images Daniel Kiper

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160916204320.GA18677@char.us.oracle.com \
    --to=konrad.wilk@oracle.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=cardoe@cardoe.com \
    --cc=daniel.kiper@oracle.com \
    --cc=david.vrabel@citrix.com \
    --cc=fu.wei@linaro.org \
    --cc=gang.wei@intel.com \
    --cc=jbeulich@suse.com \
    --cc=jgross@suse.com \
    --cc=ning.sun@intel.com \
    --cc=pgnet.dev@gmail.com \
    --cc=qiaowei.ren@intel.com \
    --cc=sstabellini@kernel.org \
    --cc=xen-devel@lists.xenproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.