wanting to verify that a toolchain should be entirely self-contained

Ralf Corsepius ralf.corsepius@rtems.org
Wed Jul 28 15:04:00 GMT 2010


On 07/28/2010 04:35 PM, Robert P. J. Day wrote:
>
>    here's a question for which i'm pretty sure i know the answer, but i
> need to be absolutely sure.
>
>    i'm trying to cross-compile a downloaded tarball (the toolchain was
> downloaded from a vendor), and the instructions for cross-compiling
> were simply to
>
>    $ make CC=arm-...-gcc LD=arm-...-ld
>
> which is pretty standard.

Well, though this is pretty common, it's not "standard" by any means

Actually, it often is "simply plain wrong" ;)

>  but the cross compile failed almost
> immediately, complaining about a missing "curses.h" file.
>
>    the software compiles fine natively on my ubuntu 10.04 system,
> because i have all the curses-related packages installed.  but if i'm
> trying to cross-compile, is it not the responsibility of the
> *toolchain* to supply all necessary standard header files?
Define "standard" ;)

AFAICT, curses.h is not part of POSIX or similar.

>    as soon as i got that error, i checked where i installed the
> toolchain and noticed immediately that there was no curses.h file, and
> mentioned that.
>
>    someone else claimed that what i really needed to do was install the
> toolchain at /opt rather than elsewhere because the README claimed
> that the toolchain wasn't relocatable.  but i can't see how that's
> relevant.
Correct, this remark is likely nonsense and is almost for sure not 
related to your "curses.h" issue.

>    if i'm trying to cross-compile, and a C file includes a header file,
> and the toolchain doesn't supply that header file, shouldn't i expect
> the build to fail?
Letting building a package fail if it doesn't find a requirement (e.g. 
header, library, ...) is common practice - You'd have to talk to your 
package's upstream. Likely they are not aware about curses not being 
part of many toolchains.

>  i certainly don't expect the cross compiler to
> wander off, looking for header files elsewhere
This would certainly fail somewhere and is likely not helpful.

> so my position is that
> that toolchain simply isn't capable of compiling anything that
> requires curses capability because it doesn't provide a curses.h file.
Not quite. Likely you are facing a missing package dependency/missing 
requirement.

I.e. are trying to build a package which needs another package installed 
in advance. In your case you likely will have to 
cross-build/cross-package a "curses" implementation before building 
"your package".

Ralf


--
For unsubscribe information see http://sourceware.org/lists.html#faq



More information about the crossgcc mailing list