develooper Front page | perl.perl5.porters | Postings from July 2012

[perl #113980] [PATCH] pp_syscall: "I32 retval" truncates the returned value

Thread Previous | Thread Next
From:
Father Chrysostomos via RT
Date:
July 26, 2012 10:00
Subject:
[perl #113980] [PATCH] pp_syscall: "I32 retval" truncates the returned value
Message ID:
rt-3.6.HEAD-11172-1343321988-1589.113980-15-0@perl.org
On Thu Jul 26 09:19:42 2012, nicholas wrote:
> On Wed, Jul 25, 2012 at 11:15:01PM -0700, Father Chrysostomos via RT
> wrote:
> > On Wed Jul 11 03:57:53 2012, oleg@redhat.com wrote:
> 
> > > The test-case assumes 64-bit linux and perl should be compiled
> > > as 64-bit application too. Otherwise syscall(25) means stime()
> > > and should be skipped.
> >
> > This line accounts for that, does it not?
> >
> >     my $vdso_addr = find_vdso || die 'not 64-bit linux?';
> >
> > Please try out the attached patch, based on your script.  If it
> works
> > for you, I'll apply it.
> >
> > I don't have access to a 32-bit linux system, so I am unable to test
> the
> > skip.  Are you?
> 
> I get this failure on an x86 system:
> 
> $ ./perl -I../lib op/syscall-113980.t
> 1..1
> not ok 1 - syscall retval is not truncated
> # Failed test 1 - syscall retval is not truncated at op/syscall-
> 113980.t line 26
> #      got "-1"
> # expected "3077869568"
> 
> for information:
> 
> $ cat /proc/self/maps
> 08048000-08052000 r-xp 00000000 ca:01 131074     /bin/cat
> 08052000-08053000 rw-p 0000a000 ca:01 131074     /bin/cat
> 08de5000-08e06000 rw-p 00000000 00:00 0          [heap]
> b75c4000-b75c5000 rw-p 00000000 00:00 0
> b75c5000-b7705000 r-xp 00000000 ca:01 1647095    /lib/i686/cmov/libc-
> 2.11.3.so
> b7705000-b7706000 ---p 00140000 ca:01 1647095    /lib/i686/cmov/libc-
> 2.11.3.so
> b7706000-b7708000 r--p 00140000 ca:01 1647095    /lib/i686/cmov/libc-
> 2.11.3.so
> b7708000-b7709000 rw-p 00142000 ca:01 1647095    /lib/i686/cmov/libc-
> 2.11.3.so
> b7709000-b770c000 rw-p 00000000 00:00 0
> b7718000-b771c000 rw-p 00000000 00:00 0
> b771c000-b771d000 r-xp 00000000 00:00 0          [vdso]
> b771d000-b7738000 r-xp 00000000 ca:01 1630731    /lib/ld-2.11.3.so
> b7738000-b7739000 r--p 0001b000 ca:01 1630731    /lib/ld-2.11.3.so
> b7739000-b773a000 rw-p 0001c000 ca:01 1630731    /lib/ld-2.11.3.so
> bfbda000-bfbef000 rw-p 00000000 00:00 0          [stack]
> 
> The sparc linux build is still ongoing...
> (I think this is a 32 build on a sparc64 system. The machine is slow,
> and I'm
> not going to interrupt it to find out out for sure)
> 
> I've not yet tried coaxing a build with -m32 on x86_64

Thank you.  That means the skip is not being triggered.  Do you know how
to test that this is a 64-bit linux system?  Or is this bug something we
just can’t reliably test?

Obviously calling stime is no good, even if it only works under root. 
Running tests under root should not set the system time. :-)

-- 

Father Chrysostomos


---
via perlbug:  queue: perl5 status: resolved
https://rt.perl.org:443/rt3/Ticket/Display.html?id=113980

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About