Hi,

I've compiled 8.0 beta 1 on a R5900 V3.1 (a playstation 2) running
Linux (PS2 Linux 1) for portability testing.

Here is what make check gave:

Without --disable-spinlocks
compilation *appears* to be fine, but the backends core dumps
on the spinlock assembly in s_lock.c (signal 4 -- illegal
instruction) on first run.

With --disable-spinlocks
all is well except the two floating point tests float4 and float8
out of 96 tests fail. This is likely due to the R5900 not being
fully IEEE-compliant(?) (regression.diffs attached).

--

I'm wondering: would it be hard to fix the assembly spinlock code
for the R5900?
If that's not worth the trouble, would it be a good idea to have
configure disable spinlocks automagically on unsupported platforms?
Or is it to hard to autodetect this?

Bye, Chris.


PS: I've compiled using gcc 2.95.2 and with CFLAGS -O0 -g.





*** ./expected/float4.out	Fri Mar 12 01:25:40 2004
--- ./results/float4.out	Tue Aug 24 02:18:42 2004
***************
*** 33,67 ****
  ERROR:  invalid input syntax for type real: "123            5"
  -- special inputs
  SELECT 'NaN'::float4;
!  float4 
! --------
!     NaN
! (1 row)
! 
  SELECT 'nan'::float4;
!  float4 
! --------
!     NaN
! (1 row)
! 
  SELECT '   NAN  '::float4;
!  float4 
! --------
!     NaN
! (1 row)
! 
  SELECT 'infinity'::float4;
!   float4  
! ----------
!  Infinity
! (1 row)
! 
  SELECT '          -INFINiTY   '::float4;
!   float4   
! -----------
!  -Infinity
! (1 row)
! 
  -- bad special inputs
  SELECT 'N A N'::float4;
  ERROR:  invalid input syntax for type real: "N A N"
--- 33,47 ----
  ERROR:  invalid input syntax for type real: "123            5"
  -- special inputs
  SELECT 'NaN'::float4;
! ERROR:  type "real" value out of range: overflow
  SELECT 'nan'::float4;
! ERROR:  type "real" value out of range: overflow
  SELECT '   NAN  '::float4;
! ERROR:  type "real" value out of range: overflow
  SELECT 'infinity'::float4;
! ERROR:  invalid input syntax for type real: "infinity"
  SELECT '          -INFINiTY   '::float4;
! ERROR:  invalid input syntax for type real: "          -INFINiTY   "
  -- bad special inputs
  SELECT 'N A N'::float4;
  ERROR:  invalid input syntax for type real: "N A N"
***************
*** 70,88 ****
  SELECT ' INFINITY    x'::float4;
  ERROR:  invalid input syntax for type real: " INFINITY    x"
  SELECT 'Infinity'::float4 + 100.0;
! ERROR:  type "double precision" value out of range: overflow
  SELECT 'Infinity'::float4 / 'Infinity'::float4;
!  ?column? 
! ----------
!       NaN
! (1 row)
! 
  SELECT 'nan'::float4 / 'nan'::float4;
!  ?column? 
! ----------
!       NaN
! (1 row)
! 
  SELECT '' AS five, FLOAT4_TBL.*;
   five |     f1      
  ------+-------------
--- 50,60 ----
  SELECT ' INFINITY    x'::float4;
  ERROR:  invalid input syntax for type real: " INFINITY    x"
  SELECT 'Infinity'::float4 + 100.0;
! ERROR:  invalid input syntax for type real: "Infinity"
  SELECT 'Infinity'::float4 / 'Infinity'::float4;
! ERROR:  invalid input syntax for type real: "Infinity"
  SELECT 'nan'::float4 / 'nan'::float4;
! ERROR:  type "real" value out of range: overflow
  SELECT '' AS five, FLOAT4_TBL.*;
   five |     f1      
  ------+-------------

======================================================================

*** ./expected/float8.out	Fri Apr 23 22:32:20 2004
--- ./results/float8.out	Tue Aug 24 02:18:42 2004
***************
*** 33,67 ****
  ERROR:  invalid input syntax for type double precision: "123           5"
  -- special inputs
  SELECT 'NaN'::float8;
!  float8 
! --------
!     NaN
! (1 row)
! 
  SELECT 'nan'::float8;
!  float8 
! --------
!     NaN
! (1 row)
! 
  SELECT '   NAN  '::float8;
!  float8 
! --------
!     NaN
! (1 row)
! 
  SELECT 'infinity'::float8;
!   float8  
! ----------
!  Infinity
! (1 row)
! 
  SELECT '          -INFINiTY   '::float8;
!   float8   
! -----------
!  -Infinity
! (1 row)
! 
  -- bad special inputs
  SELECT 'N A N'::float8;
  ERROR:  invalid input syntax for type double precision: "N A N"
--- 33,47 ----
  ERROR:  invalid input syntax for type double precision: "123           5"
  -- special inputs
  SELECT 'NaN'::float8;
! ERROR:  type "double precision" value out of range: overflow
  SELECT 'nan'::float8;
! ERROR:  type "double precision" value out of range: overflow
  SELECT '   NAN  '::float8;
! ERROR:  type "double precision" value out of range: overflow
  SELECT 'infinity'::float8;
! ERROR:  invalid input syntax for type double precision: "infinity"
  SELECT '          -INFINiTY   '::float8;
! ERROR:  invalid input syntax for type double precision: "          -INFINiTY   "
  -- bad special inputs
  SELECT 'N A N'::float8;
  ERROR:  invalid input syntax for type double precision: "N A N"
***************
*** 70,88 ****
  SELECT ' INFINITY    x'::float8;
  ERROR:  invalid input syntax for type double precision: " INFINITY    x"
  SELECT 'Infinity'::float8 + 100.0;
! ERROR:  type "double precision" value out of range: overflow
  SELECT 'Infinity'::float8 / 'Infinity'::float8;
!  ?column? 
! ----------
!       NaN
! (1 row)
! 
  SELECT 'nan'::float8 / 'nan'::float8;
!  ?column? 
! ----------
!       NaN
! (1 row)
! 
  SELECT '' AS five, FLOAT8_TBL.*;
   five |          f1          
  ------+----------------------
--- 50,60 ----
  SELECT ' INFINITY    x'::float8;
  ERROR:  invalid input syntax for type double precision: " INFINITY    x"
  SELECT 'Infinity'::float8 + 100.0;
! ERROR:  invalid input syntax for type double precision: "Infinity"
  SELECT 'Infinity'::float8 / 'Infinity'::float8;
! ERROR:  invalid input syntax for type double precision: "Infinity"
  SELECT 'nan'::float8 / 'nan'::float8;
! ERROR:  type "double precision" value out of range: overflow
  SELECT '' AS five, FLOAT8_TBL.*;
   five |          f1          
  ------+----------------------

======================================================================

---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?

               http://archives.postgresql.org

Reply via email to