kkenny@lava.nrtc.northrop.com (Kevin B. Kenny KE9TV) (11/17/90)
When I try to build NIHCL under ATT cfront 2.0 on a SpacrStation
running SunOS 4.1, there are a number of problems.
(1) Many of the 'make' options don't get passed into subordinate
Makefiles. This was easy to fix by editing the various Makefiles,
and I enclose context diffs.
(2) When I try to make the multiple-inheritance version (`make mi'),
the compilation fails with the following:
"ArrayOb.c", line 72: error: ambiguous Object::nil and Object::nil (one not in v
irtual base)
"ArrayOb.c", line 129: error: ambiguous Object::nil and Object::nil (one not in
virtual base)
"ArrayOb.c", line 140: error: ambiguous Object::nil and Object::nil (one not in
virtual base)
"ArrayOb.c", line 177: error: two initializers for Collection
"ArrayOb.c", line 177: error: two initializers for Object
"ArrayOb.c", line 218: error: two initializers for Collection
"ArrayOb.c", line 218: error: two initializers for Object
Anyone else seen this problem before? Any suggestions what to do
about it?
Thanks,
Kevin Kenny KE9TV ke9tv@nrtc.northrop.com
Context diffs for Makefiles:
*** Makefile.orig Tue May 22 19:58:50 1990
--- Makefile Fri Nov 16 16:14:57 1990
***************
*** 85,91 ****
VECTEST = vectest
EX = ex
SUBDIRS = ${ERRFAC} ${CLASSES} ${TEST} ${VECTOR} ${VECTEST} ${EX}
! COMMONFLAGS = CC=${CC} CCDEBUG=${CCDEBUG} CCFLAGS="${CCFLAGS}" I=$I SYS=${SYS} NESTED_TYPES=${NESTED_TYPES} BUGDEFS="${BUGDEFS}" DEBUGDEFS="${DEBUGDEFS}"
all: nihclclasses nihcltest vectorclasses vectortest
--- 87,96 ----
VECTEST = vectest
EX = ex
SUBDIRS = ${ERRFAC} ${CLASSES} ${TEST} ${VECTOR} ${VECTEST} ${EX}
! COMMONFLAGS = CC=${CC} CCDEBUG=${CCDEBUG} CCFLAGS="${CCFLAGS}" I=$I SYS=${SYS} NESTED_TYPES=${NESTED_TYPES} BUGDEFS="${BUGDEFS}" DEBUGDEFS="${DEBUGDEFS}" \
! LNFLAGS=${LNFLAGS} MAIN="${MAIN}" LIB_ID=${LIB_ID} \
! NIHCLLIBDIR=${NIHCLLIBDIR} NIHCLINCDIR=${NIHCLINCDIR} CLIBDIR=${CLIBDIR} \
! ERRGENDIR=${ERRGENDIR} ERRTABDIR=${ERRTABDIR} ERRINCDIR=${ERRINCDIR}
all: nihclclasses nihcltest vectorclasses vectortest
***************
*** 94,106 ****
errorfacility:
cd ${ERRFAC}; \
${MAKE} -f MAKEFILE ${MFLAGS} ${COMMONFLAGS}; \
! ${MAKE} -f MAKEFILE ${MFLAGS} install ${COMMONFLAGS} \
! ERRGENDIR=${ERRGENDIR} ERRTABDIR=${ERRTABDIR} ERRINCDIR=${ERRINCDIR} \
! CLIBDIR=${CLIBDIR} LIB_ID=${LIB_ID}
nihclclasses:
cd ${CLASSES}; ${MAKE} -f MAKEFILE ${MFLAGS} \
! ${COMMONFLAGS} MAIN=${MAIN} LNFLAGS=${LNFLAGS}
nihcltest:
cd ${TEST}; ${MAKE} -f MAKEFILE ${MFLAGS} \
--- 99,109 ----
errorfacility:
cd ${ERRFAC}; \
${MAKE} -f MAKEFILE ${MFLAGS} ${COMMONFLAGS}; \
! ${MAKE} -f MAKEFILE ${MFLAGS} install ${COMMONFLAGS}
nihclclasses:
cd ${CLASSES}; ${MAKE} -f MAKEFILE ${MFLAGS} \
! ${COMMONFLAGS}
nihcltest:
cd ${TEST}; ${MAKE} -f MAKEFILE ${MFLAGS} \
***************
*** 115,121 ****
nihclmiclasses:
cd ${CLASSES}; ${MAKE} -f MAKEFILE ${MFLAGS} \
! ${COMMONFLAGS} MAIN=${MAIN} LNFLAGS=${LNFLAGS} \
MI=-DMI NIHCLLIB=libnihclmi.a
nihclmitest:
--- 118,124 ----
nihclmiclasses:
cd ${CLASSES}; ${MAKE} -f MAKEFILE ${MFLAGS} \
! ${COMMONFLAGS} \
MI=-DMI NIHCLLIB=libnihclmi.a
nihclmitest:
***************
*** 139,146 ****
install:
for i in ${CLASSES} ${VECTOR}; do \
(echo $$i; cd $$i; ${MAKE} -f MAKEFILE ${MFLAGS} install \
! NIHCLLIBDIR=${NIHCLLIBDIR} NIHCLINCDIR=${NIHCLINCDIR} \
! ); done
examples:
cd ${EX}; ${MAKE} -f MAKEFILE ${MFLAGS} ${COMMONFLAGS}
--- 142,149 ----
install:
for i in ${CLASSES} ${VECTOR}; do \
(echo $$i; cd $$i; ${MAKE} -f MAKEFILE ${MFLAGS} install \
! ${COMMONFLAGS} \
! ); done
examples:
cd ${EX}; ${MAKE} -f MAKEFILE ${MFLAGS} ${COMMONFLAGS}
*** lib/MAKEFILE.orig Sun May 20 18:03:19 1990
--- lib/MAKEFILE Thu Nov 15 16:50:33 1990
***************
*** 74,81 ****
all: always nihclerrsx.h regex.o ${NIHCLLIB}
! always:
! ${MAKE} generic _main.c
nihclerrsx.h: nihclerrs.err
-if test -f /usr/bin/errcom ; then errcom nihclerrs.err ; else ${ERRGENDIR}/errgen -R${ERRTABDIR} nihclerrs.err; fi
--- 74,80 ----
all: always nihclerrsx.h regex.o ${NIHCLLIB}
! always: generic _main.c
nihclerrsx.h: nihclerrs.err
-if test -f /usr/bin/errcom ; then errcom nihclerrs.err ; else ${ERRGENDIR}/errgen -R${ERRTABDIR} nihclerrs.err; fikgorlen@sapporo.dcrt.nih.gov (Keith Gorlen) (11/19/90)
In article <13066@gremlin.nrtc.northrop.com> kkenny@lava.nrtc.northrop.com (Kevin B. Kenny KE9TV) writes:
->
->When I try to build NIHCL under ATT cfront 2.0 on a SpacrStation
->running SunOS 4.1, there are a number of problems.
->
->(2) When I try to make the multiple-inheritance version (`make mi'),
-> the compilation fails with the following:
->
->"ArrayOb.c", line 72: error: ambiguous Object::nil and Object::nil (one not in v
->irtual base)
->"ArrayOb.c", line 129: error: ambiguous Object::nil and Object::nil (one not in
->virtual base)
->"ArrayOb.c", line 140: error: ambiguous Object::nil and Object::nil (one not in
->virtual base)
->"ArrayOb.c", line 177: error: two initializers for Collection
->"ArrayOb.c", line 177: error: two initializers for Object
->"ArrayOb.c", line 218: error: two initializers for Collection
->"ArrayOb.c", line 218: error: two initializers for Object
->
->Anyone else seen this problem before? Any suggestions what to do
->about it?
->
->Thanks,
->
->Kevin Kenny KE9TV ke9tv@nrtc.northrop.com
Quite a few people have reported this problem to me. It is a C++
compiler bug that I reported to AT&T during the R2.0 beta test period
around May, 1989. *Some* distributions of Sun C++ R2.0 still seem to
have the bug, although the copy I use does not. I suggest you
complain to Sun.
--
Keith Gorlen phone: (301) 496-1111
Building 12A, Room 2033 uucp: uunet!kgorlen%alw.nih.gov
National Institutes of Health Internet: kgorlen@alw.nih.gov
Bethesda, MD 20892