All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH] package/go: ensure there is a host-go provider
@ 2024-06-20 15:57 Yann E. MORIN
  2024-06-20 18:35 ` Yann E. MORIN
  0 siblings, 1 reply; 2+ messages in thread
From: Yann E. MORIN @ 2024-06-20 15:57 UTC (permalink / raw)
  To: buildroot; +Cc: Yann E. MORIN

Commit fa2536ec9401 (package/go: make host package a virtual package)
introduced host-go as a host-only virtual package, which had a single
provider, the choice of which is only exposed when a (target or host)
package has selected BR2_PACKAGE_HOST_GO to indicate it needs host-go.

However, this forgot to account for prompt-less, host-only packages,
which have no way of selecting that symbol.

Having prompt-less, host-only packages is a totally unexceptional,
supported case; for example a host package can be depended upon by
another (target or host) package, or by a filesystem, and we do not
require Kconfig symbols to be exposed for those packages.

As a consequence, when not package is enabled, that can select that
symbol, we can't run 'make source' or 'make host-foo-source':

    make[1]: *** No rule to make target 'host-', needed by
    '[...]/build/host-go-1.22.4/.stamp_configured'. Stop.

Fix that by moving the provider symbol out of the if-block, so that
there is always a provider defined.

Now, we only have host-go-src as a provider, but the symbol is still
part of the choice that is conditional (and that _has_ to be
conditional), so the BR2_PACKAGE_HOST_GO_SRC can never be set unless
there is a package that explicitly select BR2_PACKAGE_HOST_GO.

So, drop the conditional on the default, so that there is always a
provider available.

This mirrors other similar situations, like the rust case.

Fixes: fa2536ec940105acc71630144bd1187c931462ac

Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
---
 package/go/Config.in.host | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/package/go/Config.in.host b/package/go/Config.in.host
index 483393f8e4..92c1f4cdc3 100644
--- a/package/go/Config.in.host
+++ b/package/go/Config.in.host
@@ -54,12 +54,12 @@ config BR2_PACKAGE_HOST_GO_SRC
 
 endchoice
 
+endif
+
 config BR2_PACKAGE_PROVIDES_HOST_GO
 	string
-	# Default to host-go-src
-	default "host-go-src" if BR2_PACKAGE_HOST_GO_SRC
-
-endif
+	# Default to host-go-src, as the only provider for now
+	default "host-go-src"
 
 source "package/go/go-bootstrap-stage1/Config.in.host"
 source "package/go/go-bootstrap-stage2/Config.in.host"
-- 
2.45.1

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [Buildroot] [PATCH] package/go: ensure there is a host-go provider
  2024-06-20 15:57 [Buildroot] [PATCH] package/go: ensure there is a host-go provider Yann E. MORIN
@ 2024-06-20 18:35 ` Yann E. MORIN
  0 siblings, 0 replies; 2+ messages in thread
From: Yann E. MORIN @ 2024-06-20 18:35 UTC (permalink / raw)
  To: buildroot

All,

On 2024-06-20 17:57 +0200, Yann E. MORIN spake thusly:
> Commit fa2536ec9401 (package/go: make host package a virtual package)
> introduced host-go as a host-only virtual package, which had a single
> provider, the choice of which is only exposed when a (target or host)
> package has selected BR2_PACKAGE_HOST_GO to indicate it needs host-go.
> 
> However, this forgot to account for prompt-less, host-only packages,
> which have no way of selecting that symbol.
> 
> Having prompt-less, host-only packages is a totally unexceptional,
> supported case; for example a host package can be depended upon by
> another (target or host) package, or by a filesystem, and we do not
> require Kconfig symbols to be exposed for those packages.
> 
> As a consequence, when not package is enabled, that can select that
> symbol, we can't run 'make source' or 'make host-foo-source':
> 
>     make[1]: *** No rule to make target 'host-', needed by
>     '[...]/build/host-go-1.22.4/.stamp_configured'. Stop.
> 
> Fix that by moving the provider symbol out of the if-block, so that
> there is always a provider defined.
> 
> Now, we only have host-go-src as a provider, but the symbol is still
> part of the choice that is conditional (and that _has_ to be
> conditional), so the BR2_PACKAGE_HOST_GO_SRC can never be set unless
> there is a package that explicitly select BR2_PACKAGE_HOST_GO.
> 
> So, drop the conditional on the default, so that there is always a
> provider available.
> 
> This mirrors other similar situations, like the rust case.
> 
> Fixes: fa2536ec940105acc71630144bd1187c931462ac
> 
> Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>

Applied to master, after adding the LGTM tag Arnout provided on IRC,
thanks.

Regards,
Yann E. MORIN.

> ---
>  package/go/Config.in.host | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/package/go/Config.in.host b/package/go/Config.in.host
> index 483393f8e4..92c1f4cdc3 100644
> --- a/package/go/Config.in.host
> +++ b/package/go/Config.in.host
> @@ -54,12 +54,12 @@ config BR2_PACKAGE_HOST_GO_SRC
>  
>  endchoice
>  
> +endif
> +
>  config BR2_PACKAGE_PROVIDES_HOST_GO
>  	string
> -	# Default to host-go-src
> -	default "host-go-src" if BR2_PACKAGE_HOST_GO_SRC
> -
> -endif
> +	# Default to host-go-src, as the only provider for now
> +	default "host-go-src"
>  
>  source "package/go/go-bootstrap-stage1/Config.in.host"
>  source "package/go/go-bootstrap-stage2/Config.in.host"
> -- 
> 2.45.1
> 
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2024-06-20 18:35 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-06-20 15:57 [Buildroot] [PATCH] package/go: ensure there is a host-go provider Yann E. MORIN
2024-06-20 18:35 ` Yann E. MORIN

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.