[uClinux-dev] m68k-uclinux-20061214 toolchain problem with mcf5407 and 2.6.x which tooldchain to move to?

Oleksii Kuchuk yankee.scs at gmail.com
Thu Jun 11 03:59:36 EDT 2009

Hello Roger,

I have settled down on the Sourcery G++ light toolchain (2007 release,
gcc version 4.3, i don't remeber the link, but I think it is not hard
to google it). But I have encountered some problems with compiling
uClibc. If it will write that it could not find limits.h, you may try
really stupid patch I have included in this letter after signature.

After I have fixed compiler problems with sub_preempt_count () macro,
I also had a bug: "kernel panic, not syncing, could not mount root
fs". But the reason was also a compiler bug, macro IS_ERR
(include/linux/err.h). Because of incorrect negative number
operations, correct pointers where perceived as incorrect.

It was enough of me, so I tried the new toolchain ))

yours sincerely,

Oleksii Kuchuk

P.S. stupid patch I have mentioned before. I don't like the way it
fixes the problem, but helps )). I hope you will not need to apply it

--- uClinux-dist.old/uClibc/include/limits.h	2002-01-07 14:21:40.000000000 +0200
+++ uClinux-dist/uClibc/include/limits.h	2009-03-13 14:52:17.000000000 +0200
@@ -34,7 +34,7 @@

 /* If we are not using GNU CC we have to define all the symbols ourself.
    Otherwise use gcc's definitions (see below).  */
-#if !defined __GNUC__ || __GNUC__ < 2
+//#if !defined __GNUC__ || __GNUC__ < 2

 /* We only protect from multiple inclusion here, because all the other
    #include's protect themselves, and in GCC 2 we may #include_next through
@@ -110,7 +110,7 @@
 #  endif /* ISO C99 */

 # endif	/* limits.h  */
-#endif	/* GCC 2.  */
+//#endif	/* GCC 2.  */

 #endif	/* !_LIBC_LIMITS_H_ */

@@ -121,7 +121,8 @@
     the definitions from gcc's header.  */
 #if defined __GNUC__ && !defined _GCC_LIMITS_H_
 /* `_GCC_LIMITS_H_' is what GCC's file defines.  */
-# include_next <limits.h>
+//# include_next <limits.h>

 /* The <limits.h> files in some gcc versions don't define LLONG_MIN,
    LLONG_MAX, and ULLONG_MAX.  Instead only the values gcc defined for

2009/6/11 Roger Thornblad <rthornblad at utsci.com>:
> Hi Oleksii,
> Yes I was ;-)
> What version of tools did you finally settle on?
> Thanks for the heads up.  I also found this in some of your and Gregs emails in the archives.  I put them in and I was up and running. I think I'm on the right track.
> I am however, moving over to my real target board a 5307.  the 5407 work was just to get to a working environment.
> Now I have to figure out why I'm getting a kernel panic related to can't mount root,,, bummer.
> BTW, Greg sent an email with a link to his toolchain that I'm going to download and try.  We'll see what happens.
> Regards,
> -Roger

More information about the uClinux-dev mailing list