Re: coldfire and soft-float

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

 



Luigi 'Comio' Mantellini wrote:

Kay, Thanks for your support.

this is the config.gcc (part of):

..
m68k-*-uclinux*)                # Motorola m68k/ColdFire running uClinux
                                # with uClibc, using the new GNU/Linux-style
                                # ABI.
        default_m68k_cpu=68020
        default_cf_cpu=5206
        tm_file="${tm_file} dbxelf.h elfos.h svr4.h linux.h flat.h m68k/linux.h m68k/uclinux.h ./sysroot-suffix.h"
        tm_defines="${tm_defines} MOTOROLA=1 UCLIBC_DEFAULT=1"
        extra_options="${extra_options} linux.opt"
        tmake_file="m68k/t-floatlib m68k/t-uclinux m68k/t-mlibs"
        use_fixproto=no
        ;;
m68k-*-linux*)          # Motorola m68k's running GNU/Linux
                                # with ELF format using glibc 2
                                # aka the GNU/Linux C library 6.
        default_m68k_cpu=68020
        default_cf_cpu=5475
        tm_file="${tm_file} dbxelf.h elfos.h svr4.h linux.h m68k/linux.h"
        extra_options="${extra_options} m68k/ieee.opt"
        tm_defines="${tm_defines} MOTOROLA=1"
        # if not configured with --enable-sjlj-exceptions, bump the
        # libgcc version number
        if test x$sjlj != x1; then
            tmake_file="$tmake_file m68k/t-slibgcc-elf-ver"
        fi
        ;;
..

The target m68k-*-linux* doesn't set any tmake_file... I think that the
following should be added :

        tmake_file="m68k/t-floatlib m68k/t-mlibs m68k/t-m68kbare"

The 'm68020/m68881' and 'mcf5475' seem to be the defaults for Linux but
'm68020/msoft-float' and 'mcf5206' for uClinux... So here we should talk
only about those (two) uClinux configurations. The 'oldabi' one or the
"new GNU/Linux-style ABI" being needed?

The startups, C library names memory layout ("flat") etc are different
between GNU/Linux and "Linux with uClibc" aka uClinux...

Ok, here seems to be a really silly bug, the target name
'm68k-linux-uclibc' isn't using the right (here 'm68k-*-uclinux*')
template at all !!! It uses the 'm68k-*-linux*' template which of
course is totally wrong :(  Also all the other uClibc systems are
expecting the '-uclinux', not the de-facto '-linux-uclibc' target
name, only the new 'bfin-*-linux-uclibc' seems to be "updated" to
use the new name...

When seeing this, I remember there being patches for GCC in the
uClibc case which changed these templates. But they never were
moved to the GCC sources I think...

So please simply change the first template name to be :

m68k-*-linux-uclibc*)      # Motorola m68k/ColdFire running uClinux
                           # with uClibc, using the new GNU/Linux-style
                           # ABI.

and then see what you will get !

[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