crosstool-0.28-rc7, host cygwin, target ARM

Michael Röhner mroehner@gmx.de
Sun May 9 19:04:00 GMT 2004


Thank you very much for your helpful information.
Now it looks like some more work, for me ;-)
But much easier as without crosstool.

I think, eh, had thought, that the toolchains are consistently build,
i.e. all with soft-float off, all with generic ARM instruction set.


 > (What do + and - mean?  + means worked, and - means didn't try?)

Sorry. "+" means worked, "-" means cannot try since toolchain compile error.


 > The float output error is probably fixed by 
crosstool-0.28-rc*/contrib/glibc-vfp.patch
 > Try copying that into patches/glibc-2.3.2 and see if that helps... but come 
to think
 > of it, maybe it won't, since you are running against 2.1.3.  Hrmph.

I think first I have to apply -mcpu, then apply the patch,
then linking -static,  then report the results.


 > There have been some good posts on 
http://lists.arm.linux.org.uk/pipermail/linux-arm/
 > lately, be sure to ask there too.

Uups. I'am searching this list for other reasons, maybe I have to
search it for compiler/lib problems, too.


 > crosstool-0.28-rc12 has only small improvements over rc7; ...

I tried some things with rc12, for example gcc 3.3.3 with libc 2.3.2
as with rc7, but there is a cygwin specific strangeness:

   getandpatch.sh: cannot open 
/usr/src/crosstools/crosstool-0.28-rc12/patches/glibc-2.3.2/glibc-2.2.5-crosstest.patch: 
permission denied
   + cat patch1776.log
   cat: patch1776.log: No such file or directory

Eh? - cygwin's tar doesn't create the symbolic link to
glibc-2.2.5-crosstest.patch as in rc7, hmmm.
0 Bytes with permissions ----------.
No such behaviour with Linux.

I copied from Linux via Samba. Now I have a working rc12 with cygwin
but without any links (file copy instead link copy).


 > The release candidates are announced to crossgcc@sources.redhat.com
 > when they're worth mentioning.

Ok.


 > Do you know if you want soft-float, by the way?

Yes, I know. I know that I do not need soft-float.
Linux kernel is compiled with "CONFIG_FPE_NWFPE=y".
This is not the best implementation regarding speed,
but I am using float's only for 2 cases:

1. One time initialising of int tables on startup.
2. Linking with a library which use float,
    but my application don't use these functions.


 > armv4, eh?  Did you see this post?
 > http://www.spinics.net/lists/arm/msg07291.html

No, I don't. Very interesting, these and the links within.

Since I don't use soft-float etc., I don't have in mind
mailings with this topic. Now I know that I have to
read these, too.


 > Yes, maybe you need to set a cpu option; you can set -mcpu=xxxx in 
TARGET_CFLAGS,
 > and --with-cpu=xxxx and  --enable-cxx-flags=-mcpu=xxxx in GCC_EXTRA_CONFIG,
 > like ppc405.dat does, maybe.

Some dozen (really!) config's and runs later ...

Trying rc12 with

   - gcc < 3.4.0:
       export GCC_EXTRA_CONFIG="--with-fp --with-cpu=strongarm 
--enable-cxx-flags=-mcpu=strongarm1110"
       export GLIBC_EXTRA_CONFIG="--with-fp --with-cpu=strongarm"
     gcc = 3.4.0:
       export GCC_EXTRA_CONFIG="--with-fp"
       export GLIBC_EXTRA_CONFIG="--with-fp"

   - gcc < 3.4.0:
       export TARGET_CFLAGS="-O2 --mcpu=strongarm1110"
     gcc = 3.4.0:
       export TARGET_CFLAGS="-O"

   - 2.95.3 < gcc < 3.4.0 (!):
       glibc-vfp.patch applied for glibc 2.3.2
       (copied from contrib to patches)

   - gcc = 3.4.0:
     Linux 2.4.21 Headers as rc7 instead 2.6.5 as in rc12
     (creating toolchain has an error with 2.6.5)

give the results:

                 Linux       toolchain   -static
gcc     glibc   Header      compile     test program

2.95.3  2.1.3   2.4.18      +           +

3.3.2   2.1.3   2.4.24      error 3     -
3.3.2   2.3.2   2.4.24      +           +

3.3.3   2.1.3   2.4.18/24   error 3     -
3.3.3   2.3.2   2.4.24      +           +

3.4.0   2.1.3   2.4.18/21   error 4     -
3.4.0   2.3.2   2.4.18/21   +           +

Explicit setting of CPU type resolves the illegal instruction error.

Without glibc-vfp.patch and with -static: float output error. Even
though comment "for soft-float" within the patch. The patch is not
needed for gcc 2.4.0 with glibc 2.3.2. (!?)

Solved: Illegal instruction, float output.
Remaining: gcc 3.4.0 or 3.3.x with glibc 2.1.3.

It seems to me that error 3 is the same as with gcc 3.4.0
and cpu=strongarm config.



 > MfG

Uups :-)

Ditto.

Mike.


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



More information about the crossgcc mailing list