This is the mail archive of the mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

powerpc 860 and glibc sysdeps/powerpc/power3/memset.S: CPU15 "dcbX" errata

I am working on a powerpc 860 toolchain, but I am having problems convincing glibc to not emit code that uses the dcbz instruction (CPU15 dcbX bug). The source of the problem is sysdeps/powerpc/power3/memset.S

in crosstool, we had something like this:

---	(.../vendor/crosstool/current)	(revision 6652)
+++	(.../trunk/tools/crosstool)	(revision 6652)
@@ -529,6 +529,11 @@
	export libc_cv_forced_unwind libc_cv_c_cleanup

+    case ${TARGET} in
+       # remove inline asm powerpc memset, which is broken for 8xx
+        powerpc-8* ) rm -f ${GLIBC_DIR}/sysdeps/powerpc/powerpc32/memset.S ;;
+    esac
    AR=${TARGET}-ar RANLIB=${TARGET}-ranlib \
        ${GLIBC_DIR}/configure --prefix=/usr \

but i dont know what the proper place is to put the equivalent in crosstool-ng

see also my crosstool patch here

and a discussion of the CPU15 errata here

It is worth noting that according to freescale, dcbi, dcibst, dcbf, and icbi are similarly affected, whch means sysdeps/powerpc/powerpc32/dl-machine.c might also cause problems, since it uses dcbst and icbi.

the glibc maintainers seem aware of the problem, but don't seem to think anybody uses glibc with the 860 series. wolfgang denk is also apparently doing his own workarounds for the toolchains he builds for eldk.

-- For unsubscribe information see

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]