From: Ruben Kerkhof Date: Sun, 7 Aug 2016 09:59:31 +0000 (+0200) Subject: perl plugin: needs _LARGEFILE64_SOURCE X-Git-Tag: collectd-5.6.0~88 X-Git-Url: https://git.octo.it/?a=commitdiff_plain;h=98527443c0c106f51c8fc05c02957247fcfd8780;p=collectd.git perl plugin: needs _LARGEFILE64_SOURCE libperl compiled with LARGE_FILES support defines its own Off_t as off64_t, even if off_t is 64-bit wide on 64bit platforms. off64_t is only exposed in the libc headers if _LARGEFILE64_SOURCE is defined. In file included from perl.c:47:0: /usr/lib/x86_64-linux-gnu/perl/5.20/CORE/perl.h:2398:22: error: unknown type name 'off64_t' # define Off_t off64_t ^ /usr/lib/x86_64-linux-gnu/perl/5.20/CORE/perlio.h:277:15: note: in expansion of macro 'Off_t' PERL_EXPORT_C Off_t PerlIO_tell(PerlIO *); --- diff --git a/src/Makefile.am b/src/Makefile.am index 8b8143f6..a51e2ec0 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -848,6 +848,9 @@ perl_la_SOURCES = perl.c # Despite C99 providing the "bool" type thru stdbool.h, Perl defines its own # version of that type if HAS_BOOL is not defined... *sigh* perl_la_CPPFLAGS = $(AM_CPPFLAGS) -DHAS_BOOL=1 +# Despite off_t being 64 bit wide on 64 bit platforms, Perl insist on using +# off64_t which is only exposed when _LARGEFILE64_SOURCE is defined... *sigh* +perl_la_CPPFLAGS += -D_LARGEFILE64_SOURCE perl_la_CFLAGS = $(AM_CFLAGS) \ $(PERL_CFLAGS) \ -DXS_VERSION=\"$(VERSION)\" -DVERSION=\"$(VERSION)\"