[Libreoffice-commits] .: Branch 'libreoffice-3-5' - bridges/source configure.in set_soenv.in
François Tigeot
ftigeot at kemper.freedesktop.org
Wed Jan 11 04:55:54 PST 2012
bridges/source/cpp_uno/shared/makefile.mk | 4 ++++
bridges/source/cpp_uno/shared/vtablefactory.cxx | 8 ++++++++
configure.in | 2 ++
set_soenv.in | 1 +
4 files changed, 15 insertions(+)
New commits:
commit 2938ec5539b54e98e801ae14ccb2c163cd94a92a
Author: Robert Nagy <robert.nagy at gmail.com>
Date: Wed Dec 21 16:16:22 2011 +0100
only use posix_fallocate() if it's actually available
diff --git a/bridges/source/cpp_uno/shared/makefile.mk b/bridges/source/cpp_uno/shared/makefile.mk
index 4ce8122..c71ba6b 100644
--- a/bridges/source/cpp_uno/shared/makefile.mk
+++ b/bridges/source/cpp_uno/shared/makefile.mk
@@ -33,6 +33,10 @@ ENABLE_EXCEPTIONS = TRUE
.INCLUDE: settings.mk
+.IF "$(HAVE_POSIX_FALLOCATE)" == "YES"
+CDEFS += -DHAVE_POSIX_FALLOCATE
+.ENDIF
+
SLOFILES = \
$(SLO)$/bridge.obj \
$(SLO)$/component.obj \
diff --git a/bridges/source/cpp_uno/shared/vtablefactory.cxx b/bridges/source/cpp_uno/shared/vtablefactory.cxx
index 801b16c..4d7e867 100644
--- a/bridges/source/cpp_uno/shared/vtablefactory.cxx
+++ b/bridges/source/cpp_uno/shared/vtablefactory.cxx
@@ -264,10 +264,18 @@ bool VtableFactory::createBlock(Block &block, sal_Int32 slotCount) const
}
unlink(tmpfname);
delete[] tmpfname;
+#if defined(HAVE_POSIX_FALLOCATE)
int err = posix_fallocate(block.fd, 0, block.size);
+#else
+ int err = ftruncate(block.fd, block.size);
+#endif
if (err != 0)
{
+#if defined(HAVE_POSIX_FALLOCATE)
SAL_WARN("bridges", "posix_fallocate failed with code " << err);
+#else
+ SAL_WARN("bridges", "truncation of executable memory area failed with code " << err);
+#endif
close(block.fd);
block.fd = -1;
break;
diff --git a/configure.in b/configure.in
index 290b294..40b20eb 100644
--- a/configure.in
+++ b/configure.in
@@ -3843,6 +3843,8 @@ fi
if test "$with_alloc" = "internal" -o -z "$with_alloc"; then
AC_MSG_RESULT([internal])
fi
+AC_CHECK_FUNCS(posix_fallocate, HAVE_POSIX_FALLOCATE=YES, [HAVE_POSIX_FALLOCATE=NO])
+AC_SUBST(HAVE_POSIX_FALLOCATE)
AC_SUBST(ALLOC)
dnl ===================================================================
diff --git a/set_soenv.in b/set_soenv.in
index 5347a84..afaac53 100755
--- a/set_soenv.in
+++ b/set_soenv.in
@@ -1999,6 +1999,7 @@ ToFile( "HUNSPELL_LIBS", "@HUNSPELL_LIBS@", "e" );
ToFile( "SYSTEM_LPSOLVE", "@SYSTEM_LPSOLVE@", "e" );
ToFile( "HAVE_GETOPT", "@HAVE_GETOPT@", "e" );
ToFile( "HAVE_READDIR_R", "@HAVE_READDIR_R@", "e" );
+ToFile( "HAVE_POSIX_FALLOCATE", "@HAVE_POSIX_FALLOCATE@", "e" );
ToFile( "SYSTEM_LIBC", "@SYSTEM_LIBC@", "e" );
ToFile( "SYSTEM_HYPH", "@SYSTEM_HYPH@", "e" );
ToFile( "HYPHEN_LIB", "@HYPHEN_LIB@", "e" );
More information about the Libreoffice-commits
mailing list