On Sat, Oct 15, 2016 at 02:14:21PM -0400, James McCoy wrote: > On Sat, Oct 15, 2016 at 01:40:43PM -0400, James McCoy wrote:
> > Lo and behold, configuring without --enable-perlinterp but adding > > "-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" to PERL_CFLAGS in > > src/auto/config.mk reproduces the issue. > > > > Which begs the question, why does configure think the defines aren't > > necessary? > > And why does Perl's build think they are necessary, advertising them as > required to build against Perl? I believe the immediate reason is that the PerlInterpreter struct in perl.h / intrpvar.h has 'stat struct' members in it (aliased as Stat_t.) This is the main interface for embedding Perl (see perlembed(1)), so building without _FILE_OFFSET_BITS=64 results in binary incompatibility with perl/libperl on 32-bit platforms. We've seen plenty of related crashes and the like with applications ignoring Perl's ccflags. Not sure about _LARGEFILE_SOURCE; I always thought the two just need to go together. -- Niko Tyni nt...@debian.org