Messages in this thread | | | Date | Tue, 29 Apr 2008 18:20:57 +0100 | From | Al Viro <> | Subject | Re: cross-compiling on OS X, make menuconfig fails |
| |
On Tue, Apr 29, 2008 at 06:45:35PM +0200, Sam Ravnborg wrote: > On Tue, Apr 29, 2008 at 10:07:43AM -0500, Timur Tabi wrote: > > Tony Breeds wrote: > > > > > On most linux systems echo supports c-syle escapes with "-e". I'm > > > guessing which ever echo you're getting dosesn't do that. > > > > Yes, that is my problem. > > > > > I think the best fix is to ensure you're getting bash as your shell. > > > > The script starts off with this line: > > > > #!/bin/sh > > > > Doesn't that mean that it should be interpreted by sh and not bash? > > > > > A nasty hack would be to make check-lxdialog.sh do something like: > > > (echo ' #include CURSES_LOC';echo 'main() {}') | gcc '-DCURSES_LOC=<ncurses.h>' -DLOCALE -DKBUILD_NO_NLS -lncurses -xc - -o .lxdialog.tmp > > > > This works. Do you think if I posted a patch that makes this change, it will be > > accepted? > > Yes.
Good grief, folks...
check() { $cc -xc - -o $tmp 2>/dev/null <<'EOF' #include CURSES_LOC main() {} EOF ... if you insist on feeding these two lines to gcc stdin. Nasty hack, indeed...
<<'word' [lines] word
redirects stdin and feeds lines to it verbatim. Same without quotes will do the same, but do expansion in the text first.
It's been there since the original Bourne's shell in v7 and it's a bloody standard way to redirect from text...
| |