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]

Re: crosstool-0.28-rc7, host cygwin, target ARM

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
> 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: 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 > when they're worth mentioning.


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

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 :-)



------ Want more information? See the CrossGCC FAQ, Want to unsubscribe? Send a note to

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