Author: sthibault Date: 2014-11-07 14:21:13 +0000 (Fri, 07 Nov 2014) New Revision: 6329
Added: glibc-package/trunk/debian/patches/hurd-i386/libpthread_spin-lock.diff Modified: glibc-package/trunk/debian/changelog glibc-package/trunk/debian/patches/series Log: patches/hurd-i386/libpthread_spin-lock.diff: New patch to fix spin-lock.h inclusion order. Modified: glibc-package/trunk/debian/changelog =================================================================== --- glibc-package/trunk/debian/changelog 2014-11-06 20:56:08 UTC (rev 6328) +++ glibc-package/trunk/debian/changelog 2014-11-07 14:21:13 UTC (rev 6329) @@ -1,3 +1,11 @@ +glibc (2.19-14) UNRELEASED; urgency=medium + + [ Samuel Thibault ] + * patches/hurd-i386/libpthread_spin-lock.diff: New patch to fix spin-lock.h + inclusion order. + + -- Samuel Thibault <[email protected]> Fri, 07 Nov 2014 13:48:08 +0000 + glibc (2.19-13) unstable; urgency=medium [ Aurelien Jarno ] Added: glibc-package/trunk/debian/patches/hurd-i386/libpthread_spin-lock.diff =================================================================== --- glibc-package/trunk/debian/patches/hurd-i386/libpthread_spin-lock.diff (rev 0) +++ glibc-package/trunk/debian/patches/hurd-i386/libpthread_spin-lock.diff 2014-11-07 14:21:13 UTC (rev 6329) @@ -0,0 +1,299 @@ +Move libpthread/sysdeps/i386/bits/spin-lock{,-inline}.h into +libpthread/sysdeps/mach/i386/bits, otherwise the mach-generic versions will +get included instead of the i386 generic versions, due to the glibc include +ordering, which is different from the hurd tree include ordering. + +Index: glibc-2.19/libpthread/sysdeps/i386/bits/spin-lock-inline.h +=================================================================== +--- glibc-2.19.orig/libpthread/sysdeps/i386/bits/spin-lock-inline.h ++++ /dev/null +@@ -1,98 +0,0 @@ +-/* Machine-specific definitions for spin locks. i386 version. +- Copyright (C) 2000, 2005, 2008, 2009 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Library General Public License as +- published by the Free Software Foundation; either version 2 of the +- License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Library General Public License for more details. +- +- You should have received a copy of the GNU Library General Public +- License along with the GNU C Library; see the file COPYING.LIB. If not, +- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +- Boston, MA 02111-1307, USA. */ +- +-/* +- * Never include this file directly; use <pthread.h> or <cthreads.h> instead. +- */ +- +-#ifndef _BITS_SPIN_LOCK_INLINE_H +-#define _BITS_SPIN_LOCK_INLINE_H 1 +- +-#include <features.h> +-#include <bits/spin-lock.h> +- +-__BEGIN_DECLS +- +-#if defined __USE_EXTERN_INLINES || defined _FORCE_INLINES +- +-# ifndef __EBUSY +-# include <errno.h> +-# define __EBUSY EBUSY +-# endif +- +-# ifndef __PT_SPIN_INLINE +-# define __PT_SPIN_INLINE __extern_inline +-# endif +- +-__PT_SPIN_INLINE int __pthread_spin_destroy (__pthread_spinlock_t *__lock); +- +-__PT_SPIN_INLINE int +-__pthread_spin_destroy (__pthread_spinlock_t *__lock) +-{ +- return 0; +-} +- +-__PT_SPIN_INLINE int __pthread_spin_init (__pthread_spinlock_t *__lock, +- int __pshared); +- +-__PT_SPIN_INLINE int +-__pthread_spin_init (__pthread_spinlock_t *__lock, int __pshared) +-{ +- *__lock = __PTHREAD_SPIN_LOCK_INITIALIZER; +- return 0; +-} +- +-__PT_SPIN_INLINE int __pthread_spin_trylock (__pthread_spinlock_t *__lock); +- +-__PT_SPIN_INLINE int +-__pthread_spin_trylock (__pthread_spinlock_t *__lock) +-{ +- int __locked; +- __asm__ __volatile ("xchgl %0, %1" +- : "=&r" (__locked), "=m" (*__lock) : "0" (1) : "memory"); +- return __locked ? __EBUSY : 0; +-} +- +-__extern_inline int __pthread_spin_lock (__pthread_spinlock_t *__lock); +-extern int _pthread_spin_lock (__pthread_spinlock_t *__lock); +- +-__extern_inline int +-__pthread_spin_lock (__pthread_spinlock_t *__lock) +-{ +- if (__pthread_spin_trylock (__lock)) +- return _pthread_spin_lock (__lock); +- return 0; +-} +- +-__PT_SPIN_INLINE int __pthread_spin_unlock (__pthread_spinlock_t *__lock); +- +-__PT_SPIN_INLINE int +-__pthread_spin_unlock (__pthread_spinlock_t *__lock) +-{ +- int __unlocked; +- __asm__ __volatile ("xchgl %0, %1" +- : "=&r" (__unlocked), "=m" (*__lock) : "0" (0) : "memory"); +- return 0; +-} +- +-#endif /* Use extern inlines or force inlines. */ +- +-__END_DECLS +- +-#endif /* bits/spin-lock.h */ +Index: glibc-2.19/libpthread/sysdeps/i386/bits/spin-lock.h +=================================================================== +--- glibc-2.19.orig/libpthread/sysdeps/i386/bits/spin-lock.h ++++ /dev/null +@@ -1,39 +0,0 @@ +-/* Machine-specific definitions for spin locks. i386 version. +- Copyright (C) 2000, 2005, 2008, 2009 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Library General Public License as +- published by the Free Software Foundation; either version 2 of the +- License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Library General Public License for more details. +- +- You should have received a copy of the GNU Library General Public +- License along with the GNU C Library; see the file COPYING.LIB. If not, +- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +- Boston, MA 02111-1307, USA. */ +- +-/* +- * Never include this file directly; use <pthread.h> or <cthreads.h> instead. +- */ +- +-#ifndef _BITS_SPIN_LOCK_H +-#define _BITS_SPIN_LOCK_H 1 +- +-#include <features.h> +- +-__BEGIN_DECLS +- +-/* The type of a spin lock object. */ +-typedef __volatile int __pthread_spinlock_t; +- +-/* Initializer for a spin lock object. */ +-# define __PTHREAD_SPIN_LOCK_INITIALIZER ((__pthread_spinlock_t) 0) +- +-__END_DECLS +- +-#endif /* bits/spin-lock.h */ +Index: glibc-2.19/libpthread/sysdeps/mach/i386/bits/spin-lock-inline.h +=================================================================== +--- /dev/null ++++ glibc-2.19/libpthread/sysdeps/mach/i386/bits/spin-lock-inline.h +@@ -0,0 +1,98 @@ ++/* Machine-specific definitions for spin locks. i386 version. ++ Copyright (C) 2000, 2005, 2008, 2009 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++/* ++ * Never include this file directly; use <pthread.h> or <cthreads.h> instead. ++ */ ++ ++#ifndef _BITS_SPIN_LOCK_INLINE_H ++#define _BITS_SPIN_LOCK_INLINE_H 1 ++ ++#include <features.h> ++#include <bits/spin-lock.h> ++ ++__BEGIN_DECLS ++ ++#if defined __USE_EXTERN_INLINES || defined _FORCE_INLINES ++ ++# ifndef __EBUSY ++# include <errno.h> ++# define __EBUSY EBUSY ++# endif ++ ++# ifndef __PT_SPIN_INLINE ++# define __PT_SPIN_INLINE __extern_inline ++# endif ++ ++__PT_SPIN_INLINE int __pthread_spin_destroy (__pthread_spinlock_t *__lock); ++ ++__PT_SPIN_INLINE int ++__pthread_spin_destroy (__pthread_spinlock_t *__lock) ++{ ++ return 0; ++} ++ ++__PT_SPIN_INLINE int __pthread_spin_init (__pthread_spinlock_t *__lock, ++ int __pshared); ++ ++__PT_SPIN_INLINE int ++__pthread_spin_init (__pthread_spinlock_t *__lock, int __pshared) ++{ ++ *__lock = __PTHREAD_SPIN_LOCK_INITIALIZER; ++ return 0; ++} ++ ++__PT_SPIN_INLINE int __pthread_spin_trylock (__pthread_spinlock_t *__lock); ++ ++__PT_SPIN_INLINE int ++__pthread_spin_trylock (__pthread_spinlock_t *__lock) ++{ ++ int __locked; ++ __asm__ __volatile ("xchgl %0, %1" ++ : "=&r" (__locked), "=m" (*__lock) : "0" (1) : "memory"); ++ return __locked ? __EBUSY : 0; ++} ++ ++__extern_inline int __pthread_spin_lock (__pthread_spinlock_t *__lock); ++extern int _pthread_spin_lock (__pthread_spinlock_t *__lock); ++ ++__extern_inline int ++__pthread_spin_lock (__pthread_spinlock_t *__lock) ++{ ++ if (__pthread_spin_trylock (__lock)) ++ return _pthread_spin_lock (__lock); ++ return 0; ++} ++ ++__PT_SPIN_INLINE int __pthread_spin_unlock (__pthread_spinlock_t *__lock); ++ ++__PT_SPIN_INLINE int ++__pthread_spin_unlock (__pthread_spinlock_t *__lock) ++{ ++ int __unlocked; ++ __asm__ __volatile ("xchgl %0, %1" ++ : "=&r" (__unlocked), "=m" (*__lock) : "0" (0) : "memory"); ++ return 0; ++} ++ ++#endif /* Use extern inlines or force inlines. */ ++ ++__END_DECLS ++ ++#endif /* bits/spin-lock.h */ +Index: glibc-2.19/libpthread/sysdeps/mach/i386/bits/spin-lock.h +=================================================================== +--- /dev/null ++++ glibc-2.19/libpthread/sysdeps/mach/i386/bits/spin-lock.h +@@ -0,0 +1,39 @@ ++/* Machine-specific definitions for spin locks. i386 version. ++ Copyright (C) 2000, 2005, 2008, 2009 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++/* ++ * Never include this file directly; use <pthread.h> or <cthreads.h> instead. ++ */ ++ ++#ifndef _BITS_SPIN_LOCK_H ++#define _BITS_SPIN_LOCK_H 1 ++ ++#include <features.h> ++ ++__BEGIN_DECLS ++ ++/* The type of a spin lock object. */ ++typedef __volatile int __pthread_spinlock_t; ++ ++/* Initializer for a spin lock object. */ ++# define __PTHREAD_SPIN_LOCK_INITIALIZER ((__pthread_spinlock_t) 0) ++ ++__END_DECLS ++ ++#endif /* bits/spin-lock.h */ Modified: glibc-package/trunk/debian/patches/series =================================================================== --- glibc-package/trunk/debian/patches/series 2014-11-06 20:56:08 UTC (rev 6328) +++ glibc-package/trunk/debian/patches/series 2014-11-07 14:21:13 UTC (rev 6329) @@ -111,6 +111,7 @@ hurd-i386/tg-hurdsig-fixes-2.diff hurd-i386/tg-hooks.diff hurd-i386/cvs-libpthread.diff +hurd-i386/libpthread_spin-lock.diff hurd-i386/tg-aio_misc.diff hurd-i386/libpthread_build.diff hurd-i386/libpthread_sigmask.diff -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: https://lists.debian.org/[email protected]

