diff options
author | Yann Droneaud <yann@droneaud.fr> | 2010-03-03 18:59:22 +0100 |
---|---|---|
committer | Rainer Gerhards <rgerhards@adiscon.com> | 2010-03-04 09:01:04 +0100 |
commit | 71ffb32ab8a1847f746a298ad20f7dd8b40570a0 (patch) | |
tree | efa254b62978215ef7622eb0a75b547c8efe5be7 | |
parent | cd8c6abcc8cea54924e55dffe820364ad98a40df (diff) | |
download | rsyslog-71ffb32ab8a1847f746a298ad20f7dd8b40570a0.tar.gz rsyslog-71ffb32ab8a1847f746a298ad20f7dd8b40570a0.tar.xz rsyslog-71ffb32ab8a1847f746a298ad20f7dd8b40570a0.zip |
Fix Large File Support (LFS) support (bug #182)
- _FILE_OFFSET_BITS must be defined before including any other system
headers otherwise it does nothing.
- Don't define it in rsyslog.h, let it be defined in config.h,
and let ./configure script enable LFS since Autoconf provides
a portable macro to enable LFS support : AC_SYS_LARGEFILE
-rw-r--r-- | configure.ac | 19 | ||||
-rw-r--r-- | runtime/rsyslog.h | 9 | ||||
-rw-r--r-- | tools/syslogd.c | 2 |
3 files changed, 7 insertions, 23 deletions
diff --git a/configure.ac b/configure.ac index b3d84b59..d229915e 100644 --- a/configure.ac +++ b/configure.ac @@ -152,19 +152,12 @@ AC_SUBST(moddirs) # Large file support -AC_ARG_ENABLE(largefile, - [AS_HELP_STRING([--enable-largefile],[Enable large file support @<:@default=yes@:>@])], - [case "${enableval}" in - yes) enable_largefile="yes" ;; - no) enable_largefile="no" ;; - *) AC_MSG_ERROR(bad value ${enableval} for --enable-largefile) ;; - esac], - [enable_largefile="yes"] -) -if test "$enable_largefile" = "no"; then - AC_DEFINE(NOLARGEFILE, 1, [Defined when large file support is disabled.]) -fi - +# http://www.gnu.org/software/autoconf/manual/html_node/System-Services.html#index-AC_005fSYS_005fLARGEFILE-1028 +AC_SYS_LARGEFILE +case "${enable_largefile}" in + no) ;; + *) enable_largefile="yes" ;; +esac # Regular expressions AC_ARG_ENABLE(regexp, diff --git a/runtime/rsyslog.h b/runtime/rsyslog.h index 0f489a7f..8979893a 100644 --- a/runtime/rsyslog.h +++ b/runtime/rsyslog.h @@ -46,15 +46,6 @@ * # End Config Settings # * * ############################################################# */ -#ifndef NOLARGEFILE -# undef _LARGEFILE_SOURCE -# undef _LARGEFILE64_SOURCE -# undef _FILE_OFFSET_BITS -# define _LARGEFILE_SOURCE -# define _LARGEFILE64_SOURCE -# define _FILE_OFFSET_BITS 64 -#endif - /* portability: not all platforms have these defines, so we * define them here if they are missing. -- rgerhards, 2008-03-04 */ diff --git a/tools/syslogd.c b/tools/syslogd.c index ba1dbb18..64b23566 100644 --- a/tools/syslogd.c +++ b/tools/syslogd.c @@ -2770,7 +2770,7 @@ static void printVersion(void) #else printf("\tFEATURE_REGEXP:\t\t\t\tNo\n"); #endif -#ifndef NOLARGEFILE +#if defined(_LARGE_FILES) || (defined (_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS >= 64) printf("\tFEATURE_LARGEFILE:\t\t\tYes\n"); #else printf("\tFEATURE_LARGEFILE:\t\t\tNo\n"); |