While trying to build a toolchain with ct-ng 1.5.0,
arm-unknown-linux-uclibcgnueabi target,
I get the following error:
[INFO ] Installing C library headers
[EXTRA] Copying sources to build dir
[EXTRA] Applying configuration
[EXTRA] Building headers
[EXTRA] Installing headers
[ERROR] extra/scripts/unifdef.c:209: error: conflicting types for 'getline'
[ERROR] make[2]: *** [extra/scripts/unifdef] Error 1
[ERROR] Build failed in step 'Installing C library headers'
The following patch solves the problem.
(It's a backport of this uClibc commit:
http://git.uclibc.org/uClibc/commit/?id=49e81cada73616864b9b31df0aeb6961c30f5a6e
)
[--SNIP from another mail--]
AFAIK this is a problem since glibc 2.10.
Add config option to build wtarget code with THUMB interworking.
This is used to build the C library as well as all other code
that runs on the target.
The newlib "team" rolls new releases about once a year (december).
This is quite a long time between releases, in case code was fixed.
So, allow user to use a CVS snapshot to benefit early from fixes
and enhancements to newlib.
Some projects' module (eg. newlib) are checked-out into a sudirectory
rather than into their own directory. Handle this case in the CT_GetCVS
function.
newlib handles the build/host/target a bit differently as one would expect:
build : not used
host : the nachine that builds newlib
target : the machine on which newlib will run
Some patchsets have superfluous members in their names (eg. the ones coming
from Gentoo), so it can come in handy to pass a sed RE to strip them out of
the final patch name.
Also add a 'fake' mode, where the command will only be printed and not
executed, so we can check beforehand if the rename will be OK.
Bizarely enough, binutils-2.18 fails to build when CONFIG_SHELL is set
to /bin/bash (although it has code to recognise bash and act accordingly).
Waht is really strange is that it does build when CONFIG_SHELL is set
to /bin/sh, *although* /bin/sh is a symlink to /bin/bash. WTF?!?!
Split the has_or_abort function in two:
- one that checks if the tool if found,
- one that calls the above check, and aborts if not found
The rational behind this is to be able to check for a tool
and if not found, fallback to using our bundled version,
should the need arise (and I get time).