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

Re: unhappy darwin -Dusemorebits (was Re: Smoke [5.17.4]v5.17.3-184-g699aa44 FAIL(F) darwin 12.1.0 (Intel Core 2 Duo/))

Tony Cook
September 5, 2012 18:31
Re: unhappy darwin -Dusemorebits (was Re: Smoke [5.17.4]v5.17.3-184-g699aa44 FAIL(F) darwin 12.1.0 (Intel Core 2 Duo/))
Message ID:
On Wed, Sep 05, 2012 at 08:09:26PM -0500, Reini Urban wrote:
> Sure. But this is merely a documentation issue for cross compilers.
> And instead of bashing darwin it should be noted that darwin and
> solaris is right,
> and linux/freebsd are wrong assuming nothing is done nowadays with SSE.

That default is intended to apply to cross compilation, and provides a
vaguely sane value for multiarch configurations (which my darwin
builds usually aren't anyway.)

As to Linux, if I run Configure with usemorebits:

tony@mars:.../git/perl$ ./Configure -des -Dusedevel -Dusemorebits
new one before you run Configure -- this will help you with most of
the policy defaults.

tony@mars:.../git/perl$ grep alignbytes
tony@mars:.../git/perl$ uname -a
Linux mars 2.6.32-5-amd64 #1 SMP Mon Jan 16 16:22:28 UTC 2012 x86_64 GNU/Linux

I get a sane value.

Note that clang only appears to be using the SSE copy on structures
that have 16-byte alignment.

> So 16 bytes is a better default than 8 on 64-bit machines. If your
> machine has SSE
> (and I bet it has) and you compile your perl with it it will be
> happily prefering 16.
> Summary: 8 is an unsafe default value. The wording is misleading.

Don't forget, with Andy's changes we ask the compiler what the
alignment should be.  If the compiler gets it wrong there's not much
we can do about it.

For cross compilation, at this point the targets are probably small
enough that they're not likely to require 16-byte alignment.

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