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: powerpc 860 and glibc sysdeps/powerpc/power3/memset.S: CPU15 "dcbX" errata


Hello Nye!
Hello All!

On Thursday 23 October 2008 21:24:29 Nye Liu wrote:
> Here is a patch to memset.S,

Ah! This sounds good! :-)

I had a look at your previous mails, but removing the failing file seemed
wrong in the first place. This meant the extracted sources could no longer
be used to build toolchains for orther (PPC) targets.

I was poking at a clean solution of saving/restoring this file, but I do
prefer the way you're handling this with this patch. :-)

> but what is the recommended way to make 
> this happen? Add "-DBROKEN_PPC_8xx_CPU15" to CT_LIBC_GLIBC_EXTRA_CFLAGS
> in my config? Or is there better way?

I'd say, in scripts/build/arch/powerpc.sh, check the target processor and
update CT_LIBC_GLIBC_EXTRA_CFLAGS accordingly, something /like/:

case "${CT_ARCH_CPU}" in
  8??)
    # http://pointer.to/this/thread.html
    CT_DoLog DEBUG "Activating support for memset on broken ppc-8xx"
    CT_LIBC_GLIBC_EXTRA_CFLAGS="${CT_LIBC_GLIBC_EXTRA_CFLAGS} -DBROKEN_PPC_8xx_CPU15"
    ;;
esac

This way, the user does not have to know he/she has to set this:
 - it is a /feature/ added by a crosstool-NG patch,
 - it is undocumented upstream AFAIK,
 - we can't afford to document it, it would become troublesome if such
   changes were to pile-up,
 - this is not directly understandable what this does (I did not quite
   grasped it myself, not knowing much about PPC).

Better yet: does the glibc build system has a variable in which we have the
CPU value? Then we wouldn't need to set any additional deine, and rely on
the glibc internals, such as:
#if (   ( defined CPU_801 ) \
     || ( defined CPU_821 ) \
     || ( defined CPU_823 ) \
     || ( defined CPU_860 ) )
blah
#endif

Maybe we can rely on gcc setting such a define?

Regards, and thank you for looking into this!
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +0/33 662376056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| --==< ^_^ >==-- `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
`------------------------------^-------^------------------^--------------------'


--
For unsubscribe information see http://sourceware.org/lists.html#faq


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