Dear Daney,Thank you very much.Under nptl directory, there are 6 places use rdhwr instruction. What'sdifference between rdhwr and move instructions?Could I use move or other r3000 instructions to replace rdhwr? And I didn't find ll/sc instructions in libc-2.5.90.so. maybe gccavoid them for R3000 chip. Best regards,Tony 2007/8/29, David Daney <ddaney@xxxxxxxxxx>:> guo guo wrote:> > Dear All,> >> > I'm trying to build tool chain with gcc4.2, binutils2.17 and glibc2.5> > for mips r3000 chip.> > During configure gcc I add ?mabi=32 ?march=r3000 ?mtune=r3000. and> > during building glibc, I add CFLAGS= -O2 ?mabi=32 ?march=r3000> > ?mtune=r3000,> > Then I dissembled the libc-2.5.90.so to check the instructions. I> > found it has two instructions rdhwr(0x7c03e83b) and sync(0x0000000f)> > that don't belongs to mips r3000.>> The rdhwr and sync are used by the NPTL pthread library and must be> emulated by the linux kernel. Probably you will see ll and sc in there> as well. If you use glibc2.3.x with Linux threads then the rdhwr will> not be generated.>> Probably if you did not use libpthread you would not need any of the> thread synchronization primitives that cause ll,sc, and sync to be> generated.>> But if you want libpthread and your CPU does not support the> instructions, you will have to emulate them.>>> David Daney>