Kaydet (Commit) b8b22391 authored tarafından Robert Nagy's avatar Robert Nagy

only use posix_fallocate() if it's actually available

üst 56c0d3b5
......@@ -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 \
......
......@@ -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;
......
......@@ -3879,6 +3879,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 ===================================================================
......
......@@ -1934,6 +1934,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" );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment