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


Am Donnerstag, den 06.10.2005, 08:08 -0700 schrieb Dan Kegel:
> 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?

In normal opperation, the CPU-Load would be 100% and nothing is going on.
Debugget with GDB, there is a segmentationfault in memset().

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

The original tipp abaut this is from Wolfgan Denk (http://www.denx.de)
and the comment is from him. I think is's right.

> 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.

I've testet glibc 2.3.3 but searching on the internet abaut this, i
found messages abaut this back to 1999.

> 4) did you intend to change testhello.sh with
> your patch, or was that an accident?

The crosstool failed in this step:

hd@el-gast:~$ powerpc-823-linux-gnu-gcc test.c 
test.c: In function `main':
test.c:4: error: `PATH_MAX' undeclared (first use in this function)
test.c:4: error: (Each undeclared identifier is reported only once
test.c:4: error: for each function it appears in.)

I dont now why PATH_MAX is undeclared, simply delete it was the easyest
way ;)

> - Dan
> 
> 
> > diff -rNu crosstool-0.38/crosstool.sh crosstool-0.38-orig/crosstool.sh
> > --- crosstool-0.38/crosstool.sh	2005-07-21 17:58:19.000000000 +0000
> > +++ crosstool-0.38-orig/crosstool.sh	2005-10-05 11:39:56.000000000 +0000
> > @@ -502,6 +502,12 @@
> >      # Set BUILD_CC, or you won't be able to build datafiles
> >      # Set --build, else glibc-2.3.2 will think you're not cross-compiling, and try to run the test programs
> >  
> > +    # Remove broken memset.S for 8xx and 403 (they have cachesize=4)
> > +    # This file assumes an 8 word wide cache apparently!
> > +    if test ${TARGET} = powerpc-823-linux-gnu; then
> > +	rm ${GLIBC_DIR}/sysdeps/powerpc/powerpc32/memset.S
> > +    fi
> > +    
> >      BUILD_CC=gcc CFLAGS="$TARGET_CFLAGS $EXTRA_TARGET_CFLAGS" CC="${TARGET}-gcc $GLIBC_EXTRA_CC_ARGS" \
> >      AR=${TARGET}-ar RANLIB=${TARGET}-ranlib \
> >          ${GLIBC_DIR}/configure --prefix=/usr \
> > diff -rNu crosstool-0.38/demo-ppc823.sh crosstool-0.38-orig/demo-ppc823.sh
> > --- crosstool-0.38/demo-ppc823.sh	1970-01-01 00:00:00.000000000 +0000
> > +++ crosstool-0.38-orig/demo-ppc823.sh	2005-10-05 11:45:56.000000000 +0000
> > @@ -0,0 +1,22 @@
> > +#!/bin/sh
> > +set -ex
> > +TARBALLS_DIR=$HOME/downloads
> > +RESULT_TOP=/opt/crosstool
> > +export TARBALLS_DIR RESULT_TOP
> > +GCC_LANGUAGES="c,c++"
> > +export GCC_LANGUAGES
> > +
> > +# Really, you should do the mkdir before running this,
> > +# and chown /opt/crosstool to yourself so you don't need to run as root.
> > +mkdir -p $RESULT_TOP
> > +
> > +# Build the toolchain.  Takes a couple hours and a couple gigabytes.
> > +#eval `cat powerpc-860.dat gcc-3.3.2-glibc-2.3.2.dat` sh all.sh --notest
> > +#eval `cat powerpc-860.dat gcc-3.3.3-glibc-2.3.2.dat` sh all.sh --notest
> > +#eval `cat powerpc-860.dat gcc-3.4.0-glibc-2.3.2.dat` sh all.sh --notest
> > + eval `cat powerpc-823.dat gcc-3.4.1-glibc-2.3.3.dat`  sh all.sh --notest 
> > +#eval `cat powerpc-860.dat gcc-3.4.1-glibc-20040827.dat` sh all.sh --notest
> > +
> > +echo Done.
> > diff -rNu crosstool-0.38/powerpc-823.dat crosstool-0.38-orig/powerpc-823.dat
> > --- crosstool-0.38/powerpc-823.dat	1970-01-01 00:00:00.000000000 +0000
> > +++ crosstool-0.38-orig/powerpc-823.dat	2005-10-05 11:33:13.000000000 +0000
> > @@ -0,0 +1,4 @@
> > +TARGET=powerpc-823-linux-gnu
> > +TARGET_CFLAGS="-O"
> > +GCC_EXTRA_CONFIG="--with-cpu=823 --enable-cxx-flags=-mcpu=823"
> > +GLIBC_EXTRA_CONFIG="--without-fp"
> > diff -rNu crosstool-0.38/testhello.sh crosstool-0.38-orig/testhello.sh
> > --- crosstool-0.38/testhello.sh	2005-07-12 18:06:57.000000000 +0000
> > +++ crosstool-0.38-orig/testhello.sh	2005-10-05 13:44:20.000000000 +0000
> > @@ -21,8 +21,7 @@
> >  cat > hello.c <<_eof_
> >  #include <stdio.h>
> >  #include <limits.h>
> > -static long x = LONG_MIN;
> > -int main() { printf("Hello, world!  LONG_MIN is %ld, PATH_MAX is %d\n", x, PATH_MAX); return 0; }
> > +int main() { printf("Hello, world!"); return 0; }
> >  _eof_
> >  
> >  $PREFIX/bin/$TARGET-gcc -static hello.c -o $TARGET-hello-static
> 
> 


------
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]