I got an error while compiling gdb-5.0.
4.17 works well.

inftarg.c: In function `child_has_exited':
inftarg.c:715: request for member `w_S' in something not a structure or union
inftarg.c:715: request for member `w_T' in something not a structure or union
inftarg.c:721: request for member `w_S' in something not a structure or union
inftarg.c:721: request for member `w_T' in something not a structure or union
gmake[1]: *** [inftarg.o] Error 1
gmake[1]: Leaving directory `/export2/src/gdb-5.0/gdb'

My mips-sony-bsd system is 4.3BSD based and has 'union wait'. So,
fully POSIXised(?) code is always difficult to compile.

For example, the error above is here.

--->8------>8------>8------>8------>8------>8---
int
child_has_exited (pid, wait_status, exit_status)
     int pid;
     int wait_status;
     int *exit_status;
{
  if (WIFEXITED (wait_status))
[snip]
--->8------>8------>8------>8------>8------>8---

Here, it is better to be like this.

--->8------>8------>8------>8------>8------>8---
#if ... /* I don't know how to detect. */
typedef WAIT_T union wait;
#else
typedef WAIT_T int;
#endif

int
child_has_exited (pid, wait_status, exit_status)
     int pid;
     WAIT_T wait_status;
     int *exit_status;
{
  if (WIFEXITED ((WAIT_T)wait_status))
[snip]
--->8------>8------>8------>8------>8------>8---

if GDB will support non-POSIX OSes.

I'm afraid there are other problems...
-- 
NAKAJI Hiroyuki

Reply via email to