[gnu.g++.lib.bug] libg++ tests, tRandom fails on a Sony NWS-1830, also Sony diffs

jkp@SAUNA.HUT.FI (Jyrki Kuoppala) (08/23/89)

Environment: Sony NWS-1830 (m68030, BSD 4.3), NEWSOS 3.2, gcc 1.35.96
with three bugfixes from rms, g++.ytar.Z from yahi.stanford.edu as of
Aug 20, libg++ 1.35.1.

tRandom.c from the test directory fails with:

g++ -g -O -pipe -I../g++-include -I. -fstrength-reduce -fno-defer-pop -c  tRandom.cc
tRandom.cc: In function int main ():
tRandom.cc:82: type `LogNormal' is derived from private `Random'
tRandom.cc:85: type `Poisson' is derived from private `Random'

Also, here are the context diffs needed to use libg++ on a Sony news
machine.  I hope they can merged in the distribution:

(generic changes like the include/sys file bug omitted, except the
volatile abort thing which I don't remember seeing on the list.  Also,
you could probably use #if defined(sun) || defined(sony) for values.h;
the values were generated by hard-params.c from gcc but I had to
change them so I wouldn't get +Infinity and -Infinity into the
assembly file.  They were almost identical to those on the Sun, so I
copied MAX* from the sun values.)

diff -cr libg++.orig/g++-include/assert.h libg++/g++-include/assert.h
*** libg++.orig/g++-include/assert.h	Sun May  7 16:16:41 1989
--- libg++/g++-include/assert.h	Wed Aug 23 10:01:57 1989
***************
*** 31,37 ****
  #else
  
  extern "C" void __eprintf (char*, int, char*);		/* Defined in gnulib */
! extern "C" void   abort();
  
  #define assert(ex) \
          ((ex) ? 1 : \
--- 31,37 ----
  #else
  
  extern "C" void __eprintf (char*, int, char*);		/* Defined in gnulib */
! extern "C" void   volatile abort();
  
  #define assert(ex) \
          ((ex) ? 1 : \
diff -cr libg++.orig/g++-include/values.h libg++/g++-include/values.h
*** libg++.orig/g++-include/values.h	Sun May  7 18:11:06 1989
--- libg++/g++-include/values.h	Wed Aug 23 10:00:23 1989
***************
*** 59,64 ****
--- 59,78 ----
  #define DMAXEXP     ((1 << _DEXPLEN - 1) - 1 + _IEEE)
  #define FMAXEXP     ((1 << _FEXPLEN - 1) - 1 + _IEEE)
  
+ #elif defined(sony) 
+ #define MAXDOUBLE   1.79769313486231470e+308
+ #define MAXFLOAT    ((float)3.40282346638528860e+38)
+ #define MINDOUBLE   2.2250738585072010e-308
+ #define MINFLOAT    ((float)1.17549435e-38)
+ #define _IEEE       1
+ #define _DEXPLEN    11
+ #define _FEXPLEN    8
+ #define _HIDDENBIT  1
+ #define DMINEXP     (-(DMAXEXP + DSIGNIF - _HIDDENBIT - 3))
+ #define FMINEXP     (-(FMAXEXP + FSIGNIF - _HIDDENBIT - 3))
+ #define DMAXEXP     ((1 << _DEXPLEN - 1) - 1 + _IEEE)
+ #define FMAXEXP     ((1 << _FEXPLEN - 1) - 1 + _IEEE)
+ 
  #elif defined(sequent)
  extern double _maxdouble, _mindouble;
  extern float _maxfloat, _minfloat;
diff -cr libg++.orig/libconfig.h libg++/libconfig.h
*** libg++.orig/libconfig.h	Sun May 21 13:08:47 1989
--- libg++/libconfig.h	Wed Aug 23 08:47:18 1989
***************
*** 54,60 ****
     The following are correct for vax BSD4.3 and sun. Others not yet known
  */
  
! #if defined(vax)
  //#define HAVE_VPRINTF
  //#define  HAVE_SETVBUF  
  #define HAVE_SETLINEBUF
--- 54,60 ----
     The following are correct for vax BSD4.3 and sun. Others not yet known
  */
  
! #if defined(vax) || defined(sony)
  //#define HAVE_VPRINTF
  //#define  HAVE_SETVBUF  
  #define HAVE_SETLINEBUF