Subject: New math.h woes
To: None <jtc@sun-lamp.cs.berkeley.edu>
From: None <Mark_Weaver@brown.edu>
List: current-users
Date: 02/12/1994 16:31:36
The new math.h is causing some problems.  There are big problems with
libg++.  Here is a section of my make transcript, which is pretty much
a superset of all the other compile failures.  A *LOT* of files in
libg++ have similiar problems.

g++ -fpic -DPIC -O -I/usr/src/gnu/lib/libg++/libg++ -nostdinc++ -I/usr/src/gnu/lib/libg++/libg++/../g++-include  -I/usr/src/gnu/lib/libg++/libg++/../iostream -c /usr/src/gnu/lib/libg++/libg++/Complex.cc -o Complex.so
In file included from /usr/src/gnu/lib/libg++/libg++/builtin.h:34, from /usr/src
/gnu/lib/libg++/libg++/Complex.cc:23:
/usr/include/math.h:48: redeclaration of `enum fdversion'
/usr/include/math.h:48: redefinition of `fdlibm_ieee'
/usr/include/math.h:48: `fdlibm_ieee' previously defined here
/usr/include/math.h:48: redefinition of `fdlibm_svid'
/usr/include/math.h:48: `fdlibm_svid' previously defined here
/usr/include/math.h:48: redefinition of `fdlibm_xopen'
/usr/include/math.h:48: `fdlibm_xopen' previously defined here
/usr/include/math.h:48: redefinition of `fdlibm_posix'
/usr/include/math.h:48: `fdlibm_posix' previously defined here
/usr/include/math.h:67: redefinition of `struct exception'
/usr/src/gnu/lib/libg++/libg++/Complex.cc: In function `class Complex exp (const class Complex&)':
/usr/src/gnu/lib/libg++/libg++/Complex.cc:98: conflicting types for `class Complex exp (const class Complex&)'
/usr/include/math.h:112: previous declaration of `double  exp (double)'
/usr/src/gnu/lib/libg++/libg++/Complex.cc: In function `class Complex cosh (const class Complex&)':
/usr/src/gnu/lib/libg++/libg++/Complex.cc:105: conflicting types for `class Complex cosh (const class Complex&)'
/usr/include/math.h:108: previous declaration of `double  cosh (double)'
/usr/src/gnu/lib/libg++/libg++/Complex.cc: In function `class Complex sinh (const class Complex&)':
/usr/src/gnu/lib/libg++/libg++/Complex.cc:111: conflicting types for `class Complex sinh (const class Complex&)'
/usr/include/math.h:109: previous declaration of `double  sinh (double)'
/usr/src/gnu/lib/libg++/libg++/Complex.cc: In function `class Complex cos (const class Complex&)':
/usr/src/gnu/lib/libg++/libg++/Complex.cc:117: conflicting types for `class Complex cos (const class Complex&)'
/usr/include/math.h:104: previous declaration of `double  cos (double)'
/usr/src/gnu/lib/libg++/libg++/Complex.cc: In function `class Complex sin (const class Complex&)':
/usr/src/gnu/lib/libg++/libg++/Complex.cc:123: conflicting types for `class Complex sin (const class Complex&)'
/usr/include/math.h:105: previous declaration of `double  sin (double)'
/usr/src/gnu/lib/libg++/libg++/Complex.cc: In function `class Complex log (const class Complex&)':
/usr/src/gnu/lib/libg++/libg++/Complex.cc:129: conflicting types for `class Complex log (const class Complex&)'
/usr/include/math.h:115: previous declaration of `double  log (double)'
/usr/src/gnu/lib/libg++/libg++/Complex.cc: In function `class Complex pow (const class Complex&, double)':
/usr/src/gnu/lib/libg++/libg++/Complex.cc:153: conflicting types for `class Complex pow (const class Complex&, double)'
/usr/include/math.h:119: previous declaration of `double  pow (double, double)'
/usr/src/gnu/lib/libg++/libg++/Complex.cc: In function `class Complex sqrt (const class Complex&)':
/usr/src/gnu/lib/libg++/libg++/Complex.cc:164: conflicting types for `class Complex sqrt (const class Complex&)'
/usr/include/math.h:120: previous declaration of `double  sqrt (double)'
*** Error code 1 (continuing)


There is also a small problem linking bin/ps:

cc  -static -o ps devname.o keyword.o nlist.o print.o ps.o -lm -lkvm
s_isnan.o: Definition of symbol _isnan (multiply defined)
isinf.o: Definition of symbol _isnan (multiply defined)
multiply defined: _isnan, type 0x1
multiply defined: _isnan, type 0x1


The above problems occured from a completely clean make.  I also
installed share/mk and include, compiled and installed ld, as, and
gcc, then compiled and installed all libraries (except libg++, since
it failed) before doing anything else.

	Mark
--------------------------------------------------------------------
Email: Mark_Weaver@brown.edu           | Brown University
PGP Key: finger mhw@cs.brown.edu       | Dept of Computer Science

------------------------------------------------------------------------------