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/))
Thread Previous
|
Thread Next
From:
Tony Cook
Date:
September 5, 2012 01:07
Subject:
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:
20120905080703.GA27723@mars.tony.develop-help.com
On Tue, Sep 04, 2012 at 10:02:45AM -0400, Andy Dougherty wrote:
> On Tue, 4 Sep 2012, Nicholas Clark wrote:
>
> > On Sun, Sep 02, 2012 at 10:04:03AM +1000, Tony Cook wrote:
> > > On Sun, Sep 02, 2012 at 09:28:04AM +1000, Tony Cook wrote:
> > > > neptune:perl tony$ grep alignbytes config.sh
> > > > alignbytes='8'
> > >
> > > Even if I set -Dalignbytes=16, it's ignored, because of:
> > >
> > > #if defined(USE_CROSS_COMPILE) || defined(MULTIARCH)
> > > # define MEM_ALIGNBYTES 8
> > > #else
> > > #define MEM_ALIGNBYTES 16
> > > #endif
> > >
> > > This appears to have been this way since the dawn of (metaconfig)
> > > time.
>
> Just verifying -- If you change that first 8 to a 16, does it work?
I tested removing the first branch of the #if combined with
-Dalignbytes=16, which worked.
> > So we should (at least) file this as a bug in RT, as it *is* a bug in our
> > code, we don't want it to get lost, and we don't have a good idea how to
> > fix it correctly?
>
> Probably. I think I see how I want to try to fix this, but I'm not
> certain I'll finish it today.
>
> My first thought is that something like this is probably what's needed.
> I haven't tried it out yet, nor gone back through the metaconfig units to
> see what I've forgotten, but this might be worth taking for a spin:
>
> diff --git a/Configure b/Configure
> index a1ba981..7fa1804 100755
> --- a/Configure
> +++ b/Configure
> @@ -19022,11 +19022,10 @@ Revision='$Revision'
>
> : check for alignment requirements
> echo " "
> -case "$usecrosscompile$multiarch" in
> +case "$usecrosscompile" in
> *$define*)
> $cat <<EOM
> -You seem to be either cross-compiling or doing a multiarchitecture build,
> -skipping the memory alignment check.
> +You seem to be cross-compiling. Skipping the memory alignment check.
>
> EOM
> case "$alignbytes" in
> @@ -19064,6 +19063,17 @@ EOCP
> dflt='8'
> echo "(I can't seem to compile the test program...)"
> fi
> + case "$multiarch" in
> + *$define*)
> + : The usual safe value is 8, but Darwin with -Duselongdouble
> + : needs 16. Hence, we will take 8 as a minimum, but allow
> + : Configure to pick a larger value if needed.
> + if $test "$dflt" -lt 8; then
> + dflt='8'
> + echo "Setting alignment to 8 for multiarch support.">&4
> + fi
> + ;;
> + esac
> ;;
> *) dflt="$alignbytes"
> ;;
> diff --git a/config_h.SH b/config_h.SH
> index 988273f..ff8436c 100755
> --- a/config_h.SH
> +++ b/config_h.SH
> @@ -951,11 +951,7 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
> * double, or a long double when applicable. Usual values are 2,
> * 4 and 8. The default is eight, for safety.
> */
> -#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH)
> -# define MEM_ALIGNBYTES 8
> -#else
> #define MEM_ALIGNBYTES $alignbytes
> -#endif
>
> /* ARCHLIB:
> * This variable, if defined, holds the name of the directory in
This worked, passing all tests except porting/regen.t (since the
canned config files aren't updated.)
neptune:perl tony$ ./Configure -des -Dusedevel -DDEBUGGING -Duseithreads -Dusemorebits && make -j2 && TEST_JOBS=2 make test_harness
...
../lib/warnings.t ................................................. ok
Test Summary Report
-------------------
porting/regen.t (Wstat: 0 Tests: 31 Failed: 1)
Failed test: 6
../cpan/CGI/t/tmpdir.t (Wstat: 0 Tests: 9 Failed: 0)
TODO passed: 3-9
Files=2336, Tests=558690, 978 wallclock secs (90.80 usr 11.85 sys + 762.70 cusr 79.31 csys = 944.66 CPU)
Result: FAIL
make: *** [test_harness] Error 1
neptune:perl tony$ grep -i ALIGNBYTES config.sh config.h
config.sh:alignbytes='16'
config.h:/* MEM_ALIGNBYTES:
config.h:#define MEM_ALIGNBYTES 16
Tony
Thread Previous
|
Thread Next