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

Re: Report 19316

Thread Previous | Thread Next
From:
H.Merijn Brand
Date:
April 24, 2003 08:44
Subject:
Re: Report 19316
Message ID:
20030424165013.FCA6.H.M.BRAND@hccnet.nl
On Thu 24 Apr 2003 16:39, "H.Merijn Brand" <h.m.brand@hccnet.nl> wrote:
> I'll have a look at the massive gcc failure on AIX


<sys/mman.h> found.
mmap() found.
and it returns (void *).
sqrtl() found.
modfl() found.
Configure: 24370 Memory fault: A memory image file is created as "core".
I don't understand your modfl() at all.
mprotect() found.



The core goes away when passing -mlong-double-128 to gcc
How far back does gcc support this? [ Sorry, I only have gcc-3.3 :) ]

I'm about to test the following, but that might be not backward compatible
# gcc -v --help | grep double

--- hints/aix.sh        2003-04-09 17:47:26.000000000 +0200
+++ hints/aix.sh.new    2003-04-24 17:25:50.000000000 +0200
@@ -235,14 +235,17 @@
     $define|true|[yY]*) use64bitint="$define"; uselongdouble="$define" ;;
     esac

-case $cc_type in
-    vac|xlc)
-       case "$uselongdouble" in
-           $define|true|[yY]*)
+case "$uselongdouble" in
+    $define|true|[yY]*)
+       case $cc_type in
+           vac|xlc)
                ccflags="$ccflags -qlongdouble"
                libswanted="c128 $libswanted"
                lddlflags=`echo "$lddlflags " | sed -e 's/ -lc / -lc128 -lc /'`
                ;;
+           gcc)
+               ccflags="$ccflags -mlong-double-128"
+               ;;
            esac
     esac



But, ehhh, ... 3.3 ain't happy with it

Checking whether your C compiler can cast large floats to int32.
try.c: In function `main':
try.c:33: error: unrecognizable insn:
(insn 63 62 37 0 300f6200 (set (reg/v:SI 9 r9 [119])
        (fix:SI (reg:DF 44 f12))) -1 (nil)
    (nil))
try.c:33: internal compiler error: in extract_insn, at recog.c:2175
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
Checking whether your C compiler can cast negative float to unsigned.
try.c: In function `main':
try.c:75: error: unrecognizable insn:
(insn 392 391 281 35 300f6f40 (set (reg:SI 3 r3 [197])
        (fix:SI (reg:DF 45 f13))) -1 (nil)
    (nil))
try.c:75: internal compiler error: in extract_insn, at recog.c:2175
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.



And the double test part:

i2:/pro/3gl/CPAN/perl-current/UU 115 > gcc -o try -O -maix32 -DDEBUGGING -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -mlong-double-128 -DUSE_NATIVE_DLOPEN -fno-strict-aliasing -I/pro/local/include -D_LARGE_FILES -L/pro/local/lib -Wl,-brtl -Wl,-b32 try.c -lbind -lnsl -lgdbm -ldbm -ldb -ldl -lld -lm -lc -lcrypt -lbsd -lPW
try.c: In function `main':
try.c:14: error: insn does not satisfy its constraints:
(insn 57 56 17 0 0 (set (reg/v:TF 9 r9 [121])
        (mem:TF (plus:SI (reg/f:SI 1 r1)
                (const_int 96 [0x60])) [0 S16 A8])) 308 {*movtf_internal} (nil)
    (nil))
try.c:14: internal compiler error: in reload_cse_simplify_operands, at reload1.c:8343
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
Exit 1
i2:/pro/3gl/CPAN/perl-current/UU 116 > cat try.c
#include <math.h>
#include <stdio.h>
/* Sigh. many current glibcs provide the function, but do not prototype it.  */
long double modfl (long double, long double *);
int main() {
    long double nv = 4294967303.15;
    long double v, w;
    v = modfl(nv, &w);
#ifdef __GLIBC__
    printf("glibc");
#endif
    printf(" %"" %"" %""\n", nv, v, w);
    return 0;
}
i2:/pro/3gl/CPAN/perl-current/UU 117 >

To be honoust, I'd complain too if I were the compiler :/
%"" ?

-- 
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