This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] sim: bfin: check for kill/pread


If the host system (like Windows) doesn't support these functions,
then make sure we don't use them.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>

2011-03-16  Mike Frysinger  <vapier@gentoo.org>

	* configure.ac (AC_CHECK_FUNCS): Check for kill and pread.
	* configure: Regenerate.
	* config.in: Regenerate.
	* interp.c (bfin_syscall): Check for HAVE_{KILL,PREAD} before using
	kill or pread.
---
 sim/bfin/config.in    |    6 ++++++
 sim/bfin/configure    |    2 +-
 sim/bfin/configure.ac |    2 +-
 sim/bfin/interp.c     |    9 +++++++++
 4 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/sim/bfin/config.in b/sim/bfin/config.in
index b44011d..2b25645 100644
--- a/sim/bfin/config.in
+++ b/sim/bfin/config.in
@@ -55,6 +55,9 @@
 /* Define to 1 if you have the <inttypes.h> header file. */
 #undef HAVE_INTTYPES_H
 
+/* Define to 1 if you have the `kill' function. */
+#undef HAVE_KILL
+
 /* Define to 1 if you have the `nsl' library (-lnsl). */
 #undef HAVE_LIBNSL
 
@@ -79,6 +82,9 @@
 /* Define to 1 if you have the <net/if.h> header file. */
 #undef HAVE_NET_IF_H
 
+/* Define to 1 if you have the `pread' function. */
+#undef HAVE_PREAD
+
 /* Define to 1 if you have the `setgid' function. */
 #undef HAVE_SETGID
 
diff --git a/sim/bfin/configure b/sim/bfin/configure
index 02bfebb..70e038d 100755
--- a/sim/bfin/configure
+++ b/sim/bfin/configure
@@ -5151,7 +5151,7 @@ fi
 fi
 
 
-for ac_func in getuid getgid geteuid getegid setuid setgid mmap munmap
+for ac_func in getuid getgid geteuid getegid setuid setgid mmap munmap kill pread
 do :
   as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
 ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
diff --git a/sim/bfin/configure.ac b/sim/bfin/configure.ac
index fddebc9..6c03107 100644
--- a/sim/bfin/configure.ac
+++ b/sim/bfin/configure.ac
@@ -47,7 +47,7 @@ SIM_AC_OPTION_HARDWARE(yes,,\
 	eth_phy \
 )
 
-AC_CHECK_FUNCS([getuid getgid geteuid getegid setuid setgid mmap munmap])
+AC_CHECK_FUNCS([getuid getgid geteuid getegid setuid setgid mmap munmap kill pread])
 AC_CHECK_HEADERS([sys/ioctl.h sys/mman.h net/if.h linux/if_tun.h linux/mii.h])
 
 BFIN_SIM_EXTRA_OBJS=
diff --git a/sim/bfin/interp.c b/sim/bfin/interp.c
index 32e2adc..aac35e6 100644
--- a/sim/bfin/interp.c
+++ b/sim/bfin/interp.c
@@ -297,6 +297,7 @@ bfin_syscall (SIM_CPU *cpu)
 	  sc.errcode = TARGET_ENOSYS;
 	else
 	  {
+#ifdef HAVE_PREAD
 	    char *data = xmalloc (sc.arg2);
 
 	    /* XXX: Should add a cb->pread.  */
@@ -306,6 +307,9 @@ bfin_syscall (SIM_CPU *cpu)
 	      sc.errcode = TARGET_EINVAL;
 
 	    free (data);
+#else
+	    sc.errcode = TARGET_ENOSYS;
+#endif
 	  }
 
 	if (sc.errcode)
@@ -495,8 +499,13 @@ bfin_syscall (SIM_CPU *cpu)
 	}
       else
 	{
+#ifdef HAVE_KILL
 	  sc.result = kill (sc.arg1, sc.arg2);
 	  goto sys_finish;
+#else
+	  sc.result = -1;
+	  sc.errcode = TARGET_ENOSYS;
+#endif
 	}
       break;
 
-- 
1.7.4.1


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]