[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v3 1/2] libxl: replace deprecated readdir_r() with readdir()



On Fri, Jun 3, 2016 at 5:50 PM, Chris Patterson <cjp256@xxxxxxxxx> wrote:
> From: Chris Patterson <pattersonc@xxxxxxxxxxxx>
>
> Replace the usage of readdir_r() with readdir() to address a
> compilation error under glibc due to the deprecation of readdir_r
> for their next release (2.24) [1, 2].
>
> Remove code specific to usage of readdir_r which is no longer required,
> such as zalloc_dirent().
>
> --
>
> From the GNU libc manual [3]:
> "
>  It is expected that future versions of POSIX will obsolete readdir_r and
>  mandate the level of thread safety for readdir which is provided by the
>  GNU C Library and other implementations today.
> "
>
> There is a filed bug in the Austin Group Defect Tracker [4]  in which 'dalias'
> proposes (in comment 0001632) that:
> "
>    I would like to propose an alternate solution. For readdir, replace the 
> text:
>     "The readdir() function need not be thread-safe."
>    with:
>     "If multiple threads call the readdir() function with the same directory
>     stream argument and without synchronization to preclude simultaneous
>     access, then the behavior is undefined."
>
>    With this change, the clunky readdir_r function is no longer needed or
>    useful, and should probably be deprecated. As the only reasonable way
>    to meet the implementation requirements for readdir is to have the dirent
>    buffer in the DIR structure, this change should not require any change to
>    existing implementations.
> "
>
> [1] https://sourceware.org/ml/libc-alpha/2016-02/msg00093.html
> [2] https://sourceware.org/bugzilla/show_bug.cgi?id=19056
> [3] 
> https://www.gnu.org/software/libc/manual/html_node/Reading_002fClosing-Directory.html
> [4] http://austingroupbugs.net/view.php?id=696
>
> Signed-off-by: Chris Patterson <pattersonc@xxxxxxxxxxxx>

Jan,

These patches should be backported to the 4.6 branch (and earlier?) as well.

The commits are b9daff9 and c2a1786 if you want to cherry-pick them.
(b9daff9 doesn't apply quite cleanly because libxl_pvusb.c doesn't
exist).

 -George

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.