Preferred bug tracker

Please visit the preferred bug tracker to report your issue.

This queue is for tickets about the Time-HiRes CPAN distribution.

Report information
The Basics
Id:
84178
Status:
resolved
Priority:
Low/Low
Queue:

People
Owner:
Nobody in particular
Requestors:
ilmari [...] ilmari.org
Cc:
AdminCc:

BugTracker
Severity:
(no value)
Broken in:
(no value)
Fixed in:
(no value)



Subject: Configure probes fail to link on perl 5.17.x
Date: Sun, 24 Mar 2013 14:23:43 +0100
To: bug-Time-HiRes@rt.cpan.org
From: ilmari@ilmari.org (Dagfinn Ilmari Mannsåker)
Several of the configure probes fail to link on perl 5.17.x, causing a Time::HiRes to lack features like clock_gettime(). Here's the build log under 5.17.10: ilmari@nurket:~/src/Time-HiRes-1.9725$ VERBOSE=1 perl Makefile.PL Configuring Time::HiRes... Using hints hints/linux.pl... Extra libraries: -lrt... Have syscall()... looking for syscall.h... cccmd = cc -o tmp28721 -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/home/ilmari/perl5/perlbrew/perls/perl-5.17.10/lib/5.17.10/x86_64-linux/CORE tmp28721.c -lrt /tmp/ccH7Tt2Z.o: In function `S_croak_memory_wrap': tmp28721.c:(.text+0x5): undefined reference to `PL_memory_wrap' tmp28721.c:(.text+0x14): undefined reference to `Perl_croak' collect2: error: ld returned 1 exit status cccmd = cc -o tmp28721 -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/home/ilmari/perl5/perlbrew/perls/perl-5.17.10/lib/5.17.10/x86_64-linux/CORE tmp28721.c -lrt /tmp/ccZ5Fkz0.o: In function `S_croak_memory_wrap': tmp28721.c:(.text+0x5): undefined reference to `PL_memory_wrap' tmp28721.c:(.text+0x14): undefined reference to `Perl_croak' collect2: error: ld returned 1 exit status NOT found. Looking for gettimeofday()... found. Looking for setitimer()... found. Looking for getitimer()... found. You have interval timers (both setitimer and getitimer). Looking for ualarm()... found. Looking for usleep()... found. Looking for nanosleep()... testing... cccmd = cc -o tmp28721 -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/home/ilmari/perl5/perlbrew/perls/perl-5.17.10/lib/5.17.10/x86_64-linux/CORE tmp28721.c -lrt Running ./tmp28721...found. You can mix subsecond sleeps with signals, if you want to. (It's still not portable, though.) Looking for clock_gettime()... cccmd = cc -o tmp28721 -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/home/ilmari/perl5/perlbrew/perls/perl-5.17.10/lib/5.17.10/x86_64-linux/CORE tmp28721.c -lrt /tmp/ccRvKBJ3.o: In function `S_croak_memory_wrap': tmp28721.c:(.text+0x5): undefined reference to `PL_memory_wrap' tmp28721.c:(.text+0x14): undefined reference to `Perl_croak' collect2: error: ld returned 1 exit status NOT found. Looking for clock_getres()... cccmd = cc -o tmp28721 -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/home/ilmari/perl5/perlbrew/perls/perl-5.17.10/lib/5.17.10/x86_64-linux/CORE tmp28721.c -lrt /tmp/cc3exavg.o: In function `S_croak_memory_wrap': tmp28721.c:(.text+0x5): undefined reference to `PL_memory_wrap' tmp28721.c:(.text+0x14): undefined reference to `Perl_croak' collect2: error: ld returned 1 exit status NOT found. Looking for clock_nanosleep()... cccmd = cc -o tmp28721 -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/home/ilmari/perl5/perlbrew/perls/perl-5.17.10/lib/5.17.10/x86_64-linux/CORE tmp28721.c -lrt /tmp/cc7hXQss.o: In function `S_croak_memory_wrap': tmp28721.c:(.text+0x5): undefined reference to `PL_memory_wrap' tmp28721.c:(.text+0x14): undefined reference to `Perl_croak' collect2: error: ld returned 1 exit status NOT found. Looking for clock()... cccmd = cc -o tmp28721 -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/home/ilmari/perl5/perlbrew/perls/perl-5.17.10/lib/5.17.10/x86_64-linux/CORE tmp28721.c -lrt /tmp/ccq16SGE.o: In function `S_croak_memory_wrap': tmp28721.c:(.text+0x5): undefined reference to `PL_memory_wrap' tmp28721.c:(.text+0x14): undefined reference to `Perl_croak' collect2: error: ld returned 1 exit status NOT found. Looking for stat() subsecond timestamps... Trying struct stat st_atimespec.tv_nsec...cccmd = cc -o tmp28721 -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/home/ilmari/perl5/perlbrew/perls/perl-5.17.10/lib/5.17.10/x86_64-linux/CORE tmp28721.c -lrt tmp28721.c: In function ‘main’: tmp28721.c:17:7: error: ‘struct stat’ has no member named ‘st_atimespec’ NOT found. Trying struct stat st_atimensec...cccmd = cc -o tmp28721 -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/home/ilmari/perl5/perlbrew/perls/perl-5.17.10/lib/5.17.10/x86_64-linux/CORE tmp28721.c -lrt tmp28721.c: In function ‘main’: tmp28721.c:17:7: error: ‘struct stat’ has no member named ‘st_atimensec’ NOT found. Trying struct stat st_atime_n...cccmd = cc -o tmp28721 -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/home/ilmari/perl5/perlbrew/perls/perl-5.17.10/lib/5.17.10/x86_64-linux/CORE tmp28721.c -lrt tmp28721.c: In function ‘main’: tmp28721.c:17:7: error: ‘struct stat’ has no member named ‘st_atime_n’ NOT found. Trying struct stat st_atim.tv_nsec...cccmd = cc -o tmp28721 -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/home/ilmari/perl5/perlbrew/perls/perl-5.17.10/lib/5.17.10/x86_64-linux/CORE tmp28721.c -lrt /tmp/ccpnxcyb.o: In function `S_croak_memory_wrap': tmp28721.c:(.text+0x5): undefined reference to `PL_memory_wrap' tmp28721.c:(.text+0x14): undefined reference to `Perl_croak' collect2: error: ld returned 1 exit status NOT found. Trying struct stat st_uatime...cccmd = cc -o tmp28721 -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/home/ilmari/perl5/perlbrew/perls/perl-5.17.10/lib/5.17.10/x86_64-linux/CORE tmp28721.c -lrt tmp28721.c: In function ‘main’: tmp28721.c:17:7: error: ‘struct stat’ has no member named ‘st_uatime’ NOT found. You do not seem to have stat subsecond timestamps. Checking if your kit is complete... Looks good Processing hints file hints/linux.pl Writing Makefile for Time::HiRes Writing MYMETA.yml and MYMETA.json Now you may issue 'make'. Do not forget also 'make test'. perl -V output: Summary of my perl5 (revision 5 version 17 subversion 10) configuration: Platform: osname=linux, osvers=3.5.0-25-generic, archname=x86_64-linux uname='linux nurket 3.5.0-25-generic #38-ubuntu smp mon feb 18 23:27:42 utc 2013 x86_64 x86_64 x86_64 gnulinux ' config_args='-de -Dprefix=/home/ilmari/perl5/perlbrew/perls/perl-5.17.10 -Dusedevel -Aeval:scriptdir=/home/ilmari/perl5/perlbrew/perls/perl-5.17.10/bin' hint=recommended, useposix=true, d_sigaction=define useithreads=undef, usemultiplicity=undef useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef use64bitint=define, use64bitall=define, uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='cc', ccflags ='-fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', optimize='-O2', cppflags='-fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include' ccversion='', gccversion='4.7.2', gccosandvers='' intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16 ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8 alignbytes=8, prototype=define Linker and Libraries: ld='cc', ldflags =' -fstack-protector -L/usr/local/lib' libpth=/usr/local/lib /lib/x86_64-linux-gnu /lib/../lib /usr/lib/x86_64-linux-gnu /usr/lib/../lib /lib /usr/lib libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc -lgdbm_compat perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc libc=, so=so, useshrplib=false, libperl=libperl.a gnulibc_version='2.15' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E' cccdlflags='-fPIC', lddlflags='-shared -O2 -L/usr/local/lib -fstack-protector' Characteristics of this binary (from libperl): Compile-time options: HAS_TIMES PERLIO_LAYERS PERL_DONT_CREATE_GVSV PERL_MALLOC_WRAP PERL_PRESERVE_IVUV PERL_SAWAMPERSAND PERL_USE_DEVEL USE_64_BIT_ALL USE_64_BIT_INT USE_LARGE_FILES USE_LOCALE USE_LOCALE_COLLATE USE_LOCALE_CTYPE USE_LOCALE_NUMERIC USE_PERLIO USE_PERL_ATOF Built under linux Compiled at Mar 23 2013 15:34:34 %ENV: PERLBREW_BASHRC_VERSION="0.60" PERLBREW_HOME="/home/ilmari/.perlbrew" PERLBREW_MANPATH="/home/ilmari/perl5/perlbrew/perls/perl-5.17.10/man" PERLBREW_PATH="/home/ilmari/perl5/perlbrew/bin:/home/ilmari/perl5/perlbrew/perls/perl-5.17.10/bin" PERLBREW_PERL="perl-5.17.10" PERLBREW_ROOT="/home/ilmari/perl5/perlbrew" PERLBREW_VERSION="0.60" PERL_AUTOINSTALL_PREFER_CPAN="1" PERL_MM_PREFER_CPAN="1" PERL_MM_USE_DEFAULT="1" @INC: /home/ilmari/perl5/perlbrew/perls/perl-5.17.10/lib/site_perl/5.17.10/x86_64-linux /home/ilmari/perl5/perlbrew/perls/perl-5.17.10/lib/site_perl/5.17.10 /home/ilmari/perl5/perlbrew/perls/perl-5.17.10/lib/5.17.10/x86_64-linux /home/ilmari/perl5/perlbrew/perls/perl-5.17.10/lib/5.17.10 . -- - Twitter seems more influential [than blogs] in the 'gets reported in the mainstream press' sense at least. - Matt McLeod - That'd be because the content of a tweet is easier to condense down to a mainstream media article. - Calle Dybedahl
Subject: Re: [rt.cpan.org #84178] AutoReply: Configure probes fail to link on perl 5.17.x
Date: Mon, 25 Mar 2013 15:13:53 +0100
To: bug-Time-HiRes@rt.cpan.org
From: ilmari@ilmari.org (Dagfinn Ilmari Mannsåker)
"Bugs in Time-HiRes via RT" <bug-Time-HiRes@rt.cpan.org> writes:
Show quoted text
> cc -o tmp28721 -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/home/ilmari/perl5/perlbrew/perls/perl-5.17.10/lib/5.17.10/x86_64-linux/CORE tmp28721.c -lrt > /tmp/ccH7Tt2Z.o: In function `S_croak_memory_wrap': > tmp28721.c:(.text+0x5): undefined reference to `PL_memory_wrap' > tmp28721.c:(.text+0x14): undefined reference to `Perl_croak' > collect2: error: ld returned 1 exit status
This turns out to be perl's fault for making perl.h include inline.h, which has inline functions referring to libperl functions: <https://rt.perl.org/rt3/Public/Bug/Display.html?id=116989> -- "I use RMS as a guide in the same way that a boat captain would use a lighthouse. It's good to know where it is, but you generally don't want to find yourself in the same spot." - Tollef Fog Heen
Perl core has a patch in commit c7627e6d.
Fixed in Time-HiRes-1.9726, now on CPAN.


This service runs on Request Tracker, is sponsored by The Perl Foundation, and maintained by Best Practical Solutions.

Please report any issues with rt.cpan.org to rt-cpan-admin@bestpractical.com.