develooper Front page | perl.perl5.porters | Postings from May 2013

Re: [perl #118055] miniperl fails with SIGBUS on sparc (usethreads+use64bitint)

Thread Previous | Thread Next
Craig A. Berry
May 27, 2013 22:13
Re: [perl #118055] miniperl fails with SIGBUS on sparc (usethreads+use64bitint)
Message ID:
On Mon, May 27, 2013 at 9:08 AM, Nicholas Clark <> wrote:

> On Sat, May 25, 2013 at 10:41:50AM -0500, Craig A. Berry wrote:
> > On Sat, May 25, 2013 at 10:04 AM, Nicholas Clark <> wrote:
> >
> > >
> > >
> > > #if defined(USE_ITHREADS) && IVSIZE > U32SIZE && IVSIZE > PTRSIZE
> > >
> > >
> > FWIW, this would be true on VMS Alpha or Itanium configured with
> > -Duse64bitint -Dusethreads.  Pointers are 32-bit by default.  64-bit
> > pointers can be requested at compile time, but as far as I know, no one's
> > ever added support to Perl for that.  Alignment faults are not fatal, but
> > badly degrade performance, especially on Itanium where more of the fault
> > handling is done by the OS in software.
> Meaning that right now 5.18.0 built on VMS Alpha or Itanium with
> -Duse64bitint will have potentially misaligned pmops, and hence slowdown as
> the fixup code is being hit?

Sorry, I was responding to that one line of code and not the context of the
thread as a whole.  32-bit pointers in a struct will get aligned on 32-bit
boundaries unless some other alignment is requested.  32-bit alignment for
a 32-bit item is considered natural alignment and so does not incur an
alignment fault to access it.

Just out of paranoia I did a build and run of the test suite for the
following two commits with -Dusethreads -D64bitint:

blead 2013-05-27.15:45:01 24ee35539e5d73b5154f5b656396a34acc420d51

smoke-me/nicholas/rt-118055-1 2013-05-26.06:50:17
f61a27cade956988ec6c5ff53b8aff3492ca5839 v5.19.0-238-gf61a27c

and the build and test times on an otherwise-idle Itanium system were

Thread Previous | Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About