Subject: Re: Shared library troubles
To: Alex Zepeda <garbanzo@hooked.net>
From: Andy Finnell <andyf@vei.net>
List: port-mac68k
Date: 07/07/1999 12:44:32
Alex Zepeda wrote:
> > > Do you have duplicate sets of headers installed?
> >
> > So its a class or a structure?  I was think along the lines of a
> > function...  I didn't think to check the headers, but I don't think so.
> > I'll check.
> 
> I'm pretty sure.  I can't think of any reason why a function's size would
> be checked (in fact, that's almost the whole point of shlibs)..  also,
> turn off any exotic options.

I've tracked down what the symbol is.  In the pthread's stdio.h header,
the symbol __sF (what ld.so is complaining about changing sizes) is an
extern array of FILE.  

__BEGIN_DECLS
extern FILE __sF[];
__END_DECLS

Right before this FILE is defined (redefined?). Later on in this file we
have some important #defines:

#define stdin	(&__sF[0])
#define stdout  (&__sF[1])
#define stderr  (&__sF[2])

With some testing I've found I only get this warning when I reference
stdin, stdout, or stderr directly.  Since I don't touch any of the file
stuff in any of my files, it maybe something in a file I didn't write. 
Could someone with access to mit-pthreads on another netbsd machine try
this test?  Simply dynamically link in the pthread library and try to
reference stdin, stdout, or stderr.  This would help me a lot.

Thanks,

	-andy