[uClibc] ldso 0.9.21, libstdc++ crashes on PowerPC GCC 3.3.1

Joakim Tjernlund joakim.tjernlund at lumentis.se
Fri Oct 3 23:58:05 UTC 2003

> This has been a long standing problem, I was struggling with it on 0.9.16. By 
> bumbling around I found I could remove the problem by inserting a dereference 
> of reloc_addr before the DCBST, of course this is not the real solution, 
> Someone Who Knows What They Are Doing(TM) needs to have a good long look at 
> what's going on here.

dcbst(and dcbz, dcbi, dcbf, dcbt) are buggy on mpc8xx. They don't update
the DAR register on a Data TLB Miss/Error. By deferencing the data just before
the dcbst, you make the DTLB Miss/Error happen before the
dcbst is executed. That works around the problem but is not a stable
solution. You need a somewhat ugly patch to the linux kernel or don't use
these instructions at all.


More information about the uClibc mailing list