diff mbox series

package/openntpd: needs host-bison

Message ID b1b574df250b1e34cd750b809a8409b9b182f51e.1605525509.git.baruch@tkos.co.il
State Accepted
Headers show
Series package/openntpd: needs host-bison | expand

Commit Message

Baruch Siach Nov. 16, 2020, 11:18 a.m. UTC
Build fails when no yacc alternative is installed.

Fixes:
http://autobuild.buildroot.net/results/1ba8e339cbb5646663d0bf4e158d89e54433b242/
http://autobuild.buildroot.net/results/a00a53d6635c64e72c50d4841658155de5380110/

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
---
 package/openntpd/openntpd.mk | 1 +
 1 file changed, 1 insertion(+)

Comments

Peter Korsgaard Nov. 16, 2020, 4:19 p.m. UTC | #1
>>>>> "Baruch" == Baruch Siach <baruch@tkos.co.il> writes:

 > Build fails when no yacc alternative is installed.
 > Fixes:
 > http://autobuild.buildroot.net/results/1ba8e339cbb5646663d0bf4e158d89e54433b242/
 > http://autobuild.buildroot.net/results/a00a53d6635c64e72c50d4841658155de5380110/

 > Signed-off-by: Baruch Siach <baruch@tkos.co.il>
 > ---
 >  package/openntpd/openntpd.mk | 1 +
 >  1 file changed, 1 insertion(+)

 > diff --git a/package/openntpd/openntpd.mk b/package/openntpd/openntpd.mk
 > index f2eaee7efd46..9076f3ddda4e 100644
 > --- a/package/openntpd/openntpd.mk
 > +++ b/package/openntpd/openntpd.mk
 > @@ -8,6 +8,7 @@ OPENNTPD_VERSION = 6.2p3
 >  OPENNTPD_SITE = http://ftp.openbsd.org/pub/OpenBSD/OpenNTPD
 >  OPENNTPD_LICENSE = MIT-like, BSD-2-Clause, BSD-3-Clause
 >  OPENNTPD_LICENSE_FILES = COPYING
 > +OPENNTPD_DEPENDENCIES = host-bison

Can we not use $(BR2_BISON_HOST_DEPENDENCY) instead?
Baruch Siach Nov. 16, 2020, 5:09 p.m. UTC | #2
Hi Peter,

+Yann.

On Mon, Nov 16 2020, Peter Korsgaard wrote:
>>>>>> "Baruch" == Baruch Siach <baruch@tkos.co.il> writes:
>
>  > Build fails when no yacc alternative is installed.
>  > Fixes:
>  > http://autobuild.buildroot.net/results/1ba8e339cbb5646663d0bf4e158d89e54433b242/
>  > http://autobuild.buildroot.net/results/a00a53d6635c64e72c50d4841658155de5380110/
>
>  > Signed-off-by: Baruch Siach <baruch@tkos.co.il>
>  > ---
>  >  package/openntpd/openntpd.mk | 1 +
>  >  1 file changed, 1 insertion(+)
>
>  > diff --git a/package/openntpd/openntpd.mk b/package/openntpd/openntpd.mk
>  > index f2eaee7efd46..9076f3ddda4e 100644
>  > --- a/package/openntpd/openntpd.mk
>  > +++ b/package/openntpd/openntpd.mk
>  > @@ -8,6 +8,7 @@ OPENNTPD_VERSION = 6.2p3
>  >  OPENNTPD_SITE = http://ftp.openbsd.org/pub/OpenBSD/OpenNTPD
>  >  OPENNTPD_LICENSE = MIT-like, BSD-2-Clause, BSD-3-Clause
>  >  OPENNTPD_LICENSE_FILES = COPYING
>  > +OPENNTPD_DEPENDENCIES = host-bison
>
> Can we not use $(BR2_BISON_HOST_DEPENDENCY) instead?

We surly can. But for some reason no other package under package/ uses
BR2_BISON_HOST_DEPENDENCY. Plain host-bison is used there instead. Only
Barebox, U-Boot and the kernel use it. Why is that?

Commit b01100cc901a83 ("linux: kconfig may need host-{flex, bison} to
build the configurators") mentions kconfig. Is that related?

I guess that BR2_BISON_HOST_DEPENDENCY is more susceptible to
incompatibility due to different host installed bison versions (and same
for flex).

baruch
Peter Korsgaard Nov. 16, 2020, 5:42 p.m. UTC | #3
>>>>> "Baruch" == Baruch Siach <baruch@tkos.co.il> writes:

Hi,

 >> > +OPENNTPD_DEPENDENCIES = host-bison
 >> 
 >> Can we not use $(BR2_BISON_HOST_DEPENDENCY) instead?

 > We surly can. But for some reason no other package under package/ uses
 > BR2_BISON_HOST_DEPENDENCY. Plain host-bison is used there instead. Only
 > Barebox, U-Boot and the kernel use it. Why is that?

Your tree is not uptodate, we also have it in linux-backports ;)

But yes, it is a bit odd that we are not using it more often. Probably
it is mostly just because it is fairly new (~2 years) and not really
documented anywhere.

Yann, you added it, anything to add?


 > Commit b01100cc901a83 ("linux: kconfig may need host-{flex, bison} to
 > build the configurators") mentions kconfig. Is that related?

 > I guess that BR2_BISON_HOST_DEPENDENCY is more susceptible to
 > incompatibility due to different host installed bison versions (and same
 > for flex).

Correct, similar to the other components where we can use what is
available on the host if new enough. For bison/flex, I would imagine
that the version incompatibilities are fairly small (even though we do
have some patches for building with bison 3.7.1).
Yann E. MORIN Nov. 16, 2020, 6:07 p.m. UTC | #4
Baruch, Peter, All,

On 2020-11-16 19:09 +0200, Baruch Siach spake thusly:
> On Mon, Nov 16 2020, Peter Korsgaard wrote:
> >>>>>> "Baruch" == Baruch Siach <baruch@tkos.co.il> writes:
> >
> >  > Build fails when no yacc alternative is installed.
> >  > Fixes:
> >  > http://autobuild.buildroot.net/results/1ba8e339cbb5646663d0bf4e158d89e54433b242/
> >  > http://autobuild.buildroot.net/results/a00a53d6635c64e72c50d4841658155de5380110/
> >
> >  > Signed-off-by: Baruch Siach <baruch@tkos.co.il>
> >  > ---
> >  >  package/openntpd/openntpd.mk | 1 +
> >  >  1 file changed, 1 insertion(+)
> >
> >  > diff --git a/package/openntpd/openntpd.mk b/package/openntpd/openntpd.mk
> >  > index f2eaee7efd46..9076f3ddda4e 100644
> >  > --- a/package/openntpd/openntpd.mk
> >  > +++ b/package/openntpd/openntpd.mk
> >  > @@ -8,6 +8,7 @@ OPENNTPD_VERSION = 6.2p3
> >  >  OPENNTPD_SITE = http://ftp.openbsd.org/pub/OpenBSD/OpenNTPD
> >  >  OPENNTPD_LICENSE = MIT-like, BSD-2-Clause, BSD-3-Clause
> >  >  OPENNTPD_LICENSE_FILES = COPYING
> >  > +OPENNTPD_DEPENDENCIES = host-bison
> >
> > Can we not use $(BR2_BISON_HOST_DEPENDENCY) instead?
> 
> We surly can. But for some reason no other package under package/ uses
> BR2_BISON_HOST_DEPENDENCY. Plain host-bison is used there instead. Only
> Barebox, U-Boot and the kernel use it. Why is that?
> 
> Commit b01100cc901a83 ("linux: kconfig may need host-{flex, bison} to
> build the configurators") mentions kconfig. Is that related?
> 
> I guess that BR2_BISON_HOST_DEPENDENCY is more susceptible to
> incompatibility due to different host installed bison versions (and same
> for flex).

The rule is that we can depend on $(BR2_BISON_HOST_DEPENDENCY) to build host
tools, but we really want to depend on host-bison when we generate code
that is built for the target.

Indeed, different versions of bison will generate different C code, and
thus the resulting binary will change. This is not very reproducible.
(Yes, I've already experienced that, and finding the root cause of the
delta cost me about two weeks full-time...)

AFAICS, the openntd code will be running on the target, so we do want
the host-bison dependency.

Acked-by: Yann E. MORIN <yann.morin.1998@free.fr>

Regards,
Yann E. MORIN.
Peter Korsgaard Nov. 16, 2020, 6:54 p.m. UTC | #5
>>>>> "Yann" == Yann E MORIN <yann.morin.1998@free.fr> writes:

Hi,

 >> > Can we not use $(BR2_BISON_HOST_DEPENDENCY) instead?
 >> 
 >> We surly can. But for some reason no other package under package/ uses
 >> BR2_BISON_HOST_DEPENDENCY. Plain host-bison is used there instead. Only
 >> Barebox, U-Boot and the kernel use it. Why is that?
 >> 
 >> Commit b01100cc901a83 ("linux: kconfig may need host-{flex, bison} to
 >> build the configurators") mentions kconfig. Is that related?
 >> 
 >> I guess that BR2_BISON_HOST_DEPENDENCY is more susceptible to
 >> incompatibility due to different host installed bison versions (and same
 >> for flex).

 > The rule is that we can depend on $(BR2_BISON_HOST_DEPENDENCY) to build host
 > tools, but we really want to depend on host-bison when we generate code
 > that is built for the target.

 > Indeed, different versions of bison will generate different C code, and
 > thus the resulting binary will change. This is not very reproducible.
 > (Yes, I've already experienced that, and finding the root cause of the
 > delta cost me about two weeks full-time...)

 > AFAICS, the openntd code will be running on the target, so we do want
 > the host-bison dependency.

 > Acked-by: Yann E. MORIN <yann.morin.1998@free.fr>

Ok, we should probably add a sensible note about that in
check-host-bison-flex.mk to make that clear.

Committed, thanks.
Peter Korsgaard Nov. 16, 2020, 9:25 p.m. UTC | #6
>>>>> "Baruch" == Baruch Siach <baruch@tkos.co.il> writes:

 > Build fails when no yacc alternative is installed.
 > Fixes:
 > http://autobuild.buildroot.net/results/1ba8e339cbb5646663d0bf4e158d89e54433b242/
 > http://autobuild.buildroot.net/results/a00a53d6635c64e72c50d4841658155de5380110/

 > Signed-off-by: Baruch Siach <baruch@tkos.co.il>

Committed to 2020.02.x and 2020.08.x, thanks.
diff mbox series

Patch

diff --git a/package/openntpd/openntpd.mk b/package/openntpd/openntpd.mk
index f2eaee7efd46..9076f3ddda4e 100644
--- a/package/openntpd/openntpd.mk
+++ b/package/openntpd/openntpd.mk
@@ -8,6 +8,7 @@  OPENNTPD_VERSION = 6.2p3
 OPENNTPD_SITE = http://ftp.openbsd.org/pub/OpenBSD/OpenNTPD
 OPENNTPD_LICENSE = MIT-like, BSD-2-Clause, BSD-3-Clause
 OPENNTPD_LICENSE_FILES = COPYING
+OPENNTPD_DEPENDENCIES = host-bison
 # Need to autoreconf for our libtool patch to apply properly
 OPENNTPD_AUTORECONF = YES