Author: sthibault Date: 2015-12-22 13:49:09 +0000 (Tue, 22 Dec 2015) New Revision: 6832
Added: glibc-package/branches/glibc-2.22/debian/patches/any/cvs-stdio-lock.diff Removed: glibc-package/branches/glibc-2.22/debian/patches/any/local-stdio-lock.diff Modified: glibc-package/branches/glibc-2.22/debian/changelog glibc-package/branches/glibc-2.22/debian/patches/series Log: merge my trunk commits Modified: glibc-package/branches/glibc-2.22/debian/changelog =================================================================== --- glibc-package/branches/glibc-2.22/debian/changelog 2015-12-22 13:47:58 UTC (rev 6831) +++ glibc-package/branches/glibc-2.22/debian/changelog 2015-12-22 13:49:09 UTC (rev 6832) @@ -196,6 +196,8 @@ [ Samuel Thibault ] * patches/hurd-i386/cvs-libpthread-api.diff: Update patch, add missing throw specifications. + * patches/any/local-stdio-lock.diff: Update to git commit, and + rename into patches/any/cvs-stdio-lock.diff. -- Aurelien Jarno <aure...@debian.org> Thu, 10 Dec 2015 23:25:07 +0100 Copied: glibc-package/branches/glibc-2.22/debian/patches/any/cvs-stdio-lock.diff (from rev 6831, glibc-package/trunk/debian/patches/any/cvs-stdio-lock.diff) =================================================================== --- glibc-package/branches/glibc-2.22/debian/patches/any/cvs-stdio-lock.diff (rev 0) +++ glibc-package/branches/glibc-2.22/debian/patches/any/cvs-stdio-lock.diff 2015-12-22 13:49:09 UTC (rev 6832) @@ -0,0 +1,56 @@ +commit 2cf3e1aa7477b813ca3ebb901003a7d44f970218 +Author: Samuel Thibault <samuel.thiba...@ens-lyon.org> +Date: Tue Dec 22 14:39:19 2015 +0100 + + Harmonize generic stdio-lock support with nptl + + This fixes build when _IO_funlockfile is a macro, fixes build where + _IO_acquire_lock_clear_flags2 is used, and fixes unlocking on unexpected + stack unwind. + + * sysdeps/generic/stdio-lock.h [__EXCEPTIONS] (_IO_acquire_lock, + _IO_release_lock ): Use cleanup attribute on new + _IO_acquire_lock_file variable instead of assuming that + _IO_release_lock will be called. + [!__EXCEPTIONS] (_IO_acquire_lock): Define to non-existing + _IO_acquire_lock_needs_exceptions_enabled. + (_IO_acquire_lock_clear_flags2): New macro. + +--- + stdio-lock.h | 23 ++++++++++++++++++----- + 1 file changed, 18 insertions(+), 5 deletions(-) + +--- a/bits/stdio-lock.h ++++ b/bits/stdio-lock.h +@@ -45,13 +45,26 @@ __libc_lock_define_recursive (typedef, _IO_lock_t) + __libc_cleanup_region_end (_doit) + + #if defined _LIBC && IS_IN (libc) ++ ++# ifdef __EXCEPTIONS + # define _IO_acquire_lock(_fp) \ +- _IO_cleanup_region_start ((void (*) (void *)) _IO_funlockfile, (_fp)); \ +- _IO_flockfile (_fp) ++ do { \ ++ _IO_FILE *_IO_acquire_lock_file \ ++ __attribute__((cleanup (_IO_acquire_lock_fct))) \ ++ = (_fp); \ ++ _IO_flockfile (_IO_acquire_lock_file); ++# define _IO_acquire_lock_clear_flags2(_fp) \ ++ do { \ ++ _IO_FILE *_IO_acquire_lock_file \ ++ __attribute__((cleanup (_IO_acquire_lock_clear_flags2_fct))) \ ++ = (_fp); \ ++ _IO_flockfile (_IO_acquire_lock_file); ++# else ++# define _IO_acquire_lock(_fp) _IO_acquire_lock_needs_exceptions_enabled ++# define _IO_acquire_lock_clear_flags2(_fp) _IO_acquire_lock (_fp) ++# endif ++# define _IO_release_lock(_fp) ; } while (0) + +-# define _IO_release_lock(_fp) \ +- _IO_funlockfile (_fp); \ +- _IO_cleanup_region_end (0) + #endif + + #endif /* bits/stdio-lock.h */ Deleted: glibc-package/branches/glibc-2.22/debian/patches/any/local-stdio-lock.diff =================================================================== --- glibc-package/branches/glibc-2.22/debian/patches/any/local-stdio-lock.diff 2015-12-22 13:47:58 UTC (rev 6831) +++ glibc-package/branches/glibc-2.22/debian/patches/any/local-stdio-lock.diff 2015-12-22 13:49:09 UTC (rev 6832) @@ -1,33 +0,0 @@ -This patch is need for Hurd. ---- - bits/stdio-lock.h | 17 +++++++++++++---- - 1 file changed, 13 insertions(+), 4 deletions(-) - ---- a/bits/stdio-lock.h -+++ b/bits/stdio-lock.h -@@ -46,12 +46,21 @@ - - #if defined _LIBC && IS_IN (libc) - # define _IO_acquire_lock(_fp) \ -- _IO_cleanup_region_start ((void (*) (void *)) _IO_funlockfile, (_fp)); \ -- _IO_flockfile (_fp) -+ { \ -+ _IO_FILE *_IO_acquire_lock_file = _fp; \ -+ __libc_cleanup_region_start (1, (void (*) (void *)) _IO_acquire_lock_fct, &_IO_acquire_lock_file); \ -+ _IO_flockfile (_IO_acquire_lock_file) -+ -+# define _IO_acquire_lock_clear_flags2(_fp) \ -+ { \ -+ _IO_FILE *_IO_acquire_lock_file = _fp; \ -+ __libc_cleanup_region_start (1, (void (*) (void *)) _IO_acquire_lock_clear_flags2_fct, &_IO_acquire_lock_file); \ -+ _IO_flockfile (_IO_acquire_lock_file) - - # define _IO_release_lock(_fp) \ -- _IO_funlockfile (_fp); \ -- _IO_cleanup_region_end (0) -+ __libc_cleanup_region_end (1); \ -+ } -+ - #endif - - #endif /* bits/stdio-lock.h */ Modified: glibc-package/branches/glibc-2.22/debian/patches/series =================================================================== --- glibc-package/branches/glibc-2.22/debian/patches/series 2015-12-22 13:47:58 UTC (rev 6831) +++ glibc-package/branches/glibc-2.22/debian/patches/series 2015-12-22 13:49:09 UTC (rev 6832) @@ -204,7 +204,7 @@ any/local-no-pagesize.diff any/local-nss-upgrade.diff any/local-stubs_h.diff -any/local-stdio-lock.diff +any/cvs-stdio-lock.diff any/local-tcsetaddr.diff any/local-tst-mktime2.diff any/submitted-nis-netgrp.diff