Tobias Geerinckx-Rice writes:
> mikadoZero, > > mikadoZero wrote: >> `guix describe` >> guix fd4c7a0 >> repository URL: https://git.savannah.gnu.org/git/guix.git >> branch: master >> commit: fd4c7a098a508c1de7a8513c0f3d88d5a0df12e7 >> >> I have ghc in my system configuration file. I have just done a pull >> and >> reconfigure. >> >> `which ghc` >> /run/current-system/profile/bin/ghc >> >> I created a one line hello world program: >> >> ```haskell >> main = putStrLn "hello, world" >> ``` >> >> Then I tried to compile it with ghc. I get this error. >> >> `ghc Main` [1 of 1] Compiling Main >> ( Main.hs, Main.o ) >> gcc: error trying to exec 'as': execvp: No such file or directory >> `gcc' failed in phase `Assembler'. (Exit code: 1) >> >> I have tested compiling the same hello world program with the same >> ghc >> command and it works fine on a none Guix System. > > Does the other system have ‘as’ installed? Install the > ‘gcc-toolchain’ package that provides it and try again. > > Usually, this kind of error means that ghc needs to be patched to > invoke ‘as’ from an absolute file name instead of searching > $PATH. There may have been good reasons not to do this (such as > closure size), or it might be an oversight. > > Kind regards, > > T G-R Thank you for the suggestion to install `gcc-toolchain`. It addresses that error. The next error I ran into was: [1 of 1] Compiling Main ( Main.hs, Main.o ) Linking Main ... In file included from /gnu/store/h90vnqw0nwd0hhm1l5dgxsdrigddfmq4-glibc-2.28/include /errno.h:28:0: error: 0, from /gnu/store/8v1sn5ns7r5n02aip0b0ypyyzb2y1i1a-ghc-8.4.3/lib/ ghc-8.4.3/include/rts/OSThreads.h:28, from /gnu/store/8v1sn5ns7r5n02aip0b0ypyyzb2y1i1a-ghc-8.4.3/lib/ ghc-8.4.3/include/Rts.h:168, from /tmp/ghc29485_0/ghc_4.c:1: /gnu/store/h90vnqw0nwd0hhm1l5dgxsdrigddfmq4-glibc-2.28/include/bits/errno.h:26:26: e rror: fatal error: linux/errno.h: No such file or directory | 26 | # include <linux/errno.h> | ^ compilation terminated. `gcc' failed in phase `C Compiler'. (Exit code: 1) First I tried adding glibc to my system configuration and reconfiguration. That did not work. This is what got it to work. * Create a user manifest that includes ghc, gcc-toolchain, glibc * Run `guix package --manifest=manifest.scm` * Add exports from package output to .zprofile * `source .zprofile` # Questions I used package search to search for `as`. I could not find it. Thanks to the tip from Tobias Geerinckx-Rice I know it is in `gcc-toolchain`. But when I look at `gcc-toolchain` there is no mention of `as` the program in the synopsis, description or dependencies. Is there a better way to search for a program that is part of a larger package like this? ghc, gcc-toolchain and glibc needed to be in a user manifest. When does a package need to be in a user manifest for it to work? gcc-toolchain and glibc in a user manifest where required as dependencies for ghc. Should this be noted in the ghc package description?
