Re: what needs arm-elf-nonlinux-gcc? what needs arm-elf-nonlinux-gccgo?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

thanks for you quick reply.
I'm sorry for asking so basic questions, but I didn't find
answers in the documentation, FAQ or Wiki.
Any pointers appreciated.

On Wed, Apr 20, 2011 at 2:10 AM, Ian Lance Taylor <iant@xxxxxxxxxx> wrote:
> Steffen Dettmer <steffen.dettmer@xxxxxxxxxxxxxx> writes:
>
>> I would like to build a cross-compiler toolchain for embedded ARM
>> targets (to replace arm-elf-gcc-3.4.3).
>>
>> The targets are proprietary and has some special system libraries (so
>> -nostdlib is used and linkerscripts).
>> I think gcc needs some functions from the system (such as some
>> malloc() for C++ operator new etc). I searched FAQ and the wiki but
>> did not find much information about how to compile such a compiler
>> toolchain.
>> I've read about "--with-local-prefix". Should I create some
>> somepath/include and copy the systems "libc" headers into it (there
>> are just a very few functions known from ANSI-C) and give
>> --with-local-prefix=somepath/include? I cannot believe that this is
>> really that simple.
>
> Use --with-sysroot instead. It should point to header files in include
> and libraries in lib.

I'm following http://gcc.gnu.org/install/.
Is this right and sufficient?

As I understood, the simplest is to install binutils, gmp, mpc,
mpfr into the gcc source directory; so I did. I symlinked
binutils-2.21 to binutils and so on.

I assume that those packages are built automatically within gcc
building and that I do not need extra configure or make steps, do
I assume correctly?

I created and populated sysroot/include and sysroot/lib and configure with

------------------------------------------------------------------->8=======
# gcc-4.4.1/gcc/config/arm/t-arm-elf. Uncommented:
#
# MULTILIB_OPTIONS     += mlittle-endian/mbig-endian
# MULTILIB_DIRNAMES    += le be
# MULTILIB_MATCHES     += mbig-endian=mbe mlittle-endian=mle
#
# MULTILIB_OPTIONS    += mhard-float/msoft-float
# MULTILIB_DIRNAMES   += fpu soft
# MULTILIB_EXCEPTIONS += *mthumb/*mhard-float*
#
# MULTILIB_OPTIONS    += mno-thumb-interwork/mthumb-interwork
# MULTILIB_DIRNAMES   += normal interwork
#
../gcc-4.6.0/configure \
  --prefix=/usr/local/exp/gcc-4.6.0/ \
  --enable-languages=c,c++ \
  --target=arm-elf \
  --program-prefix=arm-elf \
  --with-sysroot=../sysroot \
  --enable-interwork --enable-multilib \
  --enable-target-optspace --with-float=soft

and see:

checking where to find the target ar... just compiled
checking where to find the target as... pre-installed
...
checking where to find the target ld... pre-installed
...
cc, c++, c++, dlltool, gcc, gcc, nm, objdump, ranlib, windres,
windmc also are "just compiled".

I want to use the new ld from ../gcc-4.6.0/binutils/ld.
I want it as /usr/local/exp/gcc-4.6.0/bin/arm-elf-ld.
Did I configure correctly?

I dislike the "target ld... pre-installed" message, if I
understand correctly, it is trying to use a wrong ld, isn't it?
also, the `ld' in $PATH is not `arm-elf-ld' (arm-elf-ld in PATH
would be an old linker, but I would like to use the new version).

> Building full cross-compiler toolchains is still harder than it
> should be. There is a lot of discussion of it on this list and
> on the crossgcc list.

yes, google finds heaps for everthing I searched, but
unfortunately doesn't help a lot. Many issues seem to be related
to c library (which for now I don't want to build). There are
many arm-linux related information, often for old versions. Hard
to know what matches my issues and could help me.

Any pointers appreciated.

BTW, I get a lot of warnings like
Warning: rest of line ignored; first ignored character is `i'
Warning: rest of line ignored; first ignored character is `d'
(gcc-3.2), also when building native compiler, do I need to worry?

oki,

Steffen


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux