Linking stage 2 compiler with non-threaded RTS using Make?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

Linking stage 2 compiler with non-threaded RTS using Make?

Ömer Sinan Ağacan
Anyone know how to link stage 2 with non-threaded RTS using Make build system?
There's a variable GhcThreaded, but setting it "NO" makes no difference, stage 2
compiler is still threaded.

So far the only way I could find is to redirect build system output to a file,
find the step that linked ghc-stage2, repeat that command but without -threaded.
It's really painful as I have to repeat this step after every rebuild.

Any tips?

Thanks,

Ömer
_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
Reply | Threaded
Open this post in threaded view
|

Re: Linking stage 2 compiler with non-threaded RTS using Make?

Brandon Allbery
There are some hidden dependencies, in particular ghci requires GhcThreaded last I checked (and ghci == ghc --interactive, not a separate program that could be linked threaded). You may also have to disable the entire bytecode backend, which would take TH and runghc with it as well as ghci.

On Thu, Jan 9, 2020 at 8:02 AM Ömer Sinan Ağacan <[hidden email]> wrote:
Anyone know how to link stage 2 with non-threaded RTS using Make build system?
There's a variable GhcThreaded, but setting it "NO" makes no difference, stage 2
compiler is still threaded.

So far the only way I could find is to redirect build system output to a file,
find the step that linked ghc-stage2, repeat that command but without -threaded.
It's really painful as I have to repeat this step after every rebuild.

Any tips?

Thanks,

Ömer
_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


--
brandon s allbery kf8nh

_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
Reply | Threaded
Open this post in threaded view
|

Re: Linking stage 2 compiler with non-threaded RTS using Make?

Ömer Sinan Ağacan
Btw I just realized that this also makes ticky-ticky profiling harder becuase as
far as I know ticky profiling not compatible with threaded runtime. I need to
try ticky profiling for !1747 and I'm currently painfully manually linking the
stage 2 executable using the method I described in my original email.

Ömer

Brandon Allbery <[hidden email]>, 9 Oca 2020 Per, 18:10 tarihinde
şunu yazdı:

>
> There are some hidden dependencies, in particular ghci requires GhcThreaded last I checked (and ghci == ghc --interactive, not a separate program that could be linked threaded). You may also have to disable the entire bytecode backend, which would take TH and runghc with it as well as ghci.
>
> On Thu, Jan 9, 2020 at 8:02 AM Ömer Sinan Ağacan <[hidden email]> wrote:
>>
>> Anyone know how to link stage 2 with non-threaded RTS using Make build system?
>> There's a variable GhcThreaded, but setting it "NO" makes no difference, stage 2
>> compiler is still threaded.
>>
>> So far the only way I could find is to redirect build system output to a file,
>> find the step that linked ghc-stage2, repeat that command but without -threaded.
>> It's really painful as I have to repeat this step after every rebuild.
>>
>> Any tips?
>>
>> Thanks,
>>
>> Ömer
>> _______________________________________________
>> ghc-devs mailing list
>> [hidden email]
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
>
>
>
> --
> brandon s allbery kf8nh
> [hidden email]
_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
Reply | Threaded
Open this post in threaded view
|

Re: Linking stage 2 compiler with non-threaded RTS using Make?

Ömer Sinan Ağacan
I just realized that the wiki page for ticky profiling [1] suggests using
`GhcThreaded = NO` becuase ticky profiling is not compatible with threaded
runtime.

I think this suggests that `GhcThreaded = NO` used to work. It doesn't work
anymore.

Ömer

[1]: https://gitlab.haskell.org/ghc/ghc/wikis/debugging/ticky-ticky

Ömer Sinan Ağacan <[hidden email]>, 15 Oca 2020 Çar, 14:11
tarihinde şunu yazdı:

>
> Btw I just realized that this also makes ticky-ticky profiling harder becuase as
> far as I know ticky profiling not compatible with threaded runtime. I need to
> try ticky profiling for !1747 and I'm currently painfully manually linking the
> stage 2 executable using the method I described in my original email.
>
> Ömer
>
> Brandon Allbery <[hidden email]>, 9 Oca 2020 Per, 18:10 tarihinde
> şunu yazdı:
> >
> > There are some hidden dependencies, in particular ghci requires GhcThreaded last I checked (and ghci == ghc --interactive, not a separate program that could be linked threaded). You may also have to disable the entire bytecode backend, which would take TH and runghc with it as well as ghci.
> >
> > On Thu, Jan 9, 2020 at 8:02 AM Ömer Sinan Ağacan <[hidden email]> wrote:
> >>
> >> Anyone know how to link stage 2 with non-threaded RTS using Make build system?
> >> There's a variable GhcThreaded, but setting it "NO" makes no difference, stage 2
> >> compiler is still threaded.
> >>
> >> So far the only way I could find is to redirect build system output to a file,
> >> find the step that linked ghc-stage2, repeat that command but without -threaded.
> >> It's really painful as I have to repeat this step after every rebuild.
> >>
> >> Any tips?
> >>
> >> Thanks,
> >>
> >> Ömer
> >> _______________________________________________
> >> ghc-devs mailing list
> >> [hidden email]
> >> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
> >
> >
> >
> > --
> > brandon s allbery kf8nh
> > [hidden email]
_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
Reply | Threaded
Open this post in threaded view
|

Re: Linking stage 2 compiler with non-threaded RTS using Make?

pho-2
I'm a maintainer of a GHC package in pkgsrc - a package collection
mainly used by NetBSD. Our package has the following patch to ghc/ghc.mk
to work around the problem. The issue is that, while
ghc/ghc-bin.cabal.in has a flag to link against non-threaded RTS, the
build system doesn't propagate GhcThreaded to it:

> --- ghc/ghc.mk.orig 2019-08-25 12:03:36.000000000 +0000
> +++ ghc/ghc.mk
> @@ -61,7 +61,13 @@ ifeq "$(GhcThreaded)" "YES"
>  # Use threaded RTS with GHCi, so threads don't get blocked at the prompt.
>  ghc_stage2_MORE_HC_OPTS += -threaded
>  ghc_stage3_MORE_HC_OPTS += -threaded
> +else
> +# Opt out from threaded GHC. See ghc-bin.cabal.in
> +ghc_stage2_CONFIGURE_OPTS += -f-threaded
> +ghc_stage3_CONFIGURE_OPTS += -f-threaded
>  endif
> +# Stage-0 compiler isn't guaranteed to have a threaded RTS.
> +ghc_stage1_CONFIGURE_OPTS += -f-threaded
>  
>  ifeq "$(GhcProfiled)" "YES"
>  ghc_stage2_PROGRAM_WAY = p


On 2020-01-15 20:16, Ömer Sinan Ağacan wrote:

> I just realized that the wiki page for ticky profiling [1] suggests using
> `GhcThreaded = NO` becuase ticky profiling is not compatible with threaded
> runtime.
>
> I think this suggests that `GhcThreaded = NO` used to work. It doesn't work
> anymore.
>
> Ömer
>
> [1]: https://gitlab.haskell.org/ghc/ghc/wikis/debugging/ticky-ticky
>
> Ömer Sinan Ağacan <[hidden email]>, 15 Oca 2020 Çar, 14:11
> tarihinde şunu yazdı:
>>
>> Btw I just realized that this also makes ticky-ticky profiling harder becuase as
>> far as I know ticky profiling not compatible with threaded runtime. I need to
>> try ticky profiling for !1747 and I'm currently painfully manually linking the
>> stage 2 executable using the method I described in my original email.
>>
>> Ömer
>>
>> Brandon Allbery <[hidden email]>, 9 Oca 2020 Per, 18:10 tarihinde
>> şunu yazdı:
>>>
>>> There are some hidden dependencies, in particular ghci requires GhcThreaded last I checked (and ghci == ghc --interactive, not a separate program that could be linked threaded). You may also have to disable the entire bytecode backend, which would take TH and runghc with it as well as ghci.
>>>
>>> On Thu, Jan 9, 2020 at 8:02 AM Ömer Sinan Ağacan <[hidden email]> wrote:
>>>>
>>>> Anyone know how to link stage 2 with non-threaded RTS using Make build system?
>>>> There's a variable GhcThreaded, but setting it "NO" makes no difference, stage 2
>>>> compiler is still threaded.
>>>>
>>>> So far the only way I could find is to redirect build system output to a file,
>>>> find the step that linked ghc-stage2, repeat that command but without -threaded.
>>>> It's really painful as I have to repeat this step after every rebuild.
>>>>
>>>> Any tips?
>>>>
>>>> Thanks,
>>>>
>>>> Ömer
>>>> _______________________________________________
>>>> ghc-devs mailing list
>>>> [hidden email]
>>>> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
>>>
>>>
>>>
>>> --
>>> brandon s allbery kf8nh
>>> [hidden email]
> _______________________________________________
> ghc-devs mailing list
> [hidden email]
> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
>
_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
Reply | Threaded
Open this post in threaded view
|

Re: Linking stage 2 compiler with non-threaded RTS using Make?

Ben Gamari-3
PHO <[hidden email]> writes:

> I'm a maintainer of a GHC package in pkgsrc - a package collection
> mainly used by NetBSD. Our package has the following patch to ghc/ghc.mk
> to work around the problem. The issue is that, while
> ghc/ghc-bin.cabal.in has a flag to link against non-threaded RTS, the
> build system doesn't propagate GhcThreaded to it:
>
Thanks PHO!

I have opened !2474 to merge this patch.

Cheers,

- Ben


_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

signature.asc (497 bytes) Download Attachment