Hardware Reference
In-Depth Information
Sometimes a component will fail in its
configuration phase
. Check the
build.log
file first to determine precisely which component is involved. Next you will want to
examine the
config.log
file for that particular component. For example, let's say the
isl
component failed. Dive down into the
.build
subdirectory until you find its
config.log
file:
$ cd .build/arm-unknown-linux-gnueabi/build/build-isl-host-i686-build_pc-
linux-gnu
$ less config.log
Navigate to the end of
config.log
and work backward a few pages. Eventually, you
will see text describing the command that was tried and the error message produced.
In one instance, I was able to determine that the custom compiler option that I added
(-fpermissive
) was causing the failure. The solution then was to remove that option and
try again.
Some errors will occur only with certain version choices. At one time, I was receiving
errors related to PPL and needed a patch to correct it. Google is your friend (the following
patch is an example):
I found that saving that patch to a file and applying it to the sources corrected the
issue. Later, when I decided to start over with a different choice of compiler, this patch
became unnecessary (the software was downloaded fresh again).
In getting through these issues, you can simply make corrections and then rerun the
ct-ng build
command. It is recommended that you plan for a later rebuild of everything
again (after a
clean
), once the problems are solved. This will ensure that you have a good
build without dependency issues.
If, after a correction, you run into the same problem, you may need to do a
clean
step first and start over. Depending on how deep you think the problem may be, choose
one of the following:
•
ct-ng clean
ct-ng distclean
(Be careful; see the following text.)
The
ct-ng clean
command will usually be enough, forcing the next build to start
fresh. Any downloaded files and configuration will remain and are reused.
The
ct-ng distclean
command is much more drastic, since it removes all of the
downloaded content
and your configuration files.
I copied the
.config
file to
.config.
bak
and discovered to my horror that
.config.bak
had been removed! So if you back up
the
.config
file, copy it
outside
the current directory for safety.
Above all, keep your head. It's difficult to troubleshoot these issues if you feel
time pressure or get angry over the time invested. When under time pressure, leave it
for another day when you can deal with it leisurely and thoughtfully. Each redo takes
considerable time. Wherever possible, eliminate the guesswork.
With each problem, take a deep breath, patiently look for clues, and pay attention to
the details in the error messages. Remember that line in the movie
Apollo 13
: “Work the
problem, people!”
•