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
?
Your comment

This issue is archived.

To comment on this conversation send an email to 34850@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 34850
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch