[PATCH] libdrm: Use readdir instead of readdir_r to avoid build warnings

Eric Engestrom eric.engestrom at imgtec.com
Mon Mar 19 14:41:34 UTC 2018


On Monday, 2018-03-19 06:47:32 -0700, John Stultz wrote:
> Building libdrm under AOSP, we see the following build warning:
> external/libdrm/xf86drm.c:2861:12: warning: 'readdir_r' is deprecated: readdir_r is deprecated; use readdir instead [-Wdeprecated-declarations]
>     while (readdir_r(sysdir, pent, &ent) == 0 && ent != NULL) {
>            ^
> 
> Thus, this patch replaces readdir_r with readdir.
> 
> Cc: Robert Foss <robert.foss at collabora.com>
> Cc: Rob Herring <robh at kernel.org>
> Cc: Stefan Schake <stschake at gmail.com>
> Signed-off-by: John Stultz <john.stultz at linaro.org>
> ---
>  xf86drm.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/xf86drm.c b/xf86drm.c
> index 344326d..b9058c2 100644
> --- a/xf86drm.c
> +++ b/xf86drm.c
> @@ -2858,7 +2858,7 @@ static char *drmGetMinorNameForFD(int fd, int type)
>      if (pent == NULL)
>           goto out_close_dir;
>  
> -    while (readdir_r(sysdir, pent, &ent) == 0 && ent != NULL) {
> +    while ((ent = readdir(sysdir))) {

I've had the same patch locally for some time, and while this line is
correct, it's missing other changes to clean up unnecessary code around.

I don't have the change on this machine, I'll look at it tonight, but if
you beat me to it, from memory there's a malloc()+free() around, and
a couple unused variables now that should be removed at the start of
the scope.

>          if (strncmp(ent->d_name, name, len) == 0) {
>              snprintf(dev_name, sizeof(dev_name), DRM_DIR_NAME "/%s",
>                   ent->d_name);
> -- 
> 2.7.4
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel


More information about the dri-devel mailing list