Patchwork linux-user: fix compile failure if !CONFIG_USE_GUEST_BASE

login
register
mail settings
Submitter Peter Maydell
Date Feb. 10, 2011, 4:53 p.m.
Message ID <1297356784-12224-1-git-send-email-peter.maydell@linaro.org>
Download mbox | patch
Permalink /patch/82630/
State New
Headers show

Comments

Peter Maydell - Feb. 10, 2011, 4:53 p.m.
If CONFIG_USE_GUEST_BASE is not defined, gcc complains:
 linux-user/mmap.c:235: error: comparison of unsigned expression >= 0 is always true

because RESERVED_VA is #defined to 0. Since mmap_find_vma_reserved()
will never be called anyway if RESERVED_VA is always 0, fix this by
simply #ifdef'ing away the function and its callsite.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
I'm not a great fan of introducing #ifdefs, but I couldn't come
up with a cleaner way of shutting gcc up...

 linux-user/mmap.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)
Peter Maydell - Feb. 21, 2011, 4:53 p.m.
Ping?

On 10 February 2011 16:53, Peter Maydell <peter.maydell@linaro.org> wrote:
> If CONFIG_USE_GUEST_BASE is not defined, gcc complains:
>  linux-user/mmap.c:235: error: comparison of unsigned expression >= 0 is always true
>
> because RESERVED_VA is #defined to 0. Since mmap_find_vma_reserved()
> will never be called anyway if RESERVED_VA is always 0, fix this by
> simply #ifdef'ing away the function and its callsite.
>
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
> I'm not a great fan of introducing #ifdefs, but I couldn't come
> up with a cleaner way of shutting gcc up...
>
>  linux-user/mmap.c |    4 ++++
>  1 files changed, 4 insertions(+), 0 deletions(-)
>
> diff --git a/linux-user/mmap.c b/linux-user/mmap.c
> index abf21f6..0cf22f8 100644
> --- a/linux-user/mmap.c
> +++ b/linux-user/mmap.c
> @@ -216,6 +216,7 @@ static abi_ulong mmap_next_start = TASK_UNMAPPED_BASE;
>
>  unsigned long last_brk;
>
> +#ifdef CONFIG_USE_GUEST_BASE
>  /* Subroutine of mmap_find_vma, used when we have pre-allocated a chunk
>    of guest address space.  */
>  static abi_ulong mmap_find_vma_reserved(abi_ulong start, abi_ulong size)
> @@ -249,6 +250,7 @@ static abi_ulong mmap_find_vma_reserved(abi_ulong start, abi_ulong size)
>     mmap_next_start = addr;
>     return last_addr;
>  }
> +#endif
>
>  /*
>  * Find and reserve a free memory area of size 'size'. The search
> @@ -271,9 +273,11 @@ abi_ulong mmap_find_vma(abi_ulong start, abi_ulong size)
>
>     size = HOST_PAGE_ALIGN(size);
>
> +#ifdef CONFIG_USE_GUEST_BASE
>     if (RESERVED_VA) {
>         return mmap_find_vma_reserved(start, size);
>     }
> +#endif
>
>     addr = start;
>     wrapped = repeat = 0;
> --
> 1.7.1
>
>
>
Aurelien Jarno - March 3, 2011, 10:48 p.m.
On Thu, Feb 10, 2011 at 04:53:04PM +0000, Peter Maydell wrote:
> If CONFIG_USE_GUEST_BASE is not defined, gcc complains:
>  linux-user/mmap.c:235: error: comparison of unsigned expression >= 0 is always true
> 
> because RESERVED_VA is #defined to 0. Since mmap_find_vma_reserved()
> will never be called anyway if RESERVED_VA is always 0, fix this by
> simply #ifdef'ing away the function and its callsite.
> 
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
> I'm not a great fan of introducing #ifdefs, but I couldn't come
> up with a cleaner way of shutting gcc up...
> 
>  linux-user/mmap.c |    4 ++++
>  1 files changed, 4 insertions(+), 0 deletions(-)

Thanks, applied.

> diff --git a/linux-user/mmap.c b/linux-user/mmap.c
> index abf21f6..0cf22f8 100644
> --- a/linux-user/mmap.c
> +++ b/linux-user/mmap.c
> @@ -216,6 +216,7 @@ static abi_ulong mmap_next_start = TASK_UNMAPPED_BASE;
>  
>  unsigned long last_brk;
>  
> +#ifdef CONFIG_USE_GUEST_BASE
>  /* Subroutine of mmap_find_vma, used when we have pre-allocated a chunk
>     of guest address space.  */
>  static abi_ulong mmap_find_vma_reserved(abi_ulong start, abi_ulong size)
> @@ -249,6 +250,7 @@ static abi_ulong mmap_find_vma_reserved(abi_ulong start, abi_ulong size)
>      mmap_next_start = addr;
>      return last_addr;
>  }
> +#endif
>  
>  /*
>   * Find and reserve a free memory area of size 'size'. The search
> @@ -271,9 +273,11 @@ abi_ulong mmap_find_vma(abi_ulong start, abi_ulong size)
>  
>      size = HOST_PAGE_ALIGN(size);
>  
> +#ifdef CONFIG_USE_GUEST_BASE
>      if (RESERVED_VA) {
>          return mmap_find_vma_reserved(start, size);
>      }
> +#endif
>  
>      addr = start;
>      wrapped = repeat = 0;
> -- 
> 1.7.1
> 
> 
>

Patch

diff --git a/linux-user/mmap.c b/linux-user/mmap.c
index abf21f6..0cf22f8 100644
--- a/linux-user/mmap.c
+++ b/linux-user/mmap.c
@@ -216,6 +216,7 @@  static abi_ulong mmap_next_start = TASK_UNMAPPED_BASE;
 
 unsigned long last_brk;
 
+#ifdef CONFIG_USE_GUEST_BASE
 /* Subroutine of mmap_find_vma, used when we have pre-allocated a chunk
    of guest address space.  */
 static abi_ulong mmap_find_vma_reserved(abi_ulong start, abi_ulong size)
@@ -249,6 +250,7 @@  static abi_ulong mmap_find_vma_reserved(abi_ulong start, abi_ulong size)
     mmap_next_start = addr;
     return last_addr;
 }
+#endif
 
 /*
  * Find and reserve a free memory area of size 'size'. The search
@@ -271,9 +273,11 @@  abi_ulong mmap_find_vma(abi_ulong start, abi_ulong size)
 
     size = HOST_PAGE_ALIGN(size);
 
+#ifdef CONFIG_USE_GUEST_BASE
     if (RESERVED_VA) {
         return mmap_find_vma_reserved(start, size);
     }
+#endif
 
     addr = start;
     wrapped = repeat = 0;