This is the mail archive of the crossgcc@sourceware.org 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]

Re: Crosstool for MPC823


On Thu, 6 Oct 2005, Dan Kegel wrote:

el_gast wrote:
 I've modified crosstool-0.38 to work with MPC823.
 Here is the patch. It's tested and working.

Thanks! Four questions:


1) What was the symptom with the bad memset.S?
How did you know it was bad?

2) Your comment says that memset.S is wrong for ppc403, too,
is that right?  Should we remove it there, too?

3) Which versions of glibc have you tested?
Does glibc in cvs have the same bug?
Perhaps you should submit a bug report against
glibc so we can get this fixed upstream!
I really prefer to fix this kind of problem without
cpu-specific source tree modifications in crosstool.sh.

Allow me to jump in.


Actually this is a classic; on ppc32, glibc uses cache operations to clear memory. Since those operations depend on the cache line size, a fix would
require glibc to be compiled depending on the cpu type. This applies to 8xx
and 403 which have a smaller cache line size than "the rest". A dynamic
check is not in the spirit of the optimization, I suppose.


So, classically, embedded toolchains just remove the infamous memset.S which makes the glibc build process fall back to the generic memset() implementation. I think it's the right thing to do.

Marius

--
Marius Groeger <mgroeger@sysgo.com>
SYSGO AG                      Embedded and Real-Time Software
Voice: +49 6136 9948 0                  FAX: +49 6136 9948 10
www.sysgo.com | www.elinos.com | www.osek.de | www.pikeos.com


------ Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/ Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com


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