Re: cross-compiling on OS X, make menuconfig fails

From: Roland Kuhn
Date: Mon Apr 28 2008 - 15:04:18 EST


Hi Timur!

On 28 Apr 2008, at 03:34, timur@xxxxxxxxxxxxx wrote:

I'm trying to cross-compile a PowerPC kernel from an Intel OS X system. I've almost got it working, except "make menuconfig" dies. It says I'm missing ncurses:

*** Unable to find the ncurses libraries or the
*** required header files.
*** 'make menuconfig' requires the ncurses libraries.

However, I do not think that ncurses is the real problem, since I do have ncurses installed. I think the real problem is that the check- lxdialog.sh is trying to execute this code:

echo -e ' #include CURSES_LOC \n main() {}' | gcc '- DCURSES_LOC=<ncurses.h>' -DLOCALE -DKBUILD_NO_NLS -lncurses -xc - - o .lxdialog.tmp

And the compiler is failing with this output:

<stdin>:1: error: syntax error before ‘-’ token
<stdin>:1: error: stray ‘#’ in program

So something strange is going on. Has anyone been able to cross- compile from an Intel Mac running OS X?

For some strange reason Apple decided to change 'echo':

/bin/bash -c 'echo -e ...' does the right thing
/bin/sh -c 'echo -e ...' keeps the "-e" in the output but interprets the \n
/bin/echo -e ... does no interpretation and even keeps the \n

I'd recommend installing the coreutils-default package from fink, then you get a sane /sw/bin/echo.

Side-note on sanity: ISTR that POSIX defines echo in this (/bin/echo) strange way, urging people to use printf instead.

Ciao,
Roland

--
Any society that would give up a little liberty to gain a little
security will deserve neither and lose both. - Benjamin Franklin
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GS/CS/M/MU d-(++) s:+ a-> C+++ UL++++ P+++ L+++ E(+) W+ !N K- w--- M+ ! V Y+
PGP++ t+(++) 5 R+ tv-- b+ DI++ e++++ h---- y+++
------END GEEK CODE BLOCK------



Attachment: PGP.sig
Description: This is a digitally signed message part