Ralf Baechle wrote:
> On Thu, Oct 19, 2000 at 03:31:54PM -0700, Jun Sun wrote:
> > I am running a simple pthread_create() test. The thread gets created,
> > but the creating thread gets BUS error after the function call. In
> > fact, it gets SIGUSR1 signal. Does anybody know what is wrong here?
> > It looks to me that creating thread is waiting for the created thread to
> > start up, but somehow did not install the signal handler correctly!?
> > I am running with the "stable" toolchain that I generated recently,
> > i.e., binutil 2.8.1, egcs 1.0.3a and glibc2.0.6.
> Which libc release exactly?
> I've uploaded another release glibc-2.0.6-7lm to oss:/pub/linux/mips/glibc/.
> In case you're running big endian, could you try that release?
> (Sorry, no source, will upload the srpm tomorrow.)
Since Ralf has not posted his patch for glibc yet, I looked into the
problem a little bit more.
It appears to be another toolchain related problem, instead of a glibc
In linuxthread/pthread.c:pthread_initialize_manager(), it accesses a
global variable __pthread_initial_thread_bos in pthread shared library.
Apparently the code finds out the address of the variable through some
table (why is that?). It looks like the offset for variable is off by
8. Another ld problem?
I am using the "old but stable" toolchains, as I stated in an earlier
I finally settled down with the old but deemed reliable versions :
a) binutils v2.8.1 + mips patch
b) egcs 1.0.3a + mips patch
c) glibc 2.0.6 + mips patch