develooper Front page | perl.perl5.porters | Postings from April 2003

Re: AIX longdoubles

Thread Previous | Thread Next
From:
H.Merijn Brand
Date:
April 1, 2003 07:19
Subject:
Re: AIX longdoubles
Message ID:
20030401171819.D8E6.H.M.BRAND@hccnet.nl
On Tue 01 Apr 2003 14:49, "H.Merijn Brand" <h.m.brand@hccnet.nl> wrote:
> Would it be possible for AIX users to test the following patch please?
> 
> ( John, your e-mail was still out of order yesterday )

I have now submitted

==== //depot/perl/hints/aix.sh#87 - /pro/3gl/CPAN/perl/hints/aix.sh ====
211a212,229
> case "$use64bitall" in
>     $define|true|[yY]*) use64bitint="$define" ;;
>     esac
>
> case "$usemorebits" in
>     $define|true|[yY]*) use64bitint="$define"; uselongdouble="$define" ;;
>     esac
>
> case $cc_type in
>     vac|xlc)
>       case "$uselongdouble" in
>           $define|true|[yY]*)
>               ccflags="$ccflags -qlongdouble"
>               libswanted="c128 $libswanted"
>               ;;
>           esac
>     esac
>

to the p4 repository.

--8<---
--- hints/aix.sh  2003-01-28 22:54:16.000000000 +0100
+++ hints/aix.sh  2003-04-01 15:28:03.000000000 +0100
@@ -209,6 +209,24 @@
 # the required -bE:$installarchlib/CORE/perl.exp is added by
 # libperl.U (Configure) later.

+case "$use64bitall" in
+    $define|true|[yY]*) use64bitint="$define" ;;
+    esac
+
+case "$usemorebits" in
+    $define|true|[yY]*) use64bitint="$define"; uselongdouble="$define" ;;
+    esac
+
+case $cc_type in
+    vac|xlc)
+       case "$uselongdouble" in
+           $define|true|[yY]*)
+               ccflags="$ccflags -qlongdouble"
+               libswanted="c128 $libswanted"
+               ;;
+           esac
+    esac
+
 case "$cc" in
 *gcc*) ;;
 cc*|xlc*) # cc should've been set by line 116 or so if empty.
End of patch
-->8---


> --- hints/aix.sh      2003-01-28 22:54:16.000000000 +0100
> +++ hints/aix.sh.new  2003-04-01 14:36:23.000000000 +0200
> @@ -209,6 +209,24 @@
>  # the required -bE:$installarchlib/CORE/perl.exp is added by
>  # libperl.U (Configure) later.
> 
> +case "$use64bitall" in
> +    $define|true|[yY]*) use64bitint="$define" ;;
> +    esac
> +
> +case "$usemorebits" in
> +    $define|true|[yY]*) use64bitint="$define"; uselongdouble="$define" ;;
> +    esac
> +
> +case $cc_type in
> +    vac|xlc)
> +       case "$uselongdouble" in
> +           $define|true|[yY]*)
> +               ccflags="$ccflags -qlongdouble"
> +               libswanted="$libswanted c128"
> +               ;;
> +           esac
> +    esac
> +
>  case "$cc" in
>  *gcc*) ;;
>  cc*|xlc*) # cc should've been set by line 116 or so if empty.

Before above patch ...

i2:/pro/3gl/CPAN/perl-current 109 > Configure -Dusedevel -Duselongdouble -des
:
:
i2:/pro/3gl/CPAN/perl-current 110 > grep doub config.sh
doublesize='8'
nvtype='double'
uselongdouble='undef'
config_args='-Dusedevel -Duselongdouble -des'
config_arg2='-Duselongdouble'
i2:/pro/3gl/CPAN/perl-current 111 >

After above patch ...

i2:/pro/3gl/CPAN/perl-current 124 > grep doub config.sh
ccflags='-DDEBUGGING -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=16384 -qnoansialias -qlongdouble -DUSE_NATIVE_DLOPEN -I/pro/local/include -q32 -D_LARGE_FILES -qlonglong'
cppflags='-DDEBUGGING -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=16384 -qnoansialias -qlongdouble -DUSE_NATIVE_DLOPEN -I/pro/local/include'
doublesize='8'
nvtype='double'
uselongdouble='undef'
config_args='-Dusedevel -Duselongdouble -des'
config_arg2='-Duselongdouble'
i2:/pro/3gl/CPAN/perl-current 125 > grep -- -lbind config.sh
libs='-lbind -lnsl -lgdbm -ldbm -ldb -ldl -lld -lm -lc -lcrypt -lbsd -lPW -lc128'
perllibs='-lbind -lnsl -ldl -lld -lm -lc -lcrypt -lbsd -lPW -lc128'
i2:/pro/3gl/CPAN/perl-current 126 >

Better, but not good enough, which is because of:

Checking to see how big your double precision numbers are...
Checking to see if you have long double...
Checking to see how big your long doubles are...
Checking how to print long doubles...
modfl() found.
I don't understand your modfl() at all.
Try to use long doubles if available? [y]

*** You requested the use of long doubles but you do not seem to have
*** the mathematic functions for long doubles.
*** (I could not find modfl)
*** I'm disabling the use of long doubles.


It looks like longdoubles have never worked in AIX till now. Thank you John
for kickin' our ass.
OK, Configure changed to show me the `unexpected' output:

Checking to see how big your double precision numbers are...
Checking to see if you have long double...
Checking to see how big your long doubles are...
Checking how to print long doubles...
modfl() found.
I don't understand your modfl() at all.
It returned ( 4294967303.150000 0.000000 0.150000)
Try to use long doubles if available? [y]

*** You requested the use of long doubles but you do not seem to have
*** the mathematic functions for long doubles.
*** (I could not find modfl)
*** I'm disabling the use of long doubles.



expected: " 4294967303.150000 0.150000 4294967303.000000"
got:      " 4294967303.150000 0.000000 0.150000"


Hmmm, c128 *must* be before c. Now submitted the good patch:


Ahhh, much better:

Checking to see if you have long double...
Checking to see how big your long doubles are...
Checking how to print long doubles...
modfl() found.
Your modfl() seems okay for large values.
Try to use long doubles if available? [y]
What is your architecture name [aix]
Long doubles selected.
...setting architecture name to aix-ld.


i2:/pro/3gl/CPAN/perl-current 131 > grep -e c128 -e longdoub config.sh
ccflags='-DDEBUGGING -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=16384 -qnoansialias -qlongdouble -DUSE_NATIVE_DLOPEN -I/pro/local/include -q32 -D_LARGE_FILES -qlonglong'
cppflags='-DDEBUGGING -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=16384 -qnoansialias -qlongdouble -DUSE_NATIVE_DLOPEN -I/pro/local/include'
libs='-lc128 -lbind -lnsl -lgdbm -ldbm -ldb -ldl -lld -lm -lc -lcrypt -lbsd -lPW'
libsfiles=' libc128.a libbind.a libnsl.a libgdbm.a libdbm.a libdb.a libdl.a libld.a libm.a libc.a libcrypt.a libbsd.a libPW.a'
libsfound=' /lib/libc128.a /lib/libbind.a /lib/libnsl.a /pro/local/lib/libgdbm.a /lib/libdbm.a /pro/local/lib/libdb.a /lib/libdl.a /lib/libld.a /lib/libm.a /lib/libc.a /lib/libcrypt.a /lib/libbsd.a /lib/libPW.a'
libswanted='c128 sfio socket bind inet nsl nm ndbm gdbm dbm db malloc dl dld ld sun m c cposix posix ndir dir crypt sec ucb bsd BSD PW x util rt posix4 c pthread m'
perllibs='-lc128 -lbind -lnsl -ldl -lld -lm -lc -lcrypt -lbsd -lPW'
uselongdouble='define'
config_args='-Dusedevel -Duselongdouble -des'
config_arg2='-Duselongdouble'
i2:/pro/3gl/CPAN/perl-current 132 > make test
:
:

All tests successful.
u=5.37  s=2.89  cu=616.79  cs=203.77  scripts=724  tests=71057


Whoopie!

[ I saw no specific file for longdouble testing. Which is to check? ]

i2:/pro/3gl/CPAN/perl-current 133 > find . -name \*.t | grep -e doubl -e long
./lib/Tie/File/t/03_longfetch.t
./lib/Tie/File/t/12_longfetch_rs.t
./t/win32/longpath.t
i2:/pro/3gl/CPAN/perl-current 134 >

-- 
H.Merijn Brand        Amsterdam Perl Mongers (http://amsterdam.pm.org/)
using perl-5.6.1, 5.8.0 & 633 on HP-UX 10.20 & 11.00, AIX 4.2, AIX 4.3,
  WinNT 4, Win2K pro & WinCE 2.11.  Smoking perl CORE: smokers@perl.org
http://archives.develooper.com/daily-build@perl.org/   perl-qa@perl.org
send smoke reports to: smokers-reports@perl.org, QA: http://qa.perl.org



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