[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: mem-trace yet again



On Mon, 14 Sep 1998, John Heidemann wrote:

> On Mon, 14 Sep 1998 11:52:06 BST, Lloyd Wood wrote: 
> >I've just grabbed and built the most recent snapshot (13 September),
> >which is back to breaking badly on Sparc20s with Solaris 2.4:
> >
> >mem-trace.h: In method `void MemInfo::checkpoint()':
> >In file included from scheduler.cc:49:
> >mem-trace.h:67: warning: implicit declaration of function `int
> >getrusage(...)'
> >
> >petra.ee.surrey.ac.uk[9]> ./ns
> >ld.so.1: ./ns: fatal: relocation error: symbol not found: getrusage:
> >referenced in ./ns
> >Killed
> >
> >Did you have to back out of the (in my experience successful) fixes
> >for another platform? (John?) 
> 
> What did "configure" report?

Building the 13 September snapshot on Solaris 2.4, I'm seeing:

checking for getrusage... (cached) yes   <-- all lies, I tell you!
checking for sbrk... (cached) yes

> I presume that on Solaris 2.4 it would say "getrusage... no"
> and then HAVE_GETRUSAGE should not be in the compile lines.
> Is this not the case?

...and then -DHAVE_GETRUSAGE=1 -DHAVE_SBRK=1 turn up as you'd expect
as a result in the full compile lines, and the compile aborts with:

mem-trace.h: In method `void MemInfo::checkpoint()':
In file included from scheduler.cc:49:
mem-trace.h:66: aggregate `struct rusage ru' has incomplete type and
cannot be initialized
mem-trace.h:67: warning: implicit declaration of function `int
getrusage(...)'
mem-trace.h:67: `RUSAGE_SELF' undeclared (first use this function)
mem-trace.h:67: (Each undeclared identifier is reported only once
mem-trace.h:67: for each function it appears in.)
mem-trace.h:67: confused by earlier errors, bailing out
*** Error code 1
make: Fatal error: Command failed for target `scheduler.o'


This contrasts with snapshots of September 10th and 2nd, where on 2.4:
checking for getrusage... (cached) no    <- just as you'd expect
checking for sbrk... (cached) yes

with -DHAVE_SBRK=1  in compile lines (and no mention of getrusage)

Conclusion: between Sep 10th and 13th, some untoward change in
configure broke getrusage detection for Solaris. 


I should note that I can't complete the Sep 10th build on Solaris 2.4
anyway, as:

object.cc: In method `int NsObject::delay_bind_dispatch(const char *,
const char *)':
object.cc:80: no method `TclObject::delay_bind_dispatch'
object.cc:81: warning: control reaches end of non-void function
`NsObject::delay_bind_dispatch(const char *, const char *)'
*** Error code 1
make: Fatal error: Command failed for target `object.o'

[using a clean build of tclcl 1.0b6, so no idea what's causing that;
it's not a spurious tclcl.h]

...but binaries built on the Ultra with 2.5.1 compile without
major warnings, and appear to work (previous expanded addressing
gruntles apart).

hth,

L.

<http://www.ee.surrey.ac.uk/Personal/L.Wood/>PGP<[email protected]>