home
overview
developers
Topics of interest:
Cross-compiling
STLPort
Gumstix/Waysmall
|
|
FAQ: Building
the Crosscompiler
|
 |
|
|
Here you can
find information which might be useful during the development process.
Q: |
I
get the following error (or one like it...) when trying to compile
buildroot on cygwin (note this example is taken from an arm build
attempt):
install -d include/bits
make[1]: execvp: install: Permission denied
make[1]: *** [include/bits/uClibc_config.h] Error 127
make[1]: Leaving directory `/usr/local/crosscompile/buildroot_arm/toolchain_build_arm/uClibc'
make: *** [/usr/local/crosscompile/buildroot_arm/toolchain_build_arm/uClibc/.configured] Error 2 |
A: |
There are two solutions, both of which are hackish:
- When calling
make , issue the command like this:
$ make INSTALL=/usr/bin/install
or
$ make INSTALL=`which install`
The checkout script uses the latter of these two.
- Edit the
toolchain_build_$ARCH/uClibc/Rules.mak (or
used the already modified in the previous link) to use INSTALL=/usr/bin/install .
There is probably a way to do this via the configure.in file,
I welcome
any suggestions,
which we can roll back in to the buildroot development tree.
|
Q: |
The
buildroot process seems to fail, and then if I type 'make' again,
recovers. What's the deal? |
A: |
Buildroot
is a slick tool, but it doesn't have all of its dependency ducks
in a row (my opinion), nor does it appropriately use configure
to find things (cf the make INSTALL= ...). If you
have specific instances, we can look at them to try to figure
out
what's
going
on. For the
most
part,
I am happy just to get it build on cygwin. :) |
Q: |
What
is up with libc-internal.h? Why is this file missing when compiling
libstdc++ during gcc-3.4.X? I found it in build_$ARCH/toolchain_build_$ARCH/include ,
why can't the compiler find it? |
A: |
That's
a very good question, and I do not know the answer (in the best
sense). I re-copy the file to the appropriate directory whenever
it is needed. Thusfar, I have to do this twice (for example below,
using the ARM build):
sprinkle@ransom /usr/local/crosscompile/buildroot_arm
$ cp toolchain_build_arm/uClibc/include/libc-internal.h toolchain_build_arm/gcc-3.4.2-final/arm-linux-uclibc/libstdc++-v3/include
and again for the gcc for the target:
sprinkle@ransom /usr/local/crosscompile/buildroot_arm
$ cp toolchain_build_arm/uClibc/include/libc-internal.h build_arm/gcc-
3.4.2-target/arm-linux-uclibc/libstdc++-v3/include
It seems this problem may have been solved by now in the Subversion
tree. We shall see!
|
Q: |
When
building my root, I can't get grep to build, it is missing io.h
--- can I just fix the includes path? |
A: |
I've
spent a few hours on this, and I'm putting off a solution until
later, since grep is okay to live without on the embedded device.
This is due again (I think) to the buildroot tendency to not
try its builds on cygwin. :)
My solution, then, is to rerun make menuconfig and under Package
selection for target remove grep as a chosen deployment component.
|
Q: |
Uh,
do bad things happen when building make for the
target? |
A: |
Yep.
Don't do that (for now...). It shouldn't hurt that much, since
you have a crosscompiler.
Known issues:
- After successfully building
make , the build fails immediately
when in the make directory, because the current directory version
of make overrides /usr/bin/make
|
|
|
|
|
|
Last modified
8 March, 2006
|
|
|