[uClibc] Problems building for AMD Alchemy processors.
Charles Palmer
charles.palmer at acutetechnology.com
Mon May 23 19:11:25 UTC 2005
Hi team
Has anyone suceesfully built a toolchain for these processors? If so, how?
(Many thanks in anticipation of your help...)
I have downloaded and built a buildroot package (host=x86 running Fedora
Core 3; target=AMD Au1200 - MIPS32, le) but the filesystem did not run and
neither did a kernel that I built with the new tools. I tried building a
simple hello world program, but that also fails on the target, with
"Segmentation fault" errors. Also, the ldd and readelf programs in
buildroot/toolchain_build_mipsel/uClibc/utils also give "Segmentation fault"
errors on the target, suggesting that they haven't been built properly
either.
I am a bit worried about the "MIPS R3000 big-endian" and "not found"
messages shown below. Here is what I did on my host:
[acutetech at localhost myprograms]$ mipsel-linux-gcc hello.c -o hello-br
[acutetech at localhost myprograms]$
~/buildroot/toolchain_build_mipsel/uClibc/utils/readelf.host hello-br
Type: EXEC (Executable file)
Machine: MIPS R3000 big-endian
Class: ELF32
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 0
Interpreter: /lib/ld-uClibc.so.0
Dependancies:
libgcc_s.so.1
libc.so.0
[acutetech at localhost myprograms]$
~/buildroot/toolchain_build_mipsel/uClibc/utils/ldd.host hello-br
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00000000)
libc.so.0 => not found (0x00000000)
libc.so.6 => /lib/libc.so.6 (0x00000000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x00000000)
[acutetech at localhost myprograms]$ which mipsel-linux-gcc
~/buildroot/build_mipsel/staging_dir/bin/mipsel-linux-gcc
[acutetech at localhost myprograms]$
BUILDING IT AGAINST A STATIC LIBRARY:
[acutetech at localhost myprograms]$ mipsel-linux-gcc -static hello.c -o
hello-br-static
[acutetech at localhost myprograms]$
~/buildroot/toolchain_build_mipsel/uClibc/utils/ldd.host hello-br-static
not a dynamic executable
[acutetech at localhost myprograms]$
~/buildroot/toolchain_build_mipsel/uClibc/utils/readelf.host hello-br-static
Type: EXEC (Executable file)
Machine: MIPS R3000 big-endian
Class: ELF32
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 0
(The static version also gave "Segmentation fault" when run on the target).
HOW I BUILT THE TOOLS:
1 I downloaded and extracted builtroot-20050523.tar.bz2
2 I ran make menuconfig and changed only the target architecture (to
mipsel)
3 I ran make. When prompted I made these selections:
- Target archtecture: 12 mips
- Target processor architecture: 5 MIPS32
- Target processor endianness: 1 Little Endian
- processor has MMU?: yes
- cross-compiling toolchain prefix: mipsel-linux-
- Answered "N" to all of the Busybox configuration questions.
The make process duely runs without reporting any (fatal) errors, and I end
up with a plausible set of files, mainly in line with the documentation.
Is there a simple confidence test to check the tools are correctly built, or
to see how they have been built, in comparison with what is expected?
Are there patches required for Alchemy/mips? If so, does buildroot apply
them? How can I check?
I see that make menuconfig offers support for AMD Au1550 development board
(I have a different board). I didn't enable these (make failed when I did) -
does this do anything by way of configuration or patches? There is no
documentation on this...
USING THE PRE-BUILT VERSION
Following the instructions here: http://uclibc.org/FAQ.html I tried to "grab
a pre-compiled uClibc development system". I downloaded and extracted this
file: http://www.uclibc.org/downloads/root_fs_mipsel.ext2.bz2, mounted it
locally (using the "mount -o loop" technique, then copied all of the files
to a USB memory stick and took this to my target. This runs on my target!
Which is fine, but:
1 How can I recreate this myself? That is, what have you done that I haven't
done?
2 The development tools (eg gcc) appear to be native mips tools, so of
limited use to me (I am trying to get fresh, working cross-tools, and I have
to say buildroot looked like a fine way of doing this).
Thanks!
Charles
More information about the uClibc
mailing list