diff mbox series

package/crun: allow building with uClibc

Message ID 20230729212159.403148-1-thomas.petazzoni@bootlin.com
State Accepted
Headers show
Series package/crun: allow building with uClibc | expand

Commit Message

Thomas Petazzoni July 29, 2023, 9:21 p.m. UTC
uClibc now provides fexecve(), so crun can build just fine with
uClibc. However, argp-standalone is needed, just like it was needed
for musl.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
 package/crun/Config.in | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Comments

Christian Stewart July 31, 2023, 2:44 a.m. UTC | #1
Hi,

On Sat, Jul 29, 2023 at 2:22 PM Thomas Petazzoni
<thomas.petazzoni@bootlin.com> wrote:
>
> uClibc now provides fexecve(), so crun can build just fine with
> uClibc. However, argp-standalone is needed, just like it was needed
> for musl.
>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>

Thanks!

Reviewed-by: Christian Stewart <christian@aperture.us>
Thomas Petazzoni Aug. 6, 2023, 2:28 p.m. UTC | #2
On Sat, 29 Jul 2023 23:21:58 +0200
Thomas Petazzoni via buildroot <buildroot@buildroot.org> wrote:

> uClibc now provides fexecve(), so crun can build just fine with
> uClibc. However, argp-standalone is needed, just like it was needed
> for musl.
> 
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> ---
>  package/crun/Config.in | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)

Applied to next, thanks.

Thomas
Arnout Vandecappelle Aug. 11, 2023, 8:06 p.m. UTC | #3
On 29/07/2023 23:21, Thomas Petazzoni via buildroot wrote:
> uClibc now provides fexecve(), so crun can build just fine with
> uClibc. However, argp-standalone is needed, just like it was needed
> for musl.

  I believe this is going to create problems again, because we have a few 
toolchain configurations that are used in the autobuilders and that have really 
old uClibc versions.

  As I said in a previous mail, we may want to drop these and move to bootlin 
toolchains instead. But then, for some of them there is no bootlin toolchain 
equivalent...

  Also, those autobuilder toolchains make sure we still have some testing of old 
GCC versions, which we probably do want to keep.

  So, we should either:

- update all the autobuilder toolchains with newer uClibc;
- switch those toolchains to bootlin toolchains;
- switch those toolchains to internal toolchains;
- add autobuilder exceptions;
- add some Kconfig construct to identify fexecve availability.

  Regards,
  Arnout

> 
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> ---
>   package/crun/Config.in | 3 +--
>   1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/package/crun/Config.in b/package/crun/Config.in
> index 45c86f0655..1b69034459 100644
> --- a/package/crun/Config.in
> +++ b/package/crun/Config.in
> @@ -1,8 +1,7 @@
>   config BR2_PACKAGE_CRUN
>   	bool "crun"
> -	depends on !BR2_TOOLCHAIN_USES_UCLIBC # no fexecve
>   	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # C11/stdatomic.h
> -	select BR2_PACKAGE_ARGP_STANDALONE if BR2_TOOLCHAIN_USES_MUSL
> +	select BR2_PACKAGE_ARGP_STANDALONE if !BR2_TOOLCHAIN_USES_GLIBC
>   	select BR2_PACKAGE_YAJL # libocispec
>   	help
>   	  crun is a fast and low-memory OCI Container Runtime in C.
Thomas Petazzoni Aug. 11, 2023, 10:26 p.m. UTC | #4
On Fri, 11 Aug 2023 22:06:40 +0200
Arnout Vandecappelle <arnout@mind.be> wrote:

>   I believe this is going to create problems again, because we have a few 
> toolchain configurations that are used in the autobuilders and that have really 
> old uClibc versions.
> 
>   As I said in a previous mail, we may want to drop these and move to bootlin 
> toolchains instead. But then, for some of them there is no bootlin toolchain 
> equivalent...
> 
>   Also, those autobuilder toolchains make sure we still have some testing of old 
> GCC versions, which we probably do want to keep.
> 
>   So, we should either:
> 
> - update all the autobuilder toolchains with newer uClibc;
> - switch those toolchains to bootlin toolchains;
> - switch those toolchains to internal toolchains;
> - add autobuilder exceptions;
> - add some Kconfig construct to identify fexecve availability.

The autobuilders are now doing fully random testing I believe, so they
are no longer testing some of those "special toolchains" we used to
have. They are either using well-known external toolchains, or building
internal toolchains.

In any case, I don't think we should worry too much about uClibc
features, and assume that people should have a recent uClibc, with the
uClibc configuration as it is in Buildroot.

Thomas
diff mbox series

Patch

diff --git a/package/crun/Config.in b/package/crun/Config.in
index 45c86f0655..1b69034459 100644
--- a/package/crun/Config.in
+++ b/package/crun/Config.in
@@ -1,8 +1,7 @@ 
 config BR2_PACKAGE_CRUN
 	bool "crun"
-	depends on !BR2_TOOLCHAIN_USES_UCLIBC # no fexecve
 	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # C11/stdatomic.h
-	select BR2_PACKAGE_ARGP_STANDALONE if BR2_TOOLCHAIN_USES_MUSL
+	select BR2_PACKAGE_ARGP_STANDALONE if !BR2_TOOLCHAIN_USES_GLIBC
 	select BR2_PACKAGE_YAJL # libocispec
 	help
 	  crun is a fast and low-memory OCI Container Runtime in C.