[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