diff mbox

[Xen-devel,v3,6/6] xen: arm: Correctly use GLOBAL/ENTRY in head.S, avoid .global

Message ID 1405947600-26047-6-git-send-email-ian.campbell@citrix.com
State Accepted
Commit c3412c04b1eeb986670d3c74e5c6c481a0ab9efb
Headers show

Commit Message

Ian Campbell July 21, 2014, 1 p.m. UTC
Use ENTRY() for function entry points since it ensures correct
alignment where GLOBAL() doesn't. The exception is the initial start
label which must be at offset 0, so just use GLOBAL() to avoid the
possibility of realignment.

Since everything happens to already be aligned there should be no
difference to the actual binary. objdump agrees.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
---
v3: New patch
---
 xen/arch/arm/arm32/head.S |    8 +++-----
 xen/arch/arm/arm64/head.S |    8 +++-----
 2 files changed, 6 insertions(+), 10 deletions(-)

Comments

Julien Grall July 21, 2014, 2:18 p.m. UTC | #1
Hi Ian,

On 07/21/2014 02:00 PM, Ian Campbell wrote:
> Use ENTRY() for function entry points since it ensures correct
> alignment where GLOBAL() doesn't. The exception is the initial start
> label which must be at offset 0, so just use GLOBAL() to avoid the
> possibility of realignment.
> 
> Since everything happens to already be aligned there should be no
> difference to the actual binary. objdump agrees.
> 
> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Julien Grall <julien.grall@linaro.org>

Regards,

> ---
> v3: New patch
> ---
>  xen/arch/arm/arm32/head.S |    8 +++-----
>  xen/arch/arm/arm64/head.S |    8 +++-----
>  2 files changed, 6 insertions(+), 10 deletions(-)
> 
> diff --git a/xen/arch/arm/arm32/head.S b/xen/arch/arm/arm32/head.S
> index 14b172f..6573a42 100644
> --- a/xen/arch/arm/arm32/head.S
> +++ b/xen/arch/arm/arm32/head.S
> @@ -76,8 +76,7 @@
>           * It should be linked at XEN_VIRT_START, and loaded at any
>           * 4K-aligned address.  All of text+data+bss must fit in 2MB,
>           * or the initial pagetable code below will need adjustment. */
> -        .global start
> -start:
> +GLOBAL(start)
>          /* zImage magic header, see:
>           * http://www.simtec.co.uk/products/SWLINUX/files/booting_article.html#d0e309
>           */
> @@ -583,16 +582,15 @@ hex:    .ascii "0123456789abcdef"
>  
>  #else  /* CONFIG_EARLY_PRINTK */
>  
> +ENTRY(early_puts)
>  init_uart:
> -.global early_puts
> -early_puts:
>  puts:
>  putn:   mov   pc, lr
>  
>  #endif /* !CONFIG_EARLY_PRINTK */
>  
>  /* This provides a C-API version of __lookup_processor_type */
> -GLOBAL(lookup_processor_type)
> +ENTRY(lookup_processor_type)
>          stmfd sp!, {r4, r10, lr}
>          mov   r10, #0                   /* r10 := offset between virt&phys */
>          bl    __lookup_processor_type
> diff --git a/xen/arch/arm/arm64/head.S b/xen/arch/arm/arm64/head.S
> index 9497ca1..99cc6e0 100644
> --- a/xen/arch/arm/arm64/head.S
> +++ b/xen/arch/arm/arm64/head.S
> @@ -100,8 +100,7 @@
>           * or the initial pagetable code below will need adjustment.
>           */
>  
> -        .global start
> -start:
> +GLOBAL(start)
>          /*
>           * DO NOT MODIFY. Image header expected by Linux boot-loaders.
>           */
> @@ -604,9 +603,8 @@ hex:    .ascii "0123456789abcdef"
>  
>  #else  /* CONFIG_EARLY_PRINTK */
>  
> +ENTRY(early_puts)
>  init_uart:
> -.global early_puts
> -early_puts:
>  puts:
>  putn:   ret
>  
> @@ -615,7 +613,7 @@ putn:   ret
>  /* This provides a C-API version of __lookup_processor_type
>   * TODO: For now, the implementation return NULL every time
>   */
> -GLOBAL(lookup_processor_type)
> +ENTRY(lookup_processor_type)
>          mov  x0, #0
>          ret
>  
>
diff mbox

Patch

diff --git a/xen/arch/arm/arm32/head.S b/xen/arch/arm/arm32/head.S
index 14b172f..6573a42 100644
--- a/xen/arch/arm/arm32/head.S
+++ b/xen/arch/arm/arm32/head.S
@@ -76,8 +76,7 @@ 
          * It should be linked at XEN_VIRT_START, and loaded at any
          * 4K-aligned address.  All of text+data+bss must fit in 2MB,
          * or the initial pagetable code below will need adjustment. */
-        .global start
-start:
+GLOBAL(start)
         /* zImage magic header, see:
          * http://www.simtec.co.uk/products/SWLINUX/files/booting_article.html#d0e309
          */
@@ -583,16 +582,15 @@  hex:    .ascii "0123456789abcdef"
 
 #else  /* CONFIG_EARLY_PRINTK */
 
+ENTRY(early_puts)
 init_uart:
-.global early_puts
-early_puts:
 puts:
 putn:   mov   pc, lr
 
 #endif /* !CONFIG_EARLY_PRINTK */
 
 /* This provides a C-API version of __lookup_processor_type */
-GLOBAL(lookup_processor_type)
+ENTRY(lookup_processor_type)
         stmfd sp!, {r4, r10, lr}
         mov   r10, #0                   /* r10 := offset between virt&phys */
         bl    __lookup_processor_type
diff --git a/xen/arch/arm/arm64/head.S b/xen/arch/arm/arm64/head.S
index 9497ca1..99cc6e0 100644
--- a/xen/arch/arm/arm64/head.S
+++ b/xen/arch/arm/arm64/head.S
@@ -100,8 +100,7 @@ 
          * or the initial pagetable code below will need adjustment.
          */
 
-        .global start
-start:
+GLOBAL(start)
         /*
          * DO NOT MODIFY. Image header expected by Linux boot-loaders.
          */
@@ -604,9 +603,8 @@  hex:    .ascii "0123456789abcdef"
 
 #else  /* CONFIG_EARLY_PRINTK */
 
+ENTRY(early_puts)
 init_uart:
-.global early_puts
-early_puts:
 puts:
 putn:   ret
 
@@ -615,7 +613,7 @@  putn:   ret
 /* This provides a C-API version of __lookup_processor_type
  * TODO: For now, the implementation return NULL every time
  */
-GLOBAL(lookup_processor_type)
+ENTRY(lookup_processor_type)
         mov  x0, #0
         ret