#6086: Cross compilation fails using system linker for other architecture binaries ----------------------------------------------+--------------------------- Reporter: mtjm | Owner: Type: bug | Status: closed Priority: high | Milestone: 7.8.4 Component: Build System | Version: 7.8.3 Resolution: fixed | Keywords: Operating System: Linux | Architecture: arm Type of failure: Building GHC failed | Difficulty: Unknown Test Case: | Blocked By: Blocking: 9421 | Related Tickets: Differential Revisions: | ----------------------------------------------+--------------------------- Comment (by cetu86): Inside your cross toolchain there is a directory that is literally called "sysroot". Inside it you'll find your standard unix root. Looks like this {{{ . └── arm-unknown-linux-gnueabi ├── arm-unknown-linux-gnueabi │ └── sysroot │ ├── bin │ ├── etc │ ├── include │ ├── lib │ ├── sbin │ ├── share │ ├── usr │ │ ├── bin │ │ ├── include --> ncurses.h, curses.h go here │ │ ├── lib --> libncurses.a goes here │ └── var }}} If you use ".../sysroot/usr" as prefix everything should go fine. Except ncurses puts its header files in a subdirectory "include/ncurses" but ghc includes the header file as {{{ #include <ncurses.h> }}} not as {{{ #include <ncurses/ncurses.h> }}} What it did was move all files in the ncurses directory one up and create a symlink for compatibility. (in case I'd later install something that expects ncurses in its original place) Like this: {{{ cd sysroot/usr/inlude/ncurses mv * .. cd .. rmdir ncurses ln -s . ncurses }}} Now I have {{{ daniel@inferno:~/x-tools/arm-unknown-linux-gnueabi/arm-unknown-linux- gnueabi/sysroot/usr/include/ > ls -l ncurs* curs* -rw-r--r-- 1 daniel users 6590 9. Sep 12:38 cursesapp.h -rw-r--r-- 1 daniel users 27646 9. Sep 12:38 cursesf.h -rw-r--r-- 1 daniel users 76252 9. Sep 12:38 curses.h -rw-r--r-- 1 daniel users 19518 9. Sep 12:38 cursesm.h -rw-r--r-- 1 daniel users 8489 9. Sep 12:38 cursesp.h -rw-r--r-- 1 daniel users 49280 9. Sep 12:38 cursesw.h -rw-r--r-- 1 daniel users 7312 9. Sep 12:38 cursslk.h lrwxrwxrwx 1 daniel users 1 9. Sep 14:19 ncurses -> . -rw-r--r-- 1 daniel users 3925 9. Sep 12:38 ncurses_dll.h lrwxrwxrwx 1 daniel users 8 9. Sep 12:38 ncurses.h -> curses.h }}} -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/6086#comment:25> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler