Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Mark Mitchell <mark@codesourcery.com>
To: gdb-patches@sources.redhat.com
Subject: PATCH: Make PowerPC simulator compile on MinGW
Date: Thu, 17 Nov 2005 03:48:00 -0000	[thread overview]
Message-ID: <200511170034.jAH0YK2Z017839@sethra.codesourcery.com> (raw)


This patch makes it possible to build the PowerPC simulator on MinGW
-- with the exception of the recurring SIGTRAP issue.  Daniel is
coaching me on how to fix that correctly, so that is not included
here.

OK?

--
Mark Mitchell
CodeSourcery, LLC
mark@codesourcery.com

2005-11-16  Mark Mitchell  <mark@codesourcery.com>

	* configure.ac (USE_WIN32API): Define it.
	(sys/errno.h): Add it to AC_CHECK_HEADERS list.
	* configure.in: Regenerate.
	* config.in: Likewise.
	* emul_netbsd.c (sys/errno.h): Guard with HAVE_SYS_ERRNO_H.
	(write_timezone): Guard with HAVE_GETTIMEOFDAY.
	* emul_unix.c (do_unix_mkdir): Handle Win32 1-argument mkdir. 

Index: configure.ac
===================================================================
RCS file: /cvs/src/src/sim/ppc/configure.ac,v
retrieving revision 1.3
diff -c -5 -p -r1.3 configure.ac
*** configure.ac	20 Apr 2005 14:43:55 -0000	1.3
--- configure.ac	17 Nov 2005 00:29:24 -0000
*************** fi],[sim_xor_endian=""])dnl
*** 565,574 ****
--- 565,584 ----
  AC_CANONICAL_SYSTEM
  AC_ARG_PROGRAM
  
  . ${srcdir}/../../bfd/configure.host
  
+ case ${host} in
+   *mingw32*)
+     AC_DEFINE(USE_WIN32API, 1,
+               [Define if we should use the Windows API, instead of the 
+ 	       POSIX API.  On Windows, we use the Windows API when 
+ 	       building for MinGW, but the POSIX API when building 
+ 	       for Cygwin.])
+     ;;
+ esac	    
+ 
  AC_CONFIG_HEADER(config.h:config.in)
  
  AC_STRUCT_ST_BLKSIZE
  AC_STRUCT_ST_BLOCKS
  AC_STRUCT_ST_RDEV
*************** AC_TYPE_SIGNAL
*** 582,592 ****
  AC_TYPE_SIZE_T
  AC_TYPE_UID_T
  
  AC_CHECK_FUNCS(access cfgetispeed cfgetospeed cfsetispeed cfsetospeed chdir chmod chown dup dup2 fchmod fchown fcntl fstat fstatfs getdirentries getegid geteuid getgid getpid getppid getrusage gettimeofday getuid ioctl kill link lseek lstat mkdir pipe readlink rmdir setreuid setregid stat sigprocmask stat symlink tcgetattr tcsetattr tcsendbreak tcdrain tcflush tcflow tcgetpgrp tcsetpgrp time umask unlink)
  
! AC_CHECK_HEADERS(fcntl.h stdlib.h string.h strings.h sys/ioctl.h sys/mount.h sys/param.h sys/resource.h sys/stat.h sys/termio.h sys/termios.h sys/time.h sys/times.h sys/types.h time.h unistd.h sys/vfs.h sys/statfs.h)
  AC_HEADER_DIRENT
  
  dnl Figure out what type of termio/termios support there is
  sim_termio=""
  AC_MSG_CHECKING(for struct termios)
--- 592,602 ----
  AC_TYPE_SIZE_T
  AC_TYPE_UID_T
  
  AC_CHECK_FUNCS(access cfgetispeed cfgetospeed cfsetispeed cfsetospeed chdir chmod chown dup dup2 fchmod fchown fcntl fstat fstatfs getdirentries getegid geteuid getgid getpid getppid getrusage gettimeofday getuid ioctl kill link lseek lstat mkdir pipe readlink rmdir setreuid setregid stat sigprocmask stat symlink tcgetattr tcsetattr tcsendbreak tcdrain tcflush tcflow tcgetpgrp tcsetpgrp time umask unlink)
  
! AC_CHECK_HEADERS(fcntl.h stdlib.h string.h strings.h sys/ioctl.h sys/mount.h sys/param.h sys/resource.h sys/stat.h sys/termio.h sys/termios.h sys/time.h sys/times.h sys/types.h time.h unistd.h sys/vfs.h sys/statfs.h sys/errno.h)
  AC_HEADER_DIRENT
  
  dnl Figure out what type of termio/termios support there is
  sim_termio=""
  AC_MSG_CHECKING(for struct termios)
Index: emul_netbsd.c
===================================================================
RCS file: /cvs/src/src/sim/ppc/emul_netbsd.c,v
retrieving revision 1.5
diff -c -5 -p -r1.5 emul_netbsd.c
*** emul_netbsd.c	24 Sep 2004 18:39:41 -0000	1.5
--- emul_netbsd.c	17 Nov 2005 00:29:24 -0000
***************
*** 41,51 ****
--- 41,53 ----
  #include <sys/stat.h>
  #include <stdio.h>
  #include <signal.h>
  #include <fcntl.h>
  #include <errno.h>
+ #ifdef HAVE_SYS_ERRNO_H
  #include <sys/errno.h>
+ #endif
  #include <sys/param.h>
  #include <sys/time.h>
  
  #ifdef HAVE_GETRUSAGE
  #ifndef HAVE_SYS_RESOURCE_H
*************** write_timeval(unsigned_word addr,
*** 222,243 ****
    H2T(t.tv_sec);
    H2T(t.tv_usec);
    emul_write_buffer(&t, addr, sizeof(t), processor, cia);
  }
  
! 
  STATIC_INLINE_EMUL_NETBSD void
  write_timezone(unsigned_word addr,
  	       struct timezone tz,
  	       cpu *processor,
  	       unsigned_word cia)
  {
    H2T(tz.tz_minuteswest);
    H2T(tz.tz_dsttime);
    emul_write_buffer(&tz, addr, sizeof(tz), processor, cia);
  }
! 
  
  #ifdef HAVE_GETDIRENTRIES
  STATIC_INLINE_EMUL_NETBSD void
  write_direntries(unsigned_word addr,
  		 char *buf,
--- 224,245 ----
    H2T(t.tv_sec);
    H2T(t.tv_usec);
    emul_write_buffer(&t, addr, sizeof(t), processor, cia);
  }
  
! #ifdef HAVE_GETTIMEOFDAY
  STATIC_INLINE_EMUL_NETBSD void
  write_timezone(unsigned_word addr,
  	       struct timezone tz,
  	       cpu *processor,
  	       unsigned_word cia)
  {
    H2T(tz.tz_minuteswest);
    H2T(tz.tz_dsttime);
    emul_write_buffer(&tz, addr, sizeof(tz), processor, cia);
  }
! #endif
  
  #ifdef HAVE_GETDIRENTRIES
  STATIC_INLINE_EMUL_NETBSD void
  write_direntries(unsigned_word addr,
  		 char *buf,
Index: emul_unix.c
===================================================================
RCS file: /cvs/src/src/sim/ppc/emul_unix.c,v
retrieving revision 1.1.1.1
diff -c -5 -p -r1.1.1.1 emul_unix.c
*** emul_unix.c	16 Apr 1999 01:35:09 -0000	1.1.1.1
--- emul_unix.c	17 Nov 2005 00:29:24 -0000
*************** do_unix_mkdir(os_emul_data *emul,
*** 728,738 ****
--- 728,742 ----
    int status;
  
    if (WITH_TRACE && ppc_trace[trace_os_emul])
      printf_filtered ("0x%lx [%s], 0%3o", (long)path_addr, path, mode);
  
+ #ifdef USE_WIN32API
+   status = mkdir(path);
+ #else
    status = mkdir(path, mode);
+ #endif
    emul_write_status(processor, status, errno);
  }
  #endif
  
  #ifndef HAVE_RMDIR


             reply	other threads:[~2005-11-17  0:34 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-11-17  3:48 Mark Mitchell [this message]
2005-11-17  3:49 ` Mark Kettenis
2005-11-17  3:55   ` Mark Mitchell
2005-11-28 22:58     ` Daniel Jacobowitz
2005-11-29  2:34       ` Mark Mitchell
2005-11-29  2:44         ` Mark Kettenis
2005-11-29 12:41           ` Mark Mitchell

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=200511170034.jAH0YK2Z017839@sethra.codesourcery.com \
    --to=mark@codesourcery.com \
    --cc=gdb-patches@sources.redhat.com \
    /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