Tobias Geerinckx-Rice writes:
Toggle quote (45 lines)
> 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
>> `which ghc`
>> I created a one line hello world program:
>> 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
>> 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
fatal error: linux/errno.h: No such file or directory
26 | # include <linux/errno.h>
`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`
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