[uClinux-dev] asterisk with uClinux error

Jamie Lokier jamie at shareable.org
Thu May 6 13:00:13 EDT 2010


Lennart Sorensen wrote:
> On Thu, May 06, 2010 at 10:12:27AM +0900, Zaya Kh wrote:
> > Hi , all
> > 
> > I want to create uClinux with Asterisk PBX, I'm using Petalinux tool chain
> > and Spartan3e Starter kit board
> > We can* "make menuconfig"*,
> > check Asterisk PBX, and libSSL, ncurses
> > 
> > While we compiling kernel, I saw this error:
> > 
> > ......
> > checking whether the C compiler (ucfront-gcc microblaze-uclinux-gcc  -Os -g
> > -fomit-frame-pointer -pipe -fno-common -fno-builtin -Wall  -mno-xl-soft-mul
> > -mno-xl-soft-div -mxl-barrel-shift -mcpu=v6.00.b   -DEMBED -Dlinux
> > -D__linux__ -Dunix -D__uClinux__ -DLINUX -pipe  -Wall -Wstrict-prototypes
> > -Wmissing-prototypes -Wmissing-declarations -g  -Iinclude -I../include
> > -D_REENTRANT -D_GNU_SOURCE  -O6
> > -I/opt/petalinux-v0.40-final/software/petalinux-dist/user/asterisk/tinytcap
> > -DASTERISK_VERSION="1.0.7" -DASTETCDIR="/etc/config/asterisk"
> > -DASTLIBDIR="/lib/asterisk" -DASTVARLIBDIR="/var/lib/asterisk"
> > -DASTVARRUNDIR="/var/run" -DASTSPOOLDIR="/var/spool/asterisk"
> > -DASTLOGDIR="/var/log/asterisk"
> > -DASTCONFPATH="/etc/config/asterisk/asterisk.conf"
> > -DASTMODDIR="/lib/asterisk/modules" -DASTAGIDIR="/agi-bin"
> > -DBUSYDETECT_MARTIN        -mno-xl-soft-mul -mno-xl-soft-div
> > -mxl-barrel-shift -mcpu=v6.00.b  -Wl,-elf2flt -L../tinytcap) works... no
> > configure: error: installation or configuration problem: C compiler cannot
> > create executables.
> > make[2]: *** [editline/libedit.a] Error 1
> > make[2]: Leaving directory
> > `/opt/petalinux-v0.40-final/software/petalinux-dist/user/asterisk'
> > make[1]: *** [all] Error 2
> > make[1]: Leaving directory
> > `/opt/petalinux-v0.40-final/software/petalinux-dist/user'
> > make: *** [subdirs] Error 1
> > [root at localhost petalinux-dist]#
> > 
> > 
> > What can I do? Help me?
> 
> Things using configure tend to hate cross compiling since they often
> believe they can create a test program and run it to find out some
> setting.  If you cross compile then you can't run the executable and
> hence the test can't run.  That might not be what is happening here,
> but it could be part of the problem.

The above error should not occur if ./configure is called correctly
for cross-compilation.  config.log will explain what it's doing before
it complains.

> autoconf is simply evil when you are trying to cross compile.  A terrible
> horrible mess.

Yes, but on the other hand, it often works better than the
non-autoconf source tarballs in my experience :-)

Needing to execute something is poor form, but doesn't seem to happen
in most packages.

Dependency on Glibc, or sometimes even specific version of Glibc, or
sometimes kernel headers that are only prevent in kernel version X, or
x86 arch only, whatever the author had on their system at release
time, now that's really horrible stuff I've seen in non-autoconf
packages for those needing to cross-compile.

(Rob Landley's answer is to give up cross-compiling, and do everything
inside qemu for the target arch.)

-- Jamie



More information about the uClinux-dev mailing list