<div dir="ltr">ncurses is the only library.<div><br></div><div>Not sure how I managed to configure the crosscompiler to produce static binaries, maybe it was an option which I had to pass to GHC. In any case, here's a docker image which includes instructions how I build the cross compiler: <a href="https://github.com/wereHamster/onion-omega/tree/master/xt">https://github.com/wereHamster/onion-omega/tree/master/xt</a>, and here's a docker image which builds on top of that to compile a cross-compiling GHC: <a href="https://github.com/wereHamster/onion-omega/tree/master/ghc">https://github.com/wereHamster/onion-omega/tree/master/ghc</a>.</div><div><br></div><br><div class="gmail_quote"><div dir="ltr">On Tue, Apr 12, 2016 at 8:35 PM Patrick Pelletier <<a href="mailto:code@funwithsoftware.org">code@funwithsoftware.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 4/10/16 1:03 PM, Tomas Carnecky wrote:<br>
> crosstools-ng can be configured so that the compiler always produces a<br>
> static build (run ct-ng menuconfig, and look through the options. The<br>
> UI should be familiar if you've ever used the Linux kernel menuconfig<br>
> facility).<br>
<br>
I decided to try your approach, but I'm running into a few problems.<br>
<br>
First, where in the UI is the option to make the compiler produce a<br>
static build?  Under "Toolchain Options", there is an option to link the<br>
toolchain itself statically, but that's not the same thing. I've gone<br>
through all the menus, and can't find anything else about static linking.<br>
<br>
Second, what libraries did you have to build for the target before you<br>
could get ghc to compile?  I've been trying to build the ghc<br>
cross-compiler, but ghc seems to insist on having ncurses on the<br>
target.  So now I've gone down the rabbit hole of building ncurses for<br>
the target.  Currently the build of ncurses is failing with:<br>
<br>
x86_64-unknown-linux-musl-gcc -DHAVE_CONFIG_H -I. -I../include -DNDEBUG<br>
-O2 --param max-inline-insns-single=1200 -c ../ncurses/lib_gen.c -o<br>
../objects/lib_gen.o<br>
In file included from ./curses.priv.h:325:0,<br>
                  from ../ncurses/lib_gen.c:19:<br>
_20591.c:843:15: error: expected ')' before 'int'<br>
../include/curses.h:1631:56: note: in definition of macro 'mouse_trafo'<br>
  #define mouse_trafo(y,x,to_screen) wmouse_trafo(stdscr,y,x,to_screen)<br>
                                                         ^<br>
make[1]: *** [../objects/lib_gen.o] Error 1<br>
make[1]: Leaving directory `/home/ppelletier/src/ncurses-6.0/ncurses'<br>
make: *** [all] Error 2<br>
<br>
I'm sure I can figure it out, but I'm worried about how many more<br>
libraries might be needed in addition to ncurses.  Did you just have to<br>
slog through all of this, or am I doing something wrong?<br>
<br>
Thanks,<br>
<br>
--Patrick<br>
<br>
</blockquote></div></div>