ghc compiling error

  • Done
  • quality assurance status badge
Details
3 participants
  • Tobias Geerinckx-Rice
  • mikadoZero
  • Simon Tournier
Owner
unassigned
Submitted by
mikadoZero
Severity
normal
M
M
mikadoZero wrote on 13 Mar 2019 23:30
(address . bug-guix@gnu.org)
va0ms8zc.fsf@yandex.com
`guix describe`
guix fd4c7a0
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.
T
T
Tobias Geerinckx-Rice wrote on 13 Mar 2019 23:48
(name . mikadoZero)(address . mikadozero@yandex.com)(address . 34850@debbugs.gnu.org)
87tvg64chq.fsf@nckx
mikadoZero,

mikadoZero wrote:
Toggle quote (31 lines)
> `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
M
M
mikadoZero wrote on 14 Mar 2019 02:27
(name . Tobias Geerinckx-Rice)(address . me@tobias.gr)(address . 34850@debbugs.gnu.org)
tvg6s0rp.fsf@yandex.com
Tobias Geerinckx-Rice writes:

Toggle quote (45 lines)
> 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?
S
S
Simon Tournier wrote on 22 Sep 2023 18:09
(name . mikadoZero)(address . mikadozero@yandex.com)
87bkdu8a0e.fsf@gmail.com
Hi,

It is about this old bug #34850 [1].



On Wed, 13 Mar 2019 at 21:27, mikadoZero <mikadozero@yandex.com> wrote:

Toggle quote (6 lines)
>>> `guix describe`
>>> guix fd4c7a0
>>> repository URL: https://git.savannah.gnu.org/git/guix.git
>>> branch: master
>>> commit: fd4c7a098a508c1de7a8513c0f3d88d5a0df12e7

[...]

Toggle quote (11 lines)
>>> ```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)

Using recent Guix, I get:

Toggle snippet (18 lines)
$ guix describe
Generation 28 Sep 06 2023 14:54:50 (current)
guix 6113e05
repository URL: https://git.savannah.gnu.org/git/guix.git
commit: 6113e0529d61df7425f64e30a6bf77f7cfdfe5a5

$ echo 'main = putStrLn "hello, world"' > foo.hs
$ cat foo.hs
main = putStrLn "hello, world"

$ guix shell -C ghc gcc-toolchain -- ghc foo.hs
[1 of 1] Compiling Main ( foo.hs, foo.o )
Linking foo ...

$ ./foo
hello, world

Can we close this bug report? Do you still have that issue?

Cheers,
simon
S
S
Simon Tournier wrote on 22 Sep 2023 18:47
(name . mikadoZero)(address . mikadozero@yandex.com)
87sf766tos.fsf@gmail.com
Re,

On Fri, 22 Sep 2023 at 18:09, Simon Tournier <zimon.toutoune@gmail.com> wrote:

Toggle quote (2 lines)
> Can we close this bug report?

I get back:

Toggle snippet (5 lines)
Address not found
Your message wasn't delivered to mikadozero@yandex.com because the address couldn't be found or is unable to receive email.
The response from the remote server was:

Therefore, closing.

Cheers,
simon
Closed
?