diff mbox series

[RFC,3/5] ninja: build modified version with GNU Make jobserver support

Message ID 20230828124834.376779-3-martin@geanix.com
State New
Headers show
Series [RFC,1/5] classes: jobserver: support gnu make fifo jobserver | expand

Commit Message

Martin Hundebøll Aug. 28, 2023, 12:48 p.m. UTC
Ninja doesn't (yet) support the GNU Make jobserver out of the box, but
there is a pull request adding that support[1]. Switch the SRC_URI and
SRCREV to point at the source of that pull request, to make ninja play
nicely together with the recently added jobserver class.

Signed-off-by: Martin Hundebøll <martin@geanix.com>
---
 .../ninja/{ninja_1.11.1.bb => ninja_1.12.0.bb}                | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
 rename meta/recipes-devtools/ninja/{ninja_1.11.1.bb => ninja_1.12.0.bb} (84%)

Comments

Alexander Kanavin Aug. 28, 2023, 12:57 p.m. UTC | #1
Thanks, make/ninja jobserver is something we've been talking about
since forever, and it's great to see actual code.

I suppose the biggest obstacle is that ninja support hasn't yet landed
upstream, and I'd like to ensure it does. Also, a link to the pull
request is missing? :)

Alex

On Mon, 28 Aug 2023 at 14:48, Martin Hundeb?ll <martin@geanix.com> wrote:
>
> Ninja doesn't (yet) support the GNU Make jobserver out of the box, but
> there is a pull request adding that support[1]. Switch the SRC_URI and
> SRCREV to point at the source of that pull request, to make ninja play
> nicely together with the recently added jobserver class.
>
> Signed-off-by: Martin Hundebøll <martin@geanix.com>
> ---
>  .../ninja/{ninja_1.11.1.bb => ninja_1.12.0.bb}                | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>  rename meta/recipes-devtools/ninja/{ninja_1.11.1.bb => ninja_1.12.0.bb} (84%)
>
> diff --git a/meta/recipes-devtools/ninja/ninja_1.11.1.bb b/meta/recipes-devtools/ninja/ninja_1.12.0.bb
> similarity index 84%
> rename from meta/recipes-devtools/ninja/ninja_1.11.1.bb
> rename to meta/recipes-devtools/ninja/ninja_1.12.0.bb
> index 8e297ec4d4..9abdd40a92 100644
> --- a/meta/recipes-devtools/ninja/ninja_1.11.1.bb
> +++ b/meta/recipes-devtools/ninja/ninja_1.12.0.bb
> @@ -6,9 +6,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a81586a64ad4e476c791cda7e2f2c52e"
>
>  DEPENDS = "re2c-native ninja-native"
>
> -SRCREV = "a524bf3f6bacd1b4ad85d719eed2737d8562f27a"
> +SRCREV = "c9e21dbbc4c746ba397c0f9bec5f65c99f783c08"
>
> -SRC_URI = "git://github.com/ninja-build/ninja.git;branch=release;protocol=https"
> +SRC_URI = "git://github.com/stefanb2/ninja.git;branch=topic-issue-1139-part-3-jobserver-fifo;protocol=https"
>  UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>.*)"
>
>  S = "${WORKDIR}/git"
> --
> 2.41.0
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#186825): https://lists.openembedded.org/g/openembedded-core/message/186825
> Mute This Topic: https://lists.openembedded.org/mt/101009093/1686489
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alex.kanavin@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Martin Hundebøll Aug. 28, 2023, 12:59 p.m. UTC | #2
On Mon, 2023-08-28 at 14:57 +0200, Alexander Kanavin wrote:
> Thanks, make/ninja jobserver is something we've been talking about
> since forever, and it's great to see actual code.
> 
> I suppose the biggest obstacle is that ninja support hasn't yet
> landed
> upstream, and I'd like to ensure it does. Also, a link to the pull
> request is missing? :)

Indeed, upstream seems to ignore the pull request :(

Link references are like attachments: easy to forget... Here it is:
https://github.com/ninja-build/ninja/issues/1139

// Martin

> On Mon, 28 Aug 2023 at 14:48, Martin Hundeb?ll <martin@geanix.com>
> wrote:
> > 
> > Ninja doesn't (yet) support the GNU Make jobserver out of the box,
> > but
> > there is a pull request adding that support[1]. Switch the SRC_URI
> > and
> > SRCREV to point at the source of that pull request, to make ninja
> > play
> > nicely together with the recently added jobserver class.
> > 
> > Signed-off-by: Martin Hundebøll <martin@geanix.com>
> > ---
> >  .../ninja/{ninja_1.11.1.bb => ninja_1.12.0.bb}                | 4
> > ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> >  rename meta/recipes-devtools/ninja/{ninja_1.11.1.bb =>
> > ninja_1.12.0.bb} (84%)
> > 
> > diff --git a/meta/recipes-devtools/ninja/ninja_1.11.1.bb
> > b/meta/recipes-devtools/ninja/ninja_1.12.0.bb
> > similarity index 84%
> > rename from meta/recipes-devtools/ninja/ninja_1.11.1.bb
> > rename to meta/recipes-devtools/ninja/ninja_1.12.0.bb
> > index 8e297ec4d4..9abdd40a92 100644
> > --- a/meta/recipes-devtools/ninja/ninja_1.11.1.bb
> > +++ b/meta/recipes-devtools/ninja/ninja_1.12.0.bb
> > @@ -6,9 +6,9 @@ LIC_FILES_CHKSUM =
> > "file://COPYING;md5=a81586a64ad4e476c791cda7e2f2c52e"
> > 
> >  DEPENDS = "re2c-native ninja-native"
> > 
> > -SRCREV = "a524bf3f6bacd1b4ad85d719eed2737d8562f27a"
> > +SRCREV = "c9e21dbbc4c746ba397c0f9bec5f65c99f783c08"
> > 
> > -SRC_URI = "git://github.com/ninja-
> > build/ninja.git;branch=release;protocol=https"
> > +SRC_URI = "git://github.com/stefanb2/ninja.git;branch=topic-issue-
> > 1139-part-3-jobserver-fifo;protocol=https"
> >  UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>.*)"
> > 
> >  S = "${WORKDIR}/git"
> > --
> > 2.41.0
> > 
> > 
> > -=-=-=-=-=-=-=-=-=-=-=-
> > Links: You receive all messages sent to this group.
> > View/Reply Online (#186825):
> > https://lists.openembedded.org/g/openembedded-core/message/186825
> > Mute This Topic:
> > https://lists.openembedded.org/mt/101009093/1686489
> > Group Owner: openembedded-core+owner@lists.openembedded.org
> > Unsubscribe:
> > https://lists.openembedded.org/g/openembedded-core/unsub [
> > alex.kanavin@gmail.com]
> > -=-=-=-=-=-=-=-=-=-=-=-
> >
Alexander Kanavin Aug. 28, 2023, 1:06 p.m. UTC | #3
If previous PRs have stalled, it may help to open a fresh one, which
you can drive yourself. You can reuse and rebase previous patches by
others as needed.

Alex

On Mon, 28 Aug 2023 at 14:59, Martin Hundebøll <martin@geanix.com> wrote:
>
> On Mon, 2023-08-28 at 14:57 +0200, Alexander Kanavin wrote:
> > Thanks, make/ninja jobserver is something we've been talking about
> > since forever, and it's great to see actual code.
> >
> > I suppose the biggest obstacle is that ninja support hasn't yet
> > landed
> > upstream, and I'd like to ensure it does. Also, a link to the pull
> > request is missing? :)
>
> Indeed, upstream seems to ignore the pull request :(
>
> Link references are like attachments: easy to forget... Here it is:
> https://github.com/ninja-build/ninja/issues/1139
>
> // Martin
>
> > On Mon, 28 Aug 2023 at 14:48, Martin Hundeb?ll <martin@geanix.com>
> > wrote:
> > >
> > > Ninja doesn't (yet) support the GNU Make jobserver out of the box,
> > > but
> > > there is a pull request adding that support[1]. Switch the SRC_URI
> > > and
> > > SRCREV to point at the source of that pull request, to make ninja
> > > play
> > > nicely together with the recently added jobserver class.
> > >
> > > Signed-off-by: Martin Hundebøll <martin@geanix.com>
> > > ---
> > >  .../ninja/{ninja_1.11.1.bb => ninja_1.12.0.bb}                | 4
> > > ++--
> > >  1 file changed, 2 insertions(+), 2 deletions(-)
> > >  rename meta/recipes-devtools/ninja/{ninja_1.11.1.bb =>
> > > ninja_1.12.0.bb} (84%)
> > >
> > > diff --git a/meta/recipes-devtools/ninja/ninja_1.11.1.bb
> > > b/meta/recipes-devtools/ninja/ninja_1.12.0.bb
> > > similarity index 84%
> > > rename from meta/recipes-devtools/ninja/ninja_1.11.1.bb
> > > rename to meta/recipes-devtools/ninja/ninja_1.12.0.bb
> > > index 8e297ec4d4..9abdd40a92 100644
> > > --- a/meta/recipes-devtools/ninja/ninja_1.11.1.bb
> > > +++ b/meta/recipes-devtools/ninja/ninja_1.12.0.bb
> > > @@ -6,9 +6,9 @@ LIC_FILES_CHKSUM =
> > > "file://COPYING;md5=a81586a64ad4e476c791cda7e2f2c52e"
> > >
> > >  DEPENDS = "re2c-native ninja-native"
> > >
> > > -SRCREV = "a524bf3f6bacd1b4ad85d719eed2737d8562f27a"
> > > +SRCREV = "c9e21dbbc4c746ba397c0f9bec5f65c99f783c08"
> > >
> > > -SRC_URI = "git://github.com/ninja-
> > > build/ninja.git;branch=release;protocol=https"
> > > +SRC_URI = "git://github.com/stefanb2/ninja.git;branch=topic-issue-
> > > 1139-part-3-jobserver-fifo;protocol=https"
> > >  UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>.*)"
> > >
> > >  S = "${WORKDIR}/git"
> > > --
> > > 2.41.0
> > >
> > >
> > > -=-=-=-=-=-=-=-=-=-=-=-
> > > Links: You receive all messages sent to this group.
> > > View/Reply Online (#186825):
> > > https://lists.openembedded.org/g/openembedded-core/message/186825
> > > Mute This Topic:
> > > https://lists.openembedded.org/mt/101009093/1686489
> > > Group Owner: openembedded-core+owner@lists.openembedded.org
> > > Unsubscribe:
> > > https://lists.openembedded.org/g/openembedded-core/unsub [
> > > alex.kanavin@gmail.com]
> > > -=-=-=-=-=-=-=-=-=-=-=-
> > >
>
Khem Raj Aug. 28, 2023, 5:15 p.m. UTC | #4
On Mon, Aug 28, 2023 at 5:48 AM Martin Hundeb?ll <martin@geanix.com> wrote:
>
> Ninja doesn't (yet) support the GNU Make jobserver out of the box, but
> there is a pull request adding that support[1]. Switch the SRC_URI and
> SRCREV to point at the source of that pull request, to make ninja play
> nicely together with the recently added jobserver class.
>
> Signed-off-by: Martin Hundebøll <martin@geanix.com>
> ---
>  .../ninja/{ninja_1.11.1.bb => ninja_1.12.0.bb}                | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>  rename meta/recipes-devtools/ninja/{ninja_1.11.1.bb => ninja_1.12.0.bb} (84%)
>
> diff --git a/meta/recipes-devtools/ninja/ninja_1.11.1.bb b/meta/recipes-devtools/ninja/ninja_1.12.0.bb
> similarity index 84%
> rename from meta/recipes-devtools/ninja/ninja_1.11.1.bb
> rename to meta/recipes-devtools/ninja/ninja_1.12.0.bb
> index 8e297ec4d4..9abdd40a92 100644
> --- a/meta/recipes-devtools/ninja/ninja_1.11.1.bb
> +++ b/meta/recipes-devtools/ninja/ninja_1.12.0.bb
> @@ -6,9 +6,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a81586a64ad4e476c791cda7e2f2c52e"
>
>  DEPENDS = "re2c-native ninja-native"
>
> -SRCREV = "a524bf3f6bacd1b4ad85d719eed2737d8562f27a"
> +SRCREV = "c9e21dbbc4c746ba397c0f9bec5f65c99f783c08"
>
> -SRC_URI = "git://github.com/ninja-build/ninja.git;branch=release;protocol=https"
> +SRC_URI = "git://github.com/stefanb2/ninja.git;branch=topic-issue-1139-part-3-jobserver-fifo;protocol=https"

This is a little concerning, as we are pointing to a fork here and
quite a lot depend on ninja now
a days. so I wonder whats the status of the patches and likelyhood of
them going upstream
in anycase, we should pick the patches instead of switching SRC_URI

>  UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>.*)"
>
>  S = "${WORKDIR}/git"
> --
> 2.41.0
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#186825): https://lists.openembedded.org/g/openembedded-core/message/186825
> Mute This Topic: https://lists.openembedded.org/mt/101009093/1997914
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [raj.khem@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Martin Hundebøll Aug. 28, 2023, 5:31 p.m. UTC | #5
Aug 28, 2023 19:16:28 Khem Raj <raj.khem@gmail.com>:

> On Mon, Aug 28, 2023 at 5:48 AM Martin Hundeb?ll <martin@geanix.com> wrote:
>>
>> Ninja doesn't (yet) support the GNU Make jobserver out of the box, but
>> there is a pull request adding that support[1]. Switch the SRC_URI and
>> SRCREV to point at the source of that pull request, to make ninja play
>> nicely together with the recently added jobserver class.
>>
>> Signed-off-by: Martin Hundebøll <martin@geanix.com>
>> ---
>> .../ninja/{ninja_1.11.1.bb => ninja_1.12.0.bb}                | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>> rename meta/recipes-devtools/ninja/{ninja_1.11.1.bb => ninja_1.12.0.bb} (84%)
>>
>> diff --git a/meta/recipes-devtools/ninja/ninja_1.11.1.bb b/meta/recipes-devtools/ninja/ninja_1.12.0.bb
>> similarity index 84%
>> rename from meta/recipes-devtools/ninja/ninja_1.11.1.bb
>> rename to meta/recipes-devtools/ninja/ninja_1.12.0.bb
>> index 8e297ec4d4..9abdd40a92 100644
>> --- a/meta/recipes-devtools/ninja/ninja_1.11.1.bb
>> +++ b/meta/recipes-devtools/ninja/ninja_1.12.0.bb
>> @@ -6,9 +6,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a81586a64ad4e476c791cda7e2f2c52e"
>>
>> DEPENDS = "re2c-native ninja-native"
>>
>> -SRCREV = "a524bf3f6bacd1b4ad85d719eed2737d8562f27a"
>> +SRCREV = "c9e21dbbc4c746ba397c0f9bec5f65c99f783c08"
>>
>> -SRC_URI = "git://github.com/ninja-build/ninja.git;branch=release;protocol=https"
>> +SRC_URI = "git://github.com/stefanb2/ninja.git;branch=topic-issue-1139-part-3-jobserver-fifo;protocol=https"
>
> This is a little concerning, as we are pointing to a fork here and
> quite a lot depend on ninja now
> a days. so I wonder whats the status of the patches and likelyhood of
> them going upstream
> in anycase, we should pick the patches instead of switching SRC_URI

Yes, I agree that we shouldn't change uri to a fork; hence the RFC... Maybe I should try to put some pressure on ninja upstream to consider the pull request...

I can look into whether a separate patch is feasible...

>> UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>.*)"
>>
>> S = "${WORKDIR}/git"
>> --
>> 2.41.0
>>
>>
>> -=-=-=-=-=-=-=-=-=-=-=-
>> Links: You receive all messages sent to this group.
>> View/Reply Online (#186825): https://lists.openembedded.org/g/openembedded-core/message/186825
>> Mute This Topic: https://lists.openembedded.org/mt/101009093/1997914
>> Group Owner: openembedded-core+owner@lists.openembedded.org
>> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [raj.khem@gmail.com]
>> -=-=-=-=-=-=-=-=-=-=-=-
>>
Martin Hundebøll Sept. 5, 2023, 10:57 a.m. UTC | #6
On Mon, 2023-08-28 at 19:31 +0200, Martin Hundeb?ll wrote:
>  
>  Aug 28, 2023 19:16:28 Khem Raj <raj.khem@gmail.com>: 
>  
>  > On Mon, Aug 28, 2023 at 5:48 AM Martin Hundeb?ll
> <martin@geanix.com> wrote: 
>  >> 
>  >> Ninja doesn't (yet) support the GNU Make jobserver out of the
> box, but 
>  >> there is a pull request adding that support[1]. Switch the
> SRC_URI and 
>  >> SRCREV to point at the source of that pull request, to make ninja
> play 
>  >> nicely together with the recently added jobserver class. 
>  >> 
>  >> Signed-off-by: Martin Hundebøll <martin@geanix.com> 
>  >> --- 
>  >> .../ninja/{ninja_1.11.1.bb => ninja_1.12.0.bb}                | 4
> ++-- 
>  >> 1 file changed, 2 insertions(+), 2 deletions(-) 
>  >> rename meta/recipes-devtools/ninja/{ninja_1.11.1.bb =>
> ninja_1.12.0.bb} (84%) 
>  >> 
>  >> diff --git a/meta/recipes-devtools/ninja/ninja_1.11.1.bb
> b/meta/recipes-devtools/ninja/ninja_1.12.0.bb 
>  >> similarity index 84% 
>  >> rename from meta/recipes-devtools/ninja/ninja_1.11.1.bb 
>  >> rename to meta/recipes-devtools/ninja/ninja_1.12.0.bb 
>  >> index 8e297ec4d4..9abdd40a92 100644 
>  >> --- a/meta/recipes-devtools/ninja/ninja_1.11.1.bb 
>  >> +++ b/meta/recipes-devtools/ninja/ninja_1.12.0.bb 
>  >> @@ -6,9 +6,9 @@ LIC_FILES_CHKSUM =
> "file://COPYING;md5=a81586a64ad4e476c791cda7e2f2c52e" 
>  >> 
>  >> DEPENDS = "re2c-native ninja-native" 
>  >> 
>  >> -SRCREV = "a524bf3f6bacd1b4ad85d719eed2737d8562f27a" 
>  >> +SRCREV = "c9e21dbbc4c746ba397c0f9bec5f65c99f783c08" 
>  >> 
>  >> -SRC_URI = "git://github.com/ninja-
> build/ninja.git;branch=release;protocol=https" 
>  >> +SRC_URI = "git://github.com/stefanb2/ninja.git;branch=topic-
> issue-1139-part-3-jobserver-fifo;protocol=https" 
>  > 
>  > This is a little concerning, as we are pointing to a fork here and
>  > quite a lot depend on ninja now 
>  > a days. so I wonder whats the status of the patches and likelyhood
> of 
>  > them going upstream 
>  > in anycase, we should pick the patches instead of switching
> SRC_URI 
>  
>  Yes, I agree that we shouldn't change uri to a fork; hence the
> RFC... Maybe I should try to put some pressure on ninja upstream to
> consider the pull request... 

One option could be to use the kitware fork of ninja, which supports
the fifo makeserver:
https://github.com/Kitware/ninja

This is what buildroot does:
https://gitlab.com/buildroot.org/buildroot/-/blob/master/package/ninja/ninja.mk

// Martin

>  >> UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>.*)" 
>  >> 
>  >> S = "${WORKDIR}/git" 
>  >> -- 
>  >> 2.41.0 
>  >> 
>  >> 
>  >>  
>  >> 
>  
>  
> 
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#186841):
> https://lists.openembedded.org/g/openembedded-core/message/186841
> Mute This Topic: https://lists.openembedded.org/mt/101009093/3618414
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe:
> https://lists.openembedded.org/g/openembedded-core/unsub [
> martin@geanix.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
diff mbox series

Patch

diff --git a/meta/recipes-devtools/ninja/ninja_1.11.1.bb b/meta/recipes-devtools/ninja/ninja_1.12.0.bb
similarity index 84%
rename from meta/recipes-devtools/ninja/ninja_1.11.1.bb
rename to meta/recipes-devtools/ninja/ninja_1.12.0.bb
index 8e297ec4d4..9abdd40a92 100644
--- a/meta/recipes-devtools/ninja/ninja_1.11.1.bb
+++ b/meta/recipes-devtools/ninja/ninja_1.12.0.bb
@@ -6,9 +6,9 @@  LIC_FILES_CHKSUM = "file://COPYING;md5=a81586a64ad4e476c791cda7e2f2c52e"
 
 DEPENDS = "re2c-native ninja-native"
 
-SRCREV = "a524bf3f6bacd1b4ad85d719eed2737d8562f27a"
+SRCREV = "c9e21dbbc4c746ba397c0f9bec5f65c99f783c08"
 
-SRC_URI = "git://github.com/ninja-build/ninja.git;branch=release;protocol=https"
+SRC_URI = "git://github.com/stefanb2/ninja.git;branch=topic-issue-1139-part-3-jobserver-fifo;protocol=https"
 UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>.*)"
 
 S = "${WORKDIR}/git"