Hi Bernhard,
Bernhard Reutner-Fischer wrote,

> On 4 September 2014 23:06, Bernhard Reutner-Fischer
> <[email protected]> wrote:
> > On 4 September 2014 20:47, Waldemar Brodkorb <[email protected]> wrote:
> >> Hi,
> >>
> >> I am trying to compile uClibc master from today for m68k targeting
> >> Aranym-mmu. The C library compiles, but the test-suite fails.
> >
> >> /home/vmadmin/openadk/toolchain_aranym-m68k_uclibc_m68k/usr/lib/gcc/m68k-openadk-linux-uclibc/4.8.3/../../../../m68k-openadk-linux-uclibc/bin/ld:
> >> BFD (GNU Binutils) 2.24 assertion fail elf32-m68k.c:2641
> >> collect2: error: ld returned 1 exit status
> >>
> >> Is this commit related?
> >> http://git.uclibc.org/uClibc/commit/?id=7a3acb243bc09f253a77faee7ee097a781f3eebe
> >
> > No, not directly related.
> >>
> >> It didn't work before, but may someone (Bernhard?) have an idea?
> 
> FWIW, It can't find the GOT, I assume it's time to tweak our m68k ld..

May be I can give you some up to date information what is working
for me on m68k architecture and what is not.

There are two simulators available one for classic m68k and one for
coldfire.
Aranym-mmu works for classic m68k.
Qemu-system-m68k works for coldfire mcf5208evb (5208 CPU)
The Arnewsh 5206 Qemu-system-m68k emulation have no network card
support. There is Qemu Fork for classic m68k emulation, but last
time I tried, I didn't get it working.

You can build a cross-toolchain with gcc 4.8.3 and binutils 2.24.
For binutils no patches are required. For gcc I added two
modifications to avoid building libatomics:
http://www.openadk.org/cgi-bin/gitweb.cgi?p=openadk.git;a=blob;f=toolchain/gcc/patches/4.8.3/disable-atomics.m68k;h=4ab5532188cb59f7e5ae03aeabcc4a91c954d804;hb=HEAD
And to avoid breaking compile with -msep-data:
http://www.openadk.org/cgi-bin/gitweb.cgi?p=openadk.git;a=blob;f=toolchain/gcc/patches/4.8.3/disable-tm.m68k;h=02b5cb854e0e6a2ef20798096fda7aabe4cf857f;hb=HEAD

See bugreports:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54584
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53833

To complete your toolchain to build BFLTv4 binaries with your
toolchain, you need to get a copy of elf2flt. (cvs.uclinux.org is
dead and will eventually come back)
I use following to setup the symlinks right:
http://www.openadk.org/cgi-bin/gitweb.cgi?p=openadk.git;a=blob;f=toolchain/elf2flt/Makefile;h=a42398a3e364fd7e5968730fc01b9a278ee23c57;hb=HEAD

You shouldn't need all of the above for a classic m68k toolchain to
build an image, which works with Aranym-mmu. (gcc 4.9.1 works, too)

For Qemu you need a patch:
http://www.openadk.org/coldfire/qemu-2.1.0-m68k.patch

To boot Linux you need two patches:
One two get Linux to bootup from Thomas Petazzoni:
http://www.openadk.org/cgi-bin/gitweb.cgi?p=openadk.git;a=blob;f=target/m68k/qemu-m68k/patches/3.16.1/qemu-coldfire.patch;h=503fe8ef3ec70952856c84f85ca5e6d88440b104;hb=HEAD
And one if you want to bootup when you try to use ethernet from Greg
Ungerer:
http://www.openadk.org/cgi-bin/gitweb.cgi?p=openadk.git;a=blob;f=target/m68k/qemu-m68k/patches/3.16.1/m68k-coldfire-fec.patch;h=60dfadb6d2223336e12bf12042abe1349bfeebc5;hb=HEAD

This thread on the uClinux mailinglist might be interesting:
http://mailman.uclinux.org/pipermail/uclinux-dev/2014-August/052557.html

For simple userland I use simpleinit/sash from uClinux project.
http://sourceforge.net/projects/uclinux/files/uClinux%20Stable/dist-20140504/uClinux-dist-20140504.tar.bz2/download

With busybox and hush I have a unresolved issue regarding the signal
handling in uClibc (0.9.33.2/master are both problematic)
See following thread for details:
http://lists.busybox.net/pipermail/busybox/2014-August/081619.html
And a simple testcase, which fails:
http://lists.busybox.net/pipermail/busybox/2014-September/081659.html

There are at least two other open problems, to get the signal
handler problem solved:
- get a working gdbserver/gdb combo for coldfire
  gdbserver fails to compile. (7.8)
- ethernet in qemu does not work, fec driver does not find a
  ethernet nic

To get more output from userland programs, use flthdr -k to enable
kernel information. There is always a program.gdb file, which is
useful to inspect via readelf.

The test suite compiles for coldfire, but not for m68k classic.
I sue following configs for uClibc:
http://www.openadk.org/cgi-bin/gitweb.cgi?p=openadk.git;a=blob;f=target/m68k/uclibc-nommu.config;h=e7017d38e93e6c6ea1427ce01bc0771be3022e5e;hb=HEAD
http://www.openadk.org/cgi-bin/gitweb.cgi?p=openadk.git;a=blob;f=target/m68k/uclibc.config;h=27b9e692310c2c05c72a2509662316415dae5ae5;hb=HEAD

And following miniconfigs for the kernel:
http://www.openadk.org/cgi-bin/gitweb.cgi?p=openadk.git;a=blob;f=target/m68k/kernel/aranym-m68k;h=ac513fdc6e2c6c72609577a680e4ad648ed30b18;hb=HEAD
http://www.openadk.org/cgi-bin/gitweb.cgi?p=openadk.git;a=blob;f=target/m68k/kernel/qemu-m68k;h=681785452cf2d1bec86871ade25237c931dc3bff;hb=HEAD

have fun and good luck,
 Waldemar
_______________________________________________
uClibc mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/uclibc

Reply via email to