summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2011-11-07 16:28:52 +0000
committerMike Frysinger <vapier@gentoo.org>2011-11-07 16:28:52 +0000
commit296c5d89db735d000e148f96e0489962bf9c98a0 (patch)
tree1b6a77d8cd1038b3b12a22b87f89f4c05a6957d7
parent4dfbe182b642daffaf5c14efc472955005b8c444 (diff)
downloadgdb-296c5d89db735d000e148f96e0489962bf9c98a0.tar.gz
sim: dv-cfi: check for posix_fallocate
Some systems (like OS X) do not have posix_fallocate. Add a configure check for it before we try to use it. This is less work than trying to support old systems. URL: http://sourceware.org/bugzilla/show_bug.cgi?id=13161 Signed-off-by: Mike Frysinger <vapier@gentoo.org>
-rw-r--r--sim/common/ChangeLog7
-rw-r--r--sim/common/config.in3
-rwxr-xr-xsim/common/configure2
-rw-r--r--sim/common/configure.ac2
-rw-r--r--sim/common/dv-cfi.c2
5 files changed, 13 insertions, 3 deletions
diff --git a/sim/common/ChangeLog b/sim/common/ChangeLog
index b5c5ed4ccf8..b1c7f85b900 100644
--- a/sim/common/ChangeLog
+++ b/sim/common/ChangeLog
@@ -1,3 +1,10 @@
+2011-11-07 Mike Frysinger <vapier@gentoo.org>
+
+ PR sim/13161
+ * configure.ac (AC_CHECK_FUNCS): Add posix_fallocate.
+ * configure, config.in: Regenerate.
+ * dv-cfi.c (attach_cfi_regs): Check for HAVE_POSIX_FALLOCATE.
+
2011-10-19 Mike Frysinger <vapier@gentoo.org>
* acinclude.m4: Call AC_CHECK_LIB when $hardware contains cfi.
diff --git a/sim/common/config.in b/sim/common/config.in
index 6f93ff432e2..5792785ffee 100644
--- a/sim/common/config.in
+++ b/sim/common/config.in
@@ -43,6 +43,9 @@
/* Define to 1 if you have the `munmap' function. */
#undef HAVE_MUNMAP
+/* Define to 1 if you have the `posix_fallocate' function. */
+#undef HAVE_POSIX_FALLOCATE
+
/* Define to 1 if you have the `sigaction' function. */
#undef HAVE_SIGACTION
diff --git a/sim/common/configure b/sim/common/configure
index 4b80825f4dd..a8148bd1fcf 100755
--- a/sim/common/configure
+++ b/sim/common/configure
@@ -4393,7 +4393,7 @@ fi
done
-for ac_func in mmap munmap lstat truncate ftruncate
+for ac_func in mmap munmap lstat truncate ftruncate posix_fallocate
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/common/configure.ac b/sim/common/configure.ac
index a683f37a33a..e771575b5a1 100644
--- a/sim/common/configure.ac
+++ b/sim/common/configure.ac
@@ -34,7 +34,7 @@ AC_SUBST(TARGET_SUBDIR)
# These aren't all needed yet, but will be eventually.
AC_CHECK_HEADERS(stdlib.h string.h strings.h time.h sys/times.h sys/stat.h sys/mman.h)
-AC_CHECK_FUNCS(mmap munmap lstat truncate ftruncate)
+AC_CHECK_FUNCS(mmap munmap lstat truncate ftruncate posix_fallocate)
AC_CHECK_MEMBERS([[struct stat.st_dev], [struct stat.st_ino],
[struct stat.st_mode], [struct stat.st_nlink], [struct stat.st_uid],
[struct stat.st_gid], [struct stat.st_rdev], [struct stat.st_size],
diff --git a/sim/common/dv-cfi.c b/sim/common/dv-cfi.c
index a1ecaf9d57b..04b004bdeef 100644
--- a/sim/common/dv-cfi.c
+++ b/sim/common/dv-cfi.c
@@ -727,7 +727,7 @@ attach_cfi_regs (struct hw *me, struct cfi *cfi)
/* Figure out where our initial flash data is coming from. */
if (fd != -1 && fd_writable)
{
-#ifdef HAVE_MMAP
+#if defined (HAVE_MMAP) && defined (HAVE_POSIX_FALLOCATE)
posix_fallocate (fd, 0, cfi->dev_size);
cfi->mmap = mmap (NULL, cfi->dev_size,