EmbDev.net

Forum: ARM programming with GCC/GNU tools Building my own tool-chain, missing files


von noether (Guest)


Rate this post
useful
not useful
Hello, i'm trying to build my own tool-chain for an arm7tdmi 
(interworking and nofmult).

First, i downloaded the toolchain at 
http://embdev.net/articles/ARM_GCC_toolchain_for_Linux_and_Mac_OS_X , 
and everything was fine.

Now, i built my owm toolchain and everything is right when i'm compiling 
in ARM mode, but i can't compile in interworking mode because i miss 
some files in the directories /interwork (libm.a).

I just put the same flags as the before link, and i patched the 
t-arm-elf (gcc) with the next:
1
MULTILIB_OPTIONS    += mhard-float/msoft-float
2
MULTILIB_DIRNAMES   += fpu soft
3
MULTILIB_EXCEPTIONS += *mthumb/*mhard-float*
4
# 
5
MULTILIB_OPTIONS    += mno-thumb-interwork/mthumb-interwork
6
MULTILIB_DIRNAMES   += normal interwork
7
# 
8
MULTILIB_OPTIONS    += mcpu=arm7
9
MULTILIB_DIRNAMES   += nofmult
10
MULTILIB_EXCEPTIONS += *mthumb*/*mcpu=arm7*

processing the newlib1.17 i had the next errors too:
1
/bin/sh: line 4: arm-elf-ranlib: command not found
2
/bin/sh: line 4: arm-elf-ranlib: command not found
3
make[4]: *** [install-toollibLIBRARIES] Error 127
4
make[3]: *** [install-am] Error 2
5
make[2]: *** [install-recursive] Error 1
6
make[1]: *** [install-target-newlib] Error 2
7
make: *** [install] Error 2


At the moment i can "survive" working in ARM mode xD, but i want to 
compile in Thumb/interworking mode as i guess i will have better 
performance (actually i need it because i have loads of float operations 
in my code).


By the way, i read the performance of the eabi is better for float 
operation. Actually i built a tool-chain with target=arm-none-eabi, and 
it compiles with inter-working without any problems, but i don't know if 
that code will run in a arm7tdmi (AT91SAM7S256). I will test it on 
Thursday.

Thanks in advance.

von noether (Guest)


Rate this post
useful
not useful
Well, for gdb i have more errors:
1
cc1: warnings being treated as errors
2
../../gdb-6.8/gdb/eval.c: In function ‘evaluate_subexp_standard’:
3
../../gdb-6.8/gdb/eval.c:1705: error: ‘subscript_array’ may be used uninitialized in this function
4
make[2]: *** [eval.o] Error 1
5
make[2]: *** Waiting for unfinished jobs....
6
make[1]: *** [all-gdb] Error 2
7
make: *** [all] Error 2
8
cc1: warnings being treated as errors
9
../../gdb-6.8/gdb/eval.c: In function ‘evaluate_subexp_standard’:
10
../../gdb-6.8/gdb/eval.c:1705: error: ‘subscript_array’ may be used uninitialized in this function
11
make[2]: *** [eval.o] Error 1
12
make[1]: *** [install-gdb] Error 2
13
make: *** [install] Error 2

I have an "extense" log, let me know what it's importat to paste xD.

von noether (Guest)


Rate this post
useful
not useful
After this, i'll register myself for edit xD, sorry.

I forgot to mention it, i'm using gcc (Debian 4.4.1-4), and the 
toolchain sources are:

gcc-4.3.3
newlib 1.17.0
binutils 2.19.1
gdb 6.8

von Oliver B. (irq)


Rate this post
useful
not useful
Hi,

i did this myself recently. I'm not an expert, but what helped was 
http://wiki.ubuntuusers.de/GNU_ARM-Toolchain

I succeeded that way for Ubuntu/64bit as well as under Windows/Cygwin.

I used:
# GCC 4.4.1
# Binutils 2.19
# Newlib 1.17
# GDB 6.8
# Insight 6.8-1

von Héctor G. (Company: www.spacefishproject.com) (sherinian)


Rate this post
useful
not useful
Solved,

the newLib1.17.0 seems to be buggy for syscall+thumb, i applied this 
"patch"

http://thread.gmane.org/gmane.comp.lib.newlib/5612/focus=5615

and everything works now. As i use an ARM7 it is not important this 
patch, i suppose if you want to use Thumb under ARM/Linux, you have to 
be careful.

von Steven Jacome (Guest)


Rate this post
useful
not useful
Someone found the configure flag, will make without error
http://www.groupsrv.com/linux/about163176.html

Please log in before posting. Registration is free and takes only a minute.
Existing account
Do you have a Google/GoogleMail account? No registration required!
Log in with Google account
No account? Register here.