From: Hui Zhu <teawater@gmail.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: Joel Brobecker <brobecker@adacore.com>, gdb-patches@sourceware.org
Subject: Re: [Prec/RFA] fix build error of prec in cygwin
Date: Fri, 22 May 2009 09:06:00 -0000 [thread overview]
Message-ID: <daef60380905220206ie125b84k7d6618f2f1e606d0@mail.gmail.com> (raw)
In-Reply-To: <83ws89occi.fsf@gnu.org>
[-- Attachment #1: Type: text/plain, Size: 448 bytes --]
Hi Eli,
On Fri, May 22, 2009 at 14:55, Eli Zaretskii <eliz@gnu.org> wrote:
>> Date: Thu, 21 May 2009 23:05:45 -0700
>> From: Joel Brobecker <brobecker@adacore.com>
>>
>> > "%zu"
>>
>> Are we allowed to use %z?
>
> No, I don't think so.
>
>> I thought that %z is C99
>
> It is.
>
> I think the best we can do with C90 is use %lu and cast to
> `unsigned long'.
>
I make a new patch use %lu and unsigned long. Please help me review it.
Thanks,
hui
[-- Attachment #2: fix-prec-cygwin-build-error.txt --]
[-- Type: text/plain, Size: 10292 bytes --]
---
i386-linux-tdep.c | 14 ++++++++
linux-record.c | 90 ++++++++++++++++++++++++++----------------------------
linux-record.h | 7 ++++
3 files changed, 65 insertions(+), 46 deletions(-)
--- a/i386-linux-tdep.c
+++ b/i386-linux-tdep.c
@@ -586,6 +586,14 @@ static int i386_linux_sc_reg_offset[] =
#define I386_LINUX_RECORD_IOCTL_TIOCSHAYESESP 0x545F
#define I386_LINUX_RECORD_IOCTL_FIOQSIZE 0x5460
+/* The values of the second argument of system call "sys_fcntl"
+ and "sys_fcntl64". The values of these macros were obtained from
+ Linux Kernel source. */
+#define I386_LINUX_RECORD_FCNTL_F_GETLK 5
+#define I386_LINUX_RECORD_FCNTL_F_GETLK64 12
+#define I386_LINUX_RECORD_FCNTL_F_SETLK64 13
+#define I386_LINUX_RECORD_FCNTL_F_SETLKW64 14
+
static void
i386_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
{
@@ -783,6 +791,12 @@ i386_linux_init_abi (struct gdbarch_info
I386_LINUX_RECORD_IOCTL_TIOCSHAYESESP;
i386_linux_record_tdep.ioctl_FIOQSIZE = I386_LINUX_RECORD_IOCTL_FIOQSIZE;
+ i386_linux_record_tdep.fcntl_F_GETLK = I386_LINUX_RECORD_FCNTL_F_GETLK;
+ i386_linux_record_tdep.fcntl_F_GETLK64 = I386_LINUX_RECORD_FCNTL_F_GETLK64;
+ i386_linux_record_tdep.fcntl_F_SETLK64 = I386_LINUX_RECORD_FCNTL_F_SETLK64;
+ i386_linux_record_tdep.fcntl_F_SETLKW64 =
+ I386_LINUX_RECORD_FCNTL_F_SETLKW64;
+
i386_linux_record_tdep.arg1 = I386_EBX_REGNUM;
i386_linux_record_tdep.arg2 = I386_ECX_REGNUM;
i386_linux_record_tdep.arg3 = I386_EDX_REGNUM;
--- a/linux-record.c
+++ b/linux-record.c
@@ -393,8 +393,8 @@ record_linux_system_call (int num, struc
else
{
printf_unfiltered (_("Process record and replay target doesn't "
- "support ioctl request 0x%08x.\n"),
- tmpu32);
+ "support ioctl request 0x%s.\n"),
+ phex_nz (tmpu32, 4));
return 1;
}
break;
@@ -404,7 +404,7 @@ record_linux_system_call (int num, struc
/* XXX */
regcache_raw_read (regcache, tdep->arg2, (gdb_byte *) & tmpu32);
sys_fcntl:
- if (tmpu32 == F_GETLK)
+ if (tmpu32 == tdep->fcntl_F_GETLK)
{
regcache_raw_read (regcache, tdep->arg3,
(gdb_byte *) & tmpu32);
@@ -546,9 +546,9 @@ record_linux_system_call (int num, struc
if (record_debug)
fprintf_unfiltered (gdb_stdlog,
"Process record: error reading memory "
- "at addr = 0x%s len = %d.\n",
+ "at addr = 0x%s len = %lu.\n",
paddr_nz (tmpu32),
- (int) sizeof (sel));
+ (unsigned long)sizeof (sel));
return -1;
}
if (record_arch_list_add_mem (sel.inp, tdep->size_fd_set))
@@ -623,10 +623,10 @@ record_linux_system_call (int num, struc
target_terminal_ours ();
q =
yquery (_("The next instruction is syscall munmap. "
- "It will free the memory addr = 0x%s len = %d. "
+ "It will free the memory addr = 0x%s len = %u. "
"It will make record target get error. "
"Do you want to stop the program?"),
- paddr_nz (tmpu32), len);
+ paddr_nz (tmpu32), (int)len);
target_terminal_inferior ();
if (q)
return 1;
@@ -686,9 +686,9 @@ record_linux_system_call (int num, struc
if (record_debug)
fprintf_unfiltered (gdb_stdlog,
"Process record: error reading "
- "memory at addr = 0x%s len = %d.\n",
+ "memory at addr = 0x%s len = %lu.\n",
paddr_nz (tmpu32),
- (int) sizeof (a));
+ (unsigned long)sizeof (a));
return -1;
}
if (record_arch_list_add_mem (a[1], tdep->size_sockaddr))
@@ -711,9 +711,9 @@ record_linux_system_call (int num, struc
if (record_debug)
fprintf_unfiltered (gdb_stdlog,
"Process record: error reading "
- "memory at addr = 0x%s len = %d.\n",
+ "memory at addr = 0x%s len = %lu.\n",
paddr_nz (tmpu32),
- (int) sizeof (a));
+ (unsigned long)sizeof (a));
return -1;
}
if (record_arch_list_add_mem (a[3], tdep->size_int))
@@ -736,9 +736,9 @@ record_linux_system_call (int num, struc
if (record_debug)
fprintf_unfiltered (gdb_stdlog,
"Process record: error reading "
- "memory at addr = 0x%s len = %d.\n",
+ "memory at addr = 0x%s len = %lu.\n",
paddr_nz (tmpu32),
- (int) sizeof (a));
+ (unsigned long)sizeof (a));
return -1;
}
if (a[2])
@@ -750,9 +750,9 @@ record_linux_system_call (int num, struc
fprintf_unfiltered (gdb_stdlog,
"Process record: error reading "
"memory at addr = 0x%s "
- "len = %d.\n",
+ "len = %lu.\n",
paddr_nz (a[2]),
- (int) sizeof (a[2]));
+ (unsigned long)sizeof (a[2]));
return -1;
}
if (record_arch_list_add_mem (a[1], a[2]))
@@ -773,9 +773,9 @@ record_linux_system_call (int num, struc
if (record_debug)
fprintf_unfiltered (gdb_stdlog,
"Process record: error reading "
- "memory at addr = 0x%s len = %d.\n",
+ "memory at addr = 0x%s len = %lu.\n",
paddr_nz (tmpu32),
- (int) sizeof (a));
+ (unsigned long)sizeof (a));
return -1;
}
if (a[2])
@@ -787,9 +787,9 @@ record_linux_system_call (int num, struc
fprintf_unfiltered (gdb_stdlog,
"Process record: error reading "
"memory at addr = 0x%s "
- "len = %d.\n",
+ "len = %lu.\n",
paddr_nz (a[2]),
- (int) sizeof (a[2]));
+ (unsigned long)sizeof (a[2]));
return -1;
}
if (record_arch_list_add_mem (a[1], a[2]))
@@ -819,9 +819,9 @@ record_linux_system_call (int num, struc
if (record_debug)
fprintf_unfiltered (gdb_stdlog,
"Process record: error reading "
- "memory at addr = 0x%s len = %d.\n",
+ "memory at addr = 0x%s len = %lu.\n",
paddr_nz (tmpu32),
- (int) sizeof (a));
+ (unsigned long)sizeof (a));
return -1;
}
if (a[4])
@@ -833,9 +833,9 @@ record_linux_system_call (int num, struc
fprintf_unfiltered (gdb_stdlog,
"Process record: error reading "
"memory at addr = 0x%s "
- "len = %d.\n",
+ "len = %lu.\n",
paddr_nz (a[4]),
- (int) sizeof (av));
+ (unsigned long)sizeof (av));
return -1;
}
if (record_arch_list_add_mem (a[3], av))
@@ -876,9 +876,9 @@ record_linux_system_call (int num, struc
if (record_debug)
fprintf_unfiltered (gdb_stdlog,
"Process record: error reading "
- "memory at addr = 0x%s len = %d.\n",
+ "memory at addr = 0x%s len = %lu.\n",
paddr_nz (tmpu32),
- (int) sizeof (a));
+ (unsigned long)sizeof (a));
return -1;
}
if (record_arch_list_add_mem (a[1], tdep->size_msghdr))
@@ -892,9 +892,9 @@ record_linux_system_call (int num, struc
fprintf_unfiltered (gdb_stdlog,
"Process record: error reading "
"memory at addr = 0x%s "
- "len = %d.\n",
+ "len = %lu.\n",
paddr_nz (a[1]),
- (int) sizeof (rec));
+ (unsigned long)sizeof (rec));
return -1;
}
if (record_arch_list_add_mem
@@ -916,10 +916,10 @@ record_linux_system_call (int num, struc
"Process record: error "
"reading memory at "
"addr = 0x%s "
- "len = %d.\n",
+ "len = %lu.\n",
paddr_nz (rec.
msg_iov),
- (int) sizeof (iov));
+ (unsigned long)sizeof (iov));
return -1;
}
if (record_arch_list_add_mem
@@ -934,8 +934,8 @@ record_linux_system_call (int num, struc
break;
default:
printf_unfiltered (_("Process record and replay target "
- "doesn't support socketcall call 0x%08x\n"),
- tmpu32);
+ "doesn't support socketcall call 0x%s\n"),
+ phex_nz (tmpu32, 4));
return -1;
break;
}
@@ -1233,9 +1233,9 @@ record_linux_system_call (int num, struc
if (record_debug)
fprintf_unfiltered (gdb_stdlog,
"Process record: error reading "
- "memory at addr = 0x%s len = %d.\n",
+ "memory at addr = 0x%s len = %lu.\n",
paddr_nz (vec),
- (int) sizeof (struct record_iovec));
+ (unsigned long)sizeof (struct record_iovec));
return -1;
}
if (record_arch_list_add_mem (iov.iov_base, iov.iov_len))
@@ -1631,20 +1631,17 @@ record_linux_system_call (int num, struc
/* sys_fcntl64 */
case 221:
regcache_raw_read (regcache, tdep->arg2, (gdb_byte *) & tmpu32);
- switch (tmpu32)
- {
- case F_GETLK64:
+ if (tmpu32 == tdep->fcntl_F_GETLK64)
+ {
regcache_raw_read (regcache, tdep->arg3,
(gdb_byte *) & tmpu32);
if (record_arch_list_add_mem (tmpu32, tdep->size_flock64))
return -1;
- break;
- case F_SETLK64:
- case F_SETLKW64:
- break;
- default:
+ }
+ else if (tmpu32 != tdep->fcntl_F_SETLK64
+ && tmpu32 != tdep->fcntl_F_SETLKW64)
+ {
goto sys_fcntl;
- break;
}
break;
@@ -1785,8 +1782,9 @@ record_linux_system_call (int num, struc
if (record_debug)
fprintf_unfiltered (gdb_stdlog,
"Process record: error reading memory "
- "at addr = 0x%s len = %d.\n",
- paddr_nz (tmpu32), nr * tdep->size_int);
+ "at addr = 0x%s len = %u.\n",
+ paddr_nz (tmpu32),
+ (int)(nr * tdep->size_int));
return -1;
}
for (i = 0; i < nr; i++)
@@ -2195,8 +2193,8 @@ record_linux_system_call (int num, struc
default:
printf_unfiltered (_("Process record and replay target doesn't "
- "support syscall number 0x%08x\n"),
- tmpu32);
+ "support syscall number %u\n"),
+ (int)tmpu32);
return -1;
break;
}
--- a/linux-record.h
+++ b/linux-record.h
@@ -158,6 +158,13 @@ struct linux_record_tdep
int ioctl_TIOCSHAYESESP;
int ioctl_FIOQSIZE;
+ /* The values of the second argument of system call "sys_fcntl"
+ and "sys_fcntl64". */
+ int fcntl_F_GETLK;
+ int fcntl_F_GETLK64;
+ int fcntl_F_SETLK64;
+ int fcntl_F_SETLKW64;
+
/* The number of the registers that are used as the arguments of
a system call. */
int arg1;
next prev parent reply other threads:[~2009-05-22 9:06 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-05-10 17:31 Hui Zhu
2009-05-10 17:48 ` Christopher Faylor
2009-05-10 18:07 ` Hui Zhu
2009-05-10 23:51 ` Christopher Faylor
2009-05-18 8:43 ` Hui Zhu
2009-05-18 15:35 ` Christopher Faylor
2009-05-19 2:34 ` Hui Zhu
2009-05-21 2:39 ` Hui Zhu
2009-05-21 15:26 ` Christopher Faylor
2009-05-21 15:35 ` Pedro Alves
2009-05-21 17:35 ` Christopher Faylor
2009-05-21 16:43 ` Hui Zhu
2009-05-21 17:38 ` Christopher Faylor
2009-05-21 23:14 ` Hui Zhu
2009-05-22 0:46 ` Christopher Faylor
2009-05-22 2:12 ` Hui Zhu
2009-05-22 4:13 ` Christopher Faylor
2009-05-22 5:53 ` Hui Zhu
2009-05-22 6:05 ` Joel Brobecker
2009-05-22 6:56 ` Eli Zaretskii
2009-05-22 8:42 ` Hui Zhu
2009-05-22 9:37 ` Eli Zaretskii
2009-05-22 10:11 ` Jie Zhang
2009-05-22 9:06 ` Hui Zhu [this message]
2009-05-22 9:30 ` Eli Zaretskii
2009-05-22 14:11 ` Hui Zhu
2009-05-22 17:02 ` Christopher Faylor
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=daef60380905220206ie125b84k7d6618f2f1e606d0@mail.gmail.com \
--to=teawater@gmail.com \
--cc=brobecker@adacore.com \
--cc=eliz@gnu.org \
--cc=gdb-patches@sourceware.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox