[Buildroot] Analysis of build failures

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Wed Feb 12 09:45:01 UTC 2014


Dear Peter Korsgaard,

On Wed, 12 Feb 2014 10:39:16 +0100, Peter Korsgaard wrote:

>  > case "${host_os}" in
>  >   nobody_is_using_this_currently)
>  >     AC_DEFINE(HAVE_CODEMEM_MALLOC, 1, [Use malloc to allocate code for execution])
>  >     ;;
>  >   mingw*|pw32*|cygwin*)
>  >     AC_DEFINE(HAVE_CODEMEM_VIRTUALALLOC, 1, [Use VirtualAlloc to allocate code for execution])
>  >     ;;
>  >   linux*|darwin*|solaris*|netbsd*|freebsd*|openbsd*|kfreebsd*|dragonfly*|gnu*)
>  >     AC_DEFINE(HAVE_CODEMEM_MMAP, 1, [Use mmap to allocate code for execution])
>  >     ;;
>  >   *)
>  >     AC_ERROR([no code allocation backend])
>  >     ;;
>  > esac
> 
>  > So when the host is uclinux (such as on !MMU platforms), nothing
>  > matches. Which seems to match the fact that it needs a proper mmap() to
>  > operate. So I believe it's really a "depends BR2_USE_MMU" that we need
>  > here.
> 
> But orc is a JIT code generator, and from the source code it seems it
> only handles ARM/PowerPC/x86.

True. Odd that their configure script doesn't bail out after checking
the target architecture.

Things worth mentioning:

 * They have a newer 0.4.17 version that has MIPS support, as well as
   PowerPC64 support.

 * Their README suggest a way of reducing the size of the library that
   we are not using:

"""
   A: For embedded users, the --enable-backend configure option can
   be used to disable irrelvant targets.  Compiled with only one target
   (SSE), the library size is about 150 kB uncompressed, or 48 kB
   compressed.  The goal was to keep the uncompressed size under
   about 100 kB (but that failed!).  A typical build with all targets
   and the full ABI is around 350 kB.
"""

Best regards,

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com


More information about the buildroot mailing list