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
next 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