Re: [PATCH v4 12/14] add linux_infcall_mmap

Yao Qi
2014-12-15T13:49:39Z

Ulrich Weigand <uweigand@de.ibm.com> writes:

> /home/uweigand/dailybuild/spu-tc-2014-12-13/binutils-gdb-head/binutils-gdb/gdb/linux-tdep.c:
> In function 'linux_infcall_mmap':
> /home/uweigand/dailybuild/spu-tc-2014-12-13/binutils-gdb-head/binutils-gdb/gdb/linux-tdep.c:1945:
> error: expected identifier before numeric constant
>
> on my RHEL 5 build system, presumably because ARG_MAX is defined
> (to a numeric constant) by a system header.
>
> Can we give those more distinctive names?

I got the same problem. Patch below unblocks the build.

--
Yao (齐尧)

From: Yao Qi <yao@codesourcery.com>
Date: Mon, 15 Dec 2014 21:40:29 +0800
Subject: [PATCH] Replace ARG_MAX with ARG_LAST

We define an enum ARG_MAX in linux_infcall_mmap, but it is conflict
with macro ARG_MAX which is defined in /usr/include/linux/limits.h.
This causes a build failure below,

gdb/linux-tdep.c: In function 'linux_infcall_mmap':
gdb/linux-tdep.c:1945:70: error: expected identifier before numeric constant

the enum in the pre-processed source becomes:

enum
{
ARG_ADDR, ARG_LENGTH, ARG_PROT, ARG_FLAGS, ARG_FD, ARG_OFFSET, 131072
};

This patch is to replace ARG_MAX with ARG_LAST.

gdb:

2014-12-15 Yao Qi <yao@codesourcery.com>

* linux-tdep.c (linux_infcall_mmap): Replace ARG_MAX with
ARG_LAST.
---
gdb/linux-tdep.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/gdb/linux-tdep.c b/gdb/linux-tdep.c
index 485f5ca..6b5e475 100644
--- a/gdb/linux-tdep.c
+++ b/gdb/linux-tdep.c
@@ -1942,9 +1942,9 @@ linux_infcall_mmap (CORE_ADDR size, unsigned prot)
CORE_ADDR retval;
enum
{
- ARG_ADDR, ARG_LENGTH, ARG_PROT, ARG_FLAGS, ARG_FD, ARG_OFFSET, ARG_MAX
+ ARG_ADDR, ARG_LENGTH, ARG_PROT, ARG_FLAGS, ARG_FD, ARG_OFFSET, ARG_LAST
};
- struct value *arg[ARG_MAX];
+ struct value *arg[ARG_LAST];

arg[ARG_ADDR] = value_from_pointer (builtin_type (gdbarch)->builtin_data_ptr,
0);
@@ -1961,7 +1961,7 @@ linux_infcall_mmap (CORE_ADDR size, unsigned prot)
arg[ARG_FD] = value_from_longest (builtin_type (gdbarch)->builtin_int, -1);
arg[ARG_OFFSET] = value_from_longest (builtin_type (gdbarch)->builtin_int64,
0);
- addr_val = call_function_by_hand (mmap_val, ARG_MAX, arg);
+ addr_val = call_function_by_hand (mmap_val, ARG_LAST, arg);
retval = value_as_address (addr_val);
if (retval == (CORE_ADDR) -1)
error (_("Failed inferior mmap call for %s bytes, errno is changed."),
--
1.9.3