Ubuntu Tool-Building Blues

Ralf Corsepius ralf.corsepius at rtems.org
Sat Sep 13 05:03:15 UTC 2008

On Fri, 2008-09-12 at 19:34 -0400, Robert S. Grimes wrote:
> I'm trying to set up a build environment for testing the 4.9 branch on 
> Ubuntu Linux, and I'm having a few problems.
> 1. I had hoped to use the prebuilt RPMs, but it seems Ubuntu is not 
> supported :-(
You've got it conversed: Ubuntu doesn't support rpm.

>  .  So I must build them myself, right?
Does Ubuntu have alien? If so you could give it a try.

> 2. Because I've been using 4.8, and need to update to use Sebastian's 
> spi-sd-card driver - as well as possibly the nvdisk with FRAM), and am 
> thinking of the future, I thought I'd try to build the 4.10 tools in 
> /ftp/pub/rtems/SOURCES/4.10 - is that a good idea, or should I use 4.9?
The 4.10 series is the next generation of the RTEMS "unstable" and
experimental" branch. It might eat your children, pets or wife and is
not unlikely to explode into your face :)

The 4.9 series is the soon to be expected "proclaimed stable" series,
supposed to soon replace the rtems-4.8 series.

ATM, the difference between both toolchain series is pretty small, but
the rtems-4.10 series can be expected to be closely following
gcc/binutils/gdb upstreams, while the rtems-4.9 series will probably be
applied a much more conservative upgrade-policy. I.e. the rtems-4.10
series can be expected to rapidly diverge from the rtems-4.9 series.

My recommendation: Which to choose depends on your intention:

- If you are actively developing, plan to actively participate in 
  RTEMS, are using very new hardware, are interested in new features
  => rtems-4.10

- If you have a product in "stable maintenance mode", do not plan to
  participate, are using "old and stable" hardwarde, are not interested
  in new features
  => rtems-4.9

> 3. I got binutils-2.18.tar.bz2, unpacked and patched it, confugiured a 
> build directory, and am trying to build.  It failed, suggesting I 
> install texinfo (though that was just a warning).  After installing 
> texinfo, it still fails at the same place, and I can't seem to see the 
> error.  Here is the complete output:
> rsg at vir:~/rtems/tools/b-binutils$ make all
> make[1]: Entering directory `/home/rsg/rtems/tools/b-binutils'
> make[2]: Entering directory `/home/rsg/rtems/tools/b-binutils/libiberty'
> make[3]: Entering directory 
> `/home/rsg/rtems/tools/b-binutils/libiberty/testsuite'
> make[3]: Nothing to be done for `all'.
> make[3]: Leaving directory 
> `/home/rsg/rtems/tools/b-binutils/libiberty/testsuite'
> make[2]: Leaving directory `/home/rsg/rtems/tools/b-binutils/libiberty'
> make[2]: Entering directory `/home/rsg/rtems/tools/b-binutils/intl'
> make[2]: Nothing to be done for `all'.
> make[2]: Leaving directory `/home/rsg/rtems/tools/b-binutils/intl'
> make[2]: Entering directory `/home/rsg/rtems/tools/b-binutils/bfd'
> Making info in doc
> make[3]: Entering directory `/home/rsg/rtems/tools/b-binutils/bfd/doc'
> restore=: && backupdir=".am$$" && \
>     rm -rf $backupdir && mkdir $backupdir && \
>     if (/home/rsg/rtems/tools/binutils-2.18/missing makeinfo 
> --split-size=5000000 --split-size=5000000 --version) >/dev/null 2>&1; then \
>       for f in bfd.info bfd.info-[0-9] bfd.info-[0-9][0-9] bfd.i[0-9] 
> bfd.i[0-9][0-9]; do \
>         if test -f $f; then mv $f $backupdir; restore=mv; else :; fi; \
>       done; \
>     else :; fi && \
>     if /home/rsg/rtems/tools/binutils-2.18/missing makeinfo 
> --split-size=5000000 --split-size=5000000   -I 
> ../../../binutils-2.18/bfd/doc \
>      -o bfd.info `test -f 'bfd.texinfo' || echo 
> '../../../binutils-2.18/bfd/doc/'`bfd.texinfo; \
>     then \
>       rc=0; \
>     else \
>       rc=$?; \
>       $restore $backupdir/* `echo "./bfd.info" | sed 's|[^/]*$||'`; \
>     fi; \
>     rm -rf $backupdir; exit $rc
> WARNING: `makeinfo' is missing on your system.  You should only need it if
>          you modified a `.texi' or `.texinfo' file, or any other file
>          indirectly affecting the aspect of the manual.  The spurious
>          call might also be the consequence of using a buggy `make' (AIX,
>          DU, IRIX).  You might want to install the `Texinfo' package or
>          the `GNU make' package.  Grab either from any GNU archive site.
> make[3]: *** [bfd.info] Error 1
> make[3]: Leaving directory `/home/rsg/rtems/tools/b-binutils/bfd/doc'
> Making info in po
> make[3]: Entering directory `/home/rsg/rtems/tools/b-binutils/bfd/po'
> make[3]: Nothing to be done for `info'.
> make[3]: Leaving directory `/home/rsg/rtems/tools/b-binutils/bfd/po'
> make[3]: Entering directory `/home/rsg/rtems/tools/b-binutils/bfd'
> make[3]: Nothing to be done for `info-am'.
> make[3]: Leaving directory `/home/rsg/rtems/tools/b-binutils/bfd'
> make[2]: *** [info-recursive] Error 1
> make[2]: Leaving directory `/home/rsg/rtems/tools/b-binutils/bfd'
> make[1]: *** [all-bfd] Error 2
> make[1]: Leaving directory `/home/rsg/rtems/tools/b-binutils'
> make: *** [all] Error 2
> Any ideas?
This is one of two well known bugs in binutils-2.18:

1. Though building binutils claims not to require having texinfo
installed, it actually requires having texinfo installed.

2. Certain versions of binutils, gcc, gdb and newlib bomb out from
building when having a "too new version" of texinfo installed (The cause
is a defect in the toplevel configure-script, which is shared by all of
these packages).

This bug only shows when building on OSes shipping modern tools, e.g.
newer Fedora or openSUSE, but doesn't show on OSes shipping outdated
versions (certain versions of RHEL, Debian). Your report indicates your
version of Ubuntu having joined the club :)

The rtems-4.9/4.10 patches are supposed to contain fixes to this issue. 

=> Make sure to have texinfo installed and the rtems-patches applied.


More information about the users mailing list