Message ID | 20230729212159.403148-1-thomas.petazzoni@bootlin.com |
---|---|
State | Accepted |
Headers | show |
Series | package/crun: allow building with uClibc | expand |
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>
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
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.
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 --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.
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(-)