mordak / playbook-dev-tools

gcc for the Blackberry Playbook, and maybe some other stuff..
54 stars 31 forks source link

coreutils won't compile #13

Closed KireinaHoro closed 7 years ago

KireinaHoro commented 7 years ago

When performing the coreutils bootstrap, the build fails at compiling texinfo:

$ pwd
/home/jsteward/Work/blackberry/playbook-dev-tools/work/coreutils-8.13
$ make
make  all-recursive
make[1]: Entering directory '/home/jsteward/Work/blackberry/playbook-dev-tools/work/coreutils-8.13'
Making all in lib
make[2]: Entering directory '/home/jsteward/Work/blackberry/playbook-dev-tools/work/coreutils-8.13/lib'
make  all-recursive
make[3]: Entering directory '/home/jsteward/Work/blackberry/playbook-dev-tools/work/coreutils-8.13/lib'
make[4]: Entering directory '/home/jsteward/Work/blackberry/playbook-dev-tools/work/coreutils-8.13/lib'
make[4]: Leaving directory '/home/jsteward/Work/blackberry/playbook-dev-tools/work/coreutils-8.13/lib'
make[3]: Leaving directory '/home/jsteward/Work/blackberry/playbook-dev-tools/work/coreutils-8.13/lib'
make[2]: Leaving directory '/home/jsteward/Work/blackberry/playbook-dev-tools/work/coreutils-8.13/lib'
Making all in src
make[2]: Entering directory '/home/jsteward/Work/blackberry/playbook-dev-tools/work/coreutils-8.13/src'
make  all-am
make[3]: Entering directory '/home/jsteward/Work/blackberry/playbook-dev-tools/work/coreutils-8.13/src'
make[3]: Nothing to be done for 'all-am'.
make[3]: Leaving directory '/home/jsteward/Work/blackberry/playbook-dev-tools/work/coreutils-8.13/src'
make[2]: Leaving directory '/home/jsteward/Work/blackberry/playbook-dev-tools/work/coreutils-8.13/src'
Making all in doc
make[2]: Entering directory '/home/jsteward/Work/blackberry/playbook-dev-tools/work/coreutils-8.13/doc'
  MAKEINFO coreutils.info
coreutils.texi:2701: @itemx must follow @item
coreutils.texi:2851: @itemx must follow @item
coreutils.texi:2859: @itemx must follow @item
coreutils.texi:2872: @itemx must follow @item
coreutils.texi:2895: @itemx must follow @item
coreutils.texi:2908: @itemx must follow @item
coreutils.texi:3026: @itemx must follow @item
coreutils.texi:3109: @itemx must follow @item
coreutils.texi:3482: @itemx must follow @item (possibly involving @filesZeroFromOption)
coreutils.texi:3663: @itemx must follow @item
coreutils.texi:3672: @itemx must follow @item
coreutils.texi:3705: @itemx must follow @item
coreutils.texi:4108: @itemx must follow @item (possibly involving @filesZeroFromOption)
coreutils.texi:6477: @itemx must follow @item
coreutils.texi:6846: @itemx must follow @item (possibly involving @optSi)
coreutils.texi:7620: @itemx must follow @item
coreutils.texi:7748: warning: @itemx should not begin @table
coreutils.texi:7750: @itemx must follow @item
coreutils.texi:7756: @itemx must follow @item
coreutils.texi:7762: @itemx must follow @item
coreutils.texi:7786: @itemx must follow @item
coreutils.texi:7788: @itemx must follow @item
coreutils.texi:7793: @itemx must follow @item
coreutils.texi:7809: @itemx must follow @item
coreutils.texi:7814: @itemx must follow @item
coreutils.texi:7929: @itemx must follow @item (possibly involving @optStripTrailingSlashes)
coreutils.texi:8528: @itemx must follow @item
coreutils.texi:8678: @itemx must follow @item (possibly involving @optStripTrailingSlashes)
coreutils.texi:8749: @itemx must follow @item
coreutils.texi:8768: @itemx must follow @item
coreutils.texi:8787: @itemx must follow @item
coreutils.texi:8795: @itemx must follow @item
coreutils.texi:9892: @itemx must follow @item
coreutils.texi:9946: @itemx must follow @item
coreutils.texi:9953: @itemx must follow @item
coreutils.texi:10073: @itemx must follow @item
coreutils.texi:10080: @itemx must follow @item
coreutils.texi:10195: @itemx must follow @item
coreutils.texi:10202: @itemx must follow @item
coreutils.texi:10473: @itemx must follow @item
coreutils.texi:10547: @itemx must follow @item (possibly involving @optSi)
coreutils.texi:10665: @itemx must follow @item
coreutils.texi:10717: @itemx must follow @item (possibly involving @filesZeroFromOption)
coreutils.texi:10775: @itemx must follow @item (possibly involving @optSi)
coreutils.texi:10794: @itemx must follow @item
coreutils.texi:10800: @itemx must follow @item
coreutils.texi:10810: @itemx must follow @item
coreutils.texi:10953: @itemx must follow @item
coreutils.texi:13776: @itemx must follow @item
coreutils.texi:13815: @itemx must follow @item
coreutils.texi:14997: warning: @itemx should not begin @table
coreutils.texi:15004: @itemx must follow @item
coreutils.texi:15664: warning: @itemx should not begin @table
coreutils.texi:9792: warning: node next `chown invocation' in menu `touch invocation' and in sectioning `chgrp invocation' differ
coreutils.texi:9792: warning: node `chmod invocation' is prev for `chown invocation' in menu but not in sectioning
coreutils.texi:10010: warning: node `chown invocation' is prev for `chgrp invocation' in sectioning but not in menu
coreutils.texi:10133: warning: node next `chmod invocation' in menu `chown invocation' and in sectioning `touch invocation' differ
coreutils.texi:10233: warning: node prev `touch invocation' in menu `chown invocation' and in sectioning `chmod invocation' differ
make[2]: *** [Makefile:1442: coreutils.info] Error 1
make[2]: Leaving directory '/home/jsteward/Work/blackberry/playbook-dev-tools/work/coreutils-8.13/doc'
make[1]: *** [Makefile:1473: all-recursive] Error 1
make[1]: Leaving directory '/home/jsteward/Work/blackberry/playbook-dev-tools/work/coreutils-8.13'
make: *** [Makefile:1428: all] Error 2

Also, after a component's failed build, can build.sh preserve the work already done (like bootstraping gcc) last time? It's annoying to compile gcc again because of coreutils's failure.

KireinaHoro commented 7 years ago

For system information, I'm doing the compile on Arch Linux x86_64 (working out that the sdk requires lib32-{zlib,glibc} did take some time :/ ). texinfo is 6.3-1 as is packaged by the system.

mordak commented 7 years ago

Hmm.. This isn't coreutils failing to build, this is the documentation not generating correctly, which is causing make to exit with an error. My Ubuntu build machine has coreutils 5.2 (and OS X is still shipping with coreutils 4.8).

This looks a bit like coreutils bug 11828 and OpenWRT had a similar bug building gcc. Newer texinfo is more strict about syntax / ordering. Their solution was to just disable making the info documentation by passing MAKEINFO=missing to the configure script. I have edited my bootstrap/coreutils/build.sh to append MAKEINFO=missing to the end of the configure line, but it doesn't seem to have any effect here (at least the output is the same either way). May work for you.

If you can make coreutils skip building the info files then I will happily take a PR. Alternately, newer versions of coreutils may have fixed info files so newer texinfo doesn't complain. I don't have an Arch machine around to mess with though.

You do not have to build everything every time. If you just want to build coreutils, you can just

cd bootstrap/coreutils
./build.sh 

And it will just build that package. This is documented in the README.md under the 'Tips' header.

KireinaHoro commented 7 years ago

I've worked around this, but by an extremely ugly way.

When it's compiling coreutils, Ctrl-Z and then edit coreutils.texi, replacing all @itemx with @item. Of course this can be achieved by making a patch.

mordak commented 7 years ago

I suppose this is one way to do it - I am glad you got it working.

It should be doable to just make a patch for coreutils.texi, or insert a sed step after unpacking to do it automatically. I'll have a look and see. Thanks!