[lxc-devel] [PATCH 15/21] Add a bionic_alphasort function on bionic

Serge Hallyn serge.hallyn at canonical.com
Thu Jan 3 21:54:45 UTC 2013


Quoting Stéphane Graber (stgraber at ubuntu.com):
> alphasort doesn't have the right signature on bionic which causes the build to
> fail. This implements a new bionic_alphasort function when building on bionic
> providing the right signature and a functional equivalent of glibc's alphasort.
> 
> This signature problem with alphasort was fixed in upstream bionic but hasn't
> been released yet. This commit can therefore be reverted as soon as the
> following commit hits the Android NDK: 40e467ec668b59be25491bd44bf348a884d6a68d
> 
> Signed-off-by: Stéphane Graber <stgraber at ubuntu.com>

Acked-by: Serge E. Hallyn <serge.hallyn at ubuntu.com>

> ---
>  src/lxc/parse.c | 15 +++++++++++++++
>  1 file changed, 15 insertions(+)
> 
> diff --git a/src/lxc/parse.c b/src/lxc/parse.c
> index cc6f146..fd78ebd 100644
> --- a/src/lxc/parse.c
> +++ b/src/lxc/parse.c
> @@ -32,6 +32,17 @@
>  #include "config.h"
>  #include <lxc/log.h>
>  
> +/* Workaround for the broken signature of alphasort() in bionic.
> +   This was fixed upstream in 40e467ec668b59be25491bd44bf348a884d6a68d so the
> +   workaround can probably be dropped with the next version of the Android NDK.
> + */
> +#ifdef IS_BIONIC
> +int bionic_alphasort(const struct dirent** a, const struct dirent** b) {
> +       return strcoll((*a)->d_name, (*b)->d_name);
> +}
> +#endif
> +
> +
>  lxc_log_define(lxc_parse, lxc);
>  
>  static int dir_filter(const struct dirent *dirent)
> @@ -48,7 +59,11 @@ int lxc_dir_for_each(const char *name, const char *directory,
>  	struct dirent **namelist;
>  	int n, ret = 0;
>  
> +#ifdef IS_BIONIC
> +	n = scandir(directory, &namelist, dir_filter, bionic_alphasort);
> +#else
>  	n = scandir(directory, &namelist, dir_filter, alphasort);
> +#endif
>  	if (n < 0) {
>  		SYSERROR("failed to scan %s directory", directory);
>  		return -1;
> -- 
> 1.8.0
> 
> 
> ------------------------------------------------------------------------------
> Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
> MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
> with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
> MVPs and experts. ON SALE this month only -- learn more at:
> http://p.sf.net/sfu/learnmore_122712
> _______________________________________________
> Lxc-devel mailing list
> Lxc-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/lxc-devel




More information about the lxc-devel mailing list