diff options
Diffstat (limited to 'libpthread')
30 files changed, 214 insertions, 98 deletions
diff --git a/libpthread/linuxthreads.old/sysdeps/alpha/pt-machine.h b/libpthread/linuxthreads.old/sysdeps/alpha/pt-machine.h index 853ac6f04..26805c4e2 100644 --- a/libpthread/linuxthreads.old/sysdeps/alpha/pt-machine.h +++ b/libpthread/linuxthreads.old/sysdeps/alpha/pt-machine.h @@ -23,8 +23,14 @@ #ifndef _PT_MACHINE_H #define _PT_MACHINE_H 1 +#include <features.h> + #ifndef PT_EI -# define PT_EI extern inline __attribute__ ((always_inline)) +# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) +# define PT_EI static inline __attribute__((always_inline)) +# else +# define PT_EI extern inline __attribute__((always_inline)) +# endif #endif #ifdef __linux__ @@ -33,9 +39,6 @@ # include <machine/pal.h> #endif -extern long int testandset (int *spinlock); -extern int __compare_and_swap (long int *p, long int oldval, long int newval); - /* Get some notion of the current stack. Need not be exactly the top of the stack, just something somewhere in the current frame. */ #define CURRENT_STACK_FRAME stack_pointer diff --git a/libpthread/linuxthreads.old/sysdeps/arm/pt-machine.h b/libpthread/linuxthreads.old/sysdeps/arm/pt-machine.h index 284567970..3058d6465 100644 --- a/libpthread/linuxthreads.old/sysdeps/arm/pt-machine.h +++ b/libpthread/linuxthreads.old/sysdeps/arm/pt-machine.h @@ -22,13 +22,16 @@ #ifndef _PT_MACHINE_H #define _PT_MACHINE_H 1 +#include <features.h> + #ifndef PT_EI -# define PT_EI extern inline +# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) +# define PT_EI static inline __attribute__((always_inline)) +# else +# define PT_EI extern inline __attribute__((always_inline)) +# endif #endif -extern long int testandset (int *spinlock); -extern int __compare_and_swap (long int *p, long int oldval, long int newval); - /* This will not work on ARM1 or ARM2 because SWP is lacking on those machines. Unfortunately we have no way to detect this at compile time; let's hope nobody tries to use one. */ diff --git a/libpthread/linuxthreads.old/sysdeps/avr32/pt-machine.h b/libpthread/linuxthreads.old/sysdeps/avr32/pt-machine.h index 874c8d15e..a6e1a6f76 100644 --- a/libpthread/linuxthreads.old/sysdeps/avr32/pt-machine.h +++ b/libpthread/linuxthreads.old/sysdeps/avr32/pt-machine.h @@ -11,6 +11,14 @@ #include <features.h> +#ifndef PT_EI +# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) +# define PT_EI static inline __attribute__((always_inline)) +# else +# define PT_EI extern inline __attribute__((always_inline)) +# endif +#endif + static inline int _test_and_set (int *p, int v) { diff --git a/libpthread/linuxthreads.old/sysdeps/bfin/pt-machine.h b/libpthread/linuxthreads.old/sysdeps/bfin/pt-machine.h index 8d97d5ec5..ae63e3879 100644 --- a/libpthread/linuxthreads.old/sysdeps/bfin/pt-machine.h +++ b/libpthread/linuxthreads.old/sysdeps/bfin/pt-machine.h @@ -21,6 +21,8 @@ #ifndef _PT_MACHINE_H #define _PT_MACHINE_H 1 +#include <features.h> + #ifndef PT_EI # if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) # define PT_EI static inline __attribute__((always_inline)) diff --git a/libpthread/linuxthreads.old/sysdeps/cris/pt-machine.h b/libpthread/linuxthreads.old/sysdeps/cris/pt-machine.h index a287e866a..de747bba7 100644 --- a/libpthread/linuxthreads.old/sysdeps/cris/pt-machine.h +++ b/libpthread/linuxthreads.old/sysdeps/cris/pt-machine.h @@ -17,9 +17,17 @@ 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. */ +#ifndef _PT_MACHINE_H +#define _PT_MACHINE_H 1 + +#include <features.h> #ifndef PT_EI -# define PT_EI extern inline __attribute__ ((always_inline)) +# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) +# define PT_EI static inline __attribute__((always_inline)) +# else +# define PT_EI extern inline __attribute__((always_inline)) +# endif #endif PT_EI long int @@ -62,3 +70,5 @@ testandset (int *spinlock) I don't trust register variables, so let's do this the safe way. */ #define CURRENT_STACK_FRAME \ ({ char *sp; __asm__ ("move.d $sp,%0" : "=rm" (sp)); sp; }) + +#endif /* pt-machine.h */ diff --git a/libpthread/linuxthreads.old/sysdeps/frv/pt-machine.h b/libpthread/linuxthreads.old/sysdeps/frv/pt-machine.h index 64df5ffdb..c4c337b76 100644 --- a/libpthread/linuxthreads.old/sysdeps/frv/pt-machine.h +++ b/libpthread/linuxthreads.old/sysdeps/frv/pt-machine.h @@ -22,10 +22,16 @@ #ifndef _PT_MACHINE_H #define _PT_MACHINE_H 1 +#include <features.h> + #ifndef __ASSEMBLER__ #ifndef PT_EI -# define PT_EI extern inline __attribute__ ((always_inline)) +# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) +# define PT_EI static inline __attribute__((always_inline)) +# else +# define PT_EI extern inline __attribute__((always_inline)) +# endif #endif /* Spinlock implementation; required. */ diff --git a/libpthread/linuxthreads.old/sysdeps/h8300/pt-machine.h b/libpthread/linuxthreads.old/sysdeps/h8300/pt-machine.h index ad83147cb..a3cbfa014 100644 --- a/libpthread/linuxthreads.old/sysdeps/h8300/pt-machine.h +++ b/libpthread/linuxthreads.old/sysdeps/h8300/pt-machine.h @@ -22,12 +22,16 @@ #ifndef _PT_MACHINE_H #define _PT_MACHINE_H 1 +#include <features.h> + #ifndef PT_EI -# define PT_EI extern inline +# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) +# define PT_EI static inline __attribute__((always_inline)) +# else +# define PT_EI extern inline __attribute__((always_inline)) +# endif #endif -extern long int testandset (int *spinlock); - /* Spinlock implementation; required. */ PT_EI long int testandset (int *spinlock) diff --git a/libpthread/linuxthreads.old/sysdeps/i386/pt-machine.h b/libpthread/linuxthreads.old/sysdeps/i386/pt-machine.h index af1818d7b..858a9c7ed 100644 --- a/libpthread/linuxthreads.old/sysdeps/i386/pt-machine.h +++ b/libpthread/linuxthreads.old/sysdeps/i386/pt-machine.h @@ -22,13 +22,21 @@ #ifndef _PT_MACHINE_H #define _PT_MACHINE_H 1 +#include <features.h> + #ifndef __ASSEMBLER__ #ifndef PT_EI -# define PT_EI extern inline __attribute__ ((always_inline)) +# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) +# define PT_EI static inline __attribute__((always_inline)) +# else +# define PT_EI extern inline __attribute__((always_inline)) +# endif #endif +/* extern long int testandset (int *spinlock); extern int __compare_and_swap (long int *p, long int oldval, long int newval); +*/ /* Get some notion of the current stack. Need not be exactly the top of the stack, just something somewhere in the current frame. */ diff --git a/libpthread/linuxthreads.old/sysdeps/ia64/pt-machine.h b/libpthread/linuxthreads.old/sysdeps/ia64/pt-machine.h index a5ffec48d..bbb6b11e9 100644 --- a/libpthread/linuxthreads.old/sysdeps/ia64/pt-machine.h +++ b/libpthread/linuxthreads.old/sysdeps/ia64/pt-machine.h @@ -21,6 +21,7 @@ #ifndef _PT_MACHINE_H #define _PT_MACHINE_H 1 +#include <features.h> #include <ia64intrin.h> #include <sys/types.h> @@ -28,12 +29,13 @@ extern int __clone2 (int (*__fn) (void *__arg), void *__child_stack_base, size_t __child_stack_size, int __flags, void *__arg, ...); #ifndef PT_EI -# define PT_EI extern inline __attribute__ ((always_inline)) +# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) +# define PT_EI static inline __attribute__((always_inline)) +# else +# define PT_EI extern inline __attribute__((always_inline)) +# endif #endif -extern long int testandset (int *spinlock); -extern int __compare_and_swap (long int *p, long int oldval, long int newval); - /* Make sure gcc doesn't try to be clever and move things around on us. We need to use _exactly_ the address the user gave us, not some alias that contains the same information. */ diff --git a/libpthread/linuxthreads.old/sysdeps/m68k/pt-machine.h b/libpthread/linuxthreads.old/sysdeps/m68k/pt-machine.h index 4670ae3c4..5876d2071 100644 --- a/libpthread/linuxthreads.old/sysdeps/m68k/pt-machine.h +++ b/libpthread/linuxthreads.old/sysdeps/m68k/pt-machine.h @@ -22,13 +22,16 @@ #ifndef _PT_MACHINE_H #define _PT_MACHINE_H 1 +#include <features.h> + #ifndef PT_EI -# define PT_EI extern inline __attribute__ ((always_inline)) +# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) +# define PT_EI static inline __attribute__((always_inline)) +# else +# define PT_EI extern inline __attribute__((always_inline)) +# endif #endif -extern long int testandset (int *spinlock); -extern int __compare_and_swap (long int *p, long int oldval, long int newval); - /* Spinlock implementation; required. */ PT_EI long int testandset (int *spinlock) diff --git a/libpthread/linuxthreads.old/sysdeps/mips/pt-machine.h b/libpthread/linuxthreads.old/sysdeps/mips/pt-machine.h index 0bf7fc5b0..2c0f808fc 100644 --- a/libpthread/linuxthreads.old/sysdeps/mips/pt-machine.h +++ b/libpthread/linuxthreads.old/sysdeps/mips/pt-machine.h @@ -26,6 +26,14 @@ #include <features.h> +#ifndef PT_EI +# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) +# define PT_EI static inline __attribute__((always_inline)) +# else +# define PT_EI extern inline __attribute__((always_inline)) +# endif +#endif + /* Copyright (C) 2000, 2002 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Maciej W. Rozycki <macro@ds2.pg.gda.pl>, 2000. */ @@ -55,14 +63,6 @@ __NTH (_test_and_set (int *p, int v)) } -#ifndef PT_EI -# define PT_EI extern inline __attribute__ ((always_inline)) -#endif - -extern long int testandset (int *spinlock); -extern int __compare_and_swap (long int *p, long int oldval, long int newval); - - /* Spinlock implementation; required. */ PT_EI long int diff --git a/libpthread/linuxthreads.old/sysdeps/nios/pt-machine.h b/libpthread/linuxthreads.old/sysdeps/nios/pt-machine.h index 5d82b8d16..20333d743 100644 --- a/libpthread/linuxthreads.old/sysdeps/nios/pt-machine.h +++ b/libpthread/linuxthreads.old/sysdeps/nios/pt-machine.h @@ -22,11 +22,16 @@ #ifndef _PT_MACHINE_H #define _PT_MACHINE_H 1 +#include <features.h> + #ifndef PT_EI -# define PT_EI extern inline +# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) +# define PT_EI static inline __attribute__((always_inline)) +# else +# define PT_EI extern inline __attribute__((always_inline)) +# endif #endif -extern long int testandset (int *spinlock); /* Spinlock implementation; required. */ /* it is weird and dangerous to disable interrupt in userspace, but for nios what else we can do before we have a swap like instruction? This is better diff --git a/libpthread/linuxthreads.old/sysdeps/nios2/pt-machine.h b/libpthread/linuxthreads.old/sysdeps/nios2/pt-machine.h index 484a77e14..49013e1a2 100644 --- a/libpthread/linuxthreads.old/sysdeps/nios2/pt-machine.h +++ b/libpthread/linuxthreads.old/sysdeps/nios2/pt-machine.h @@ -21,12 +21,16 @@ #ifndef _PT_MACHINE_H #define _PT_MACHINE_H 1 +#include <features.h> + #ifndef PT_EI -# define PT_EI extern inline +# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) +# define PT_EI static inline __attribute__((always_inline)) +# else +# define PT_EI extern inline __attribute__((always_inline)) +# endif #endif -extern long int testandset (int *spinlock); - /* Spinlock implementation; required. */ PT_EI long int testandset (int *spinlock) diff --git a/libpthread/linuxthreads.old/sysdeps/powerpc/pt-machine.h b/libpthread/linuxthreads.old/sysdeps/powerpc/pt-machine.h index 9e6543a26..b25347939 100644 --- a/libpthread/linuxthreads.old/sysdeps/powerpc/pt-machine.h +++ b/libpthread/linuxthreads.old/sysdeps/powerpc/pt-machine.h @@ -24,13 +24,16 @@ #ifndef _PT_MACHINE_H #define _PT_MACHINE_H 1 +#include <features.h> + #ifndef PT_EI -# define PT_EI extern inline +# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) +# define PT_EI static inline __attribute__((always_inline)) +# else +# define PT_EI extern inline __attribute__((always_inline)) +# endif #endif -extern long int testandset (int *spinlock); -extern int __compare_and_swap (long int *p, long int oldval, long int newval); - /* For multiprocessor systems, we want to ensure all memory accesses are completed before we reset a lock. On other systems, we still need to make sure that the compiler has flushed everything to memory. */ diff --git a/libpthread/linuxthreads.old/sysdeps/sh/pt-machine.h b/libpthread/linuxthreads.old/sysdeps/sh/pt-machine.h index 02545e6b4..d1e560d33 100644 --- a/libpthread/linuxthreads.old/sysdeps/sh/pt-machine.h +++ b/libpthread/linuxthreads.old/sysdeps/sh/pt-machine.h @@ -22,14 +22,17 @@ #ifndef _PT_MACHINE_H #define _PT_MACHINE_H 1 +#include <features.h> + #ifndef __ASSEMBLER__ #ifndef PT_EI -# define PT_EI extern inline __attribute__ ((always_inline)) +# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) +# define PT_EI static inline __attribute__((always_inline)) +# else +# define PT_EI extern inline __attribute__((always_inline)) +# endif #endif -extern long int testandset (int *spinlock); -extern int __compare_and_swap (long int *p, long int oldval, long int newval); - /* Spinlock implementation; required. */ PT_EI long int testandset (int *spinlock) diff --git a/libpthread/linuxthreads.old/sysdeps/sh64/pt-machine.h b/libpthread/linuxthreads.old/sysdeps/sh64/pt-machine.h index 8269a4cb3..b45df975b 100644 --- a/libpthread/linuxthreads.old/sysdeps/sh64/pt-machine.h +++ b/libpthread/linuxthreads.old/sysdeps/sh64/pt-machine.h @@ -22,15 +22,22 @@ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#ifndef PT_EI -# define PT_EI extern inline -#endif +#ifndef _PT_MACHINE_H +#define _PT_MACHINE_H 1 -/* Spinlock implementation; required. */ -extern long int testandset (int *spinlock); +#include <features.h> +#ifndef PT_EI +# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) +# define PT_EI static inline __attribute__((always_inline)) +# else +# define PT_EI extern inline __attribute__((always_inline)) +# endif +#endif /* Get some notion of the current stack. Need not be exactly the top of the stack, just something somewhere in the current frame. */ #define CURRENT_STACK_FRAME stack_pointer register char * stack_pointer __asm__ ("r15"); + +#endif /* pt-machine.h */ diff --git a/libpthread/linuxthreads.old/sysdeps/v850/pt-machine.h b/libpthread/linuxthreads.old/sysdeps/v850/pt-machine.h index fb41c41e9..a9cb9b8bf 100644 --- a/libpthread/linuxthreads.old/sysdeps/v850/pt-machine.h +++ b/libpthread/linuxthreads.old/sysdeps/v850/pt-machine.h @@ -11,8 +11,17 @@ * Written by Miles Bader <miles@gnu.org> */ +#ifndef _PT_MACHINE_H +#define _PT_MACHINE_H 1 + +#include <features.h> + #ifndef PT_EI -# define PT_EI extern inline +# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) +# define PT_EI static inline __attribute__((always_inline)) +# else +# define PT_EI extern inline __attribute__((always_inline)) +# endif #endif /* Get some notion of the current stack. Need not be exactly the top @@ -44,3 +53,4 @@ __compare_and_swap (long *ptr, long old, long new) return 0; } } +#endif /* pt-machine.h */ diff --git a/libpthread/linuxthreads.old/sysdeps/x86_64/pt-machine.h b/libpthread/linuxthreads.old/sysdeps/x86_64/pt-machine.h index f6ff845ac..0122a28fb 100644 --- a/libpthread/linuxthreads.old/sysdeps/x86_64/pt-machine.h +++ b/libpthread/linuxthreads.old/sysdeps/x86_64/pt-machine.h @@ -21,6 +21,8 @@ #ifndef _PT_MACHINE_H #define _PT_MACHINE_H 1 +#include <features.h> + #ifndef __ASSEMBLER__ # include <stddef.h> /* For offsetof. */ # include <stdlib.h> /* For abort(). */ @@ -28,11 +30,12 @@ # ifndef PT_EI -# define PT_EI extern inline __attribute__ ((always_inline)) +# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) +# define PT_EI static inline __attribute__((always_inline)) +# else +# define PT_EI extern inline __attribute__((always_inline)) +# endif # endif - -extern long int testandset (int *__spinlock); -extern int __compare_and_swap (long int *__p, long int __oldval, long int __newval); /* Get some notion of the current stack. Need not be exactly the top of the stack, just something somewhere in the current frame. */ diff --git a/libpthread/linuxthreads/internals.h b/libpthread/linuxthreads/internals.h index c8e4262d6..8e270e37a 100644 --- a/libpthread/linuxthreads/internals.h +++ b/libpthread/linuxthreads/internals.h @@ -531,9 +531,9 @@ weak_extern (__pthread_thread_self) # define __manager_thread __pthread_manager_threadp #endif -extern __always_inline pthread_descr +static __always_inline pthread_descr check_thread_self (void); -extern __always_inline pthread_descr +static __always_inline pthread_descr check_thread_self (void) { pthread_descr self = thread_self (); diff --git a/libpthread/linuxthreads/sysdeps/alpha/pt-machine.h b/libpthread/linuxthreads/sysdeps/alpha/pt-machine.h index 853ac6f04..26805c4e2 100644 --- a/libpthread/linuxthreads/sysdeps/alpha/pt-machine.h +++ b/libpthread/linuxthreads/sysdeps/alpha/pt-machine.h @@ -23,8 +23,14 @@ #ifndef _PT_MACHINE_H #define _PT_MACHINE_H 1 +#include <features.h> + #ifndef PT_EI -# define PT_EI extern inline __attribute__ ((always_inline)) +# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) +# define PT_EI static inline __attribute__((always_inline)) +# else +# define PT_EI extern inline __attribute__((always_inline)) +# endif #endif #ifdef __linux__ @@ -33,9 +39,6 @@ # include <machine/pal.h> #endif -extern long int testandset (int *spinlock); -extern int __compare_and_swap (long int *p, long int oldval, long int newval); - /* Get some notion of the current stack. Need not be exactly the top of the stack, just something somewhere in the current frame. */ #define CURRENT_STACK_FRAME stack_pointer diff --git a/libpthread/linuxthreads/sysdeps/arm/pt-machine.h b/libpthread/linuxthreads/sysdeps/arm/pt-machine.h index a4c2f314c..80d040f4c 100644 --- a/libpthread/linuxthreads/sysdeps/arm/pt-machine.h +++ b/libpthread/linuxthreads/sysdeps/arm/pt-machine.h @@ -22,13 +22,16 @@ #ifndef _PT_MACHINE_H #define _PT_MACHINE_H 1 +#include <features.h> + #ifndef PT_EI -# define PT_EI extern inline __attribute__ ((always_inline)) +# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) +# define PT_EI static inline __attribute__((always_inline)) +# else +# define PT_EI extern inline __attribute__((always_inline)) +# endif #endif -extern long int testandset (int *spinlock); -extern int __compare_and_swap (long int *p, long int oldval, long int newval); - /* This will not work on ARM1 or ARM2 because SWP is lacking on those machines. Unfortunately we have no way to detect this at compile time; let's hope nobody tries to use one. */ diff --git a/libpthread/linuxthreads/sysdeps/avr32/pt-machine.h b/libpthread/linuxthreads/sysdeps/avr32/pt-machine.h index 9ff55586b..253bda528 100644 --- a/libpthread/linuxthreads/sysdeps/avr32/pt-machine.h +++ b/libpthread/linuxthreads/sysdeps/avr32/pt-machine.h @@ -11,6 +11,14 @@ #include <features.h> +#ifndef PT_EI +# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) +# define PT_EI static inline __attribute__((always_inline)) +# else +# define PT_EI extern inline __attribute__((always_inline)) +# endif +#endif + static inline int _test_and_set (int *p, int v) __THROW { @@ -26,10 +34,6 @@ _test_and_set (int *p, int v) __THROW return result; } -#ifndef PT_EI -# define PT_EI extern inline -#endif - extern long int testandset (int *spinlock); extern int __compare_and_swap (long int *p, long int oldval, long int newval); diff --git a/libpthread/linuxthreads/sysdeps/cris/pt-machine.h b/libpthread/linuxthreads/sysdeps/cris/pt-machine.h index 431da7101..d6e46f376 100644 --- a/libpthread/linuxthreads/sysdeps/cris/pt-machine.h +++ b/libpthread/linuxthreads/sysdeps/cris/pt-machine.h @@ -21,13 +21,16 @@ #ifndef _PT_MACHINE_H #define _PT_MACHINE_H 1 +#include <features.h> + #ifndef PT_EI -# define PT_EI extern inline __attribute__ ((always_inline)) +# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) +# define PT_EI static inline __attribute__((always_inline)) +# else +# define PT_EI extern inline __attribute__((always_inline)) +# endif #endif -extern long int testandset (int *spinlock); -extern int __compare_and_swap (long int *p, long int oldval, long int newval); - PT_EI long int testandset (int *spinlock) { diff --git a/libpthread/linuxthreads/sysdeps/hppa/pt-machine.h b/libpthread/linuxthreads/sysdeps/hppa/pt-machine.h index abc25c4ca..e50a42e31 100644 --- a/libpthread/linuxthreads/sysdeps/hppa/pt-machine.h +++ b/libpthread/linuxthreads/sysdeps/hppa/pt-machine.h @@ -22,15 +22,17 @@ #ifndef _PT_MACHINE_H #define _PT_MACHINE_H 1 +#include <features.h> #include <bits/initspin.h> #ifndef PT_EI -# define PT_EI extern inline __attribute__ ((always_inline)) +# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) +# define PT_EI static inline __attribute__((always_inline)) +# else +# define PT_EI extern inline __attribute__((always_inline)) +# endif #endif -extern long int testandset (int *spinlock); -extern int __compare_and_swap (long int *p, long int oldval, long int newval); - /* Get some notion of the current stack. Need not be exactly the top of the stack, just something somewhere in the current frame. */ #define CURRENT_STACK_FRAME stack_pointer diff --git a/libpthread/linuxthreads/sysdeps/i386/pt-machine.h b/libpthread/linuxthreads/sysdeps/i386/pt-machine.h index 8483d4ef6..ad004e90d 100644 --- a/libpthread/linuxthreads/sysdeps/i386/pt-machine.h +++ b/libpthread/linuxthreads/sysdeps/i386/pt-machine.h @@ -29,12 +29,17 @@ #ifndef __ASSEMBLER__ #ifndef PT_EI -# define PT_EI extern inline __attribute__ ((always_inline)) +# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) +# define PT_EI static inline __attribute__((always_inline)) +# else +# define PT_EI extern inline __attribute__((always_inline)) +# endif #endif +/* extern long int testandset (int *spinlock); extern int __compare_and_swap (long int *p, long int oldval, long int newval); - +*/ /* Get some notion of the current stack. Need not be exactly the top of the stack, just something somewhere in the current frame. */ #define CURRENT_STACK_FRAME __builtin_frame_address (0) diff --git a/libpthread/linuxthreads/sysdeps/ia64/pt-machine.h b/libpthread/linuxthreads/sysdeps/ia64/pt-machine.h index be1d37986..2fc94ec46 100644 --- a/libpthread/linuxthreads/sysdeps/ia64/pt-machine.h +++ b/libpthread/linuxthreads/sysdeps/ia64/pt-machine.h @@ -21,15 +21,17 @@ #ifndef _PT_MACHINE_H #define _PT_MACHINE_H 1 +#include <features.h> #include <ia64intrin.h> #ifndef PT_EI -# define PT_EI extern inline __attribute__ ((always_inline)) +# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) +# define PT_EI static inline __attribute__((always_inline)) +# else +# define PT_EI extern inline __attribute__((always_inline)) +# endif #endif -extern long int testandset (int *spinlock); -extern int __compare_and_swap (long int *p, long int oldval, long int newval); - /* Make sure gcc doesn't try to be clever and move things around on us. We need to use _exactly_ the address the user gave us, not some alias that contains the same information. */ diff --git a/libpthread/linuxthreads/sysdeps/m68k/pt-machine.h b/libpthread/linuxthreads/sysdeps/m68k/pt-machine.h index ad524d6d2..3d1e87db1 100644 --- a/libpthread/linuxthreads/sysdeps/m68k/pt-machine.h +++ b/libpthread/linuxthreads/sysdeps/m68k/pt-machine.h @@ -22,13 +22,16 @@ #ifndef _PT_MACHINE_H #define _PT_MACHINE_H 1 +#include <features.h> + #ifndef PT_EI -# define PT_EI extern inline __attribute__ ((always_inline)) +# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) +# define PT_EI static inline __attribute__((always_inline)) +# else +# define PT_EI extern inline __attribute__((always_inline)) +# endif #endif -extern long int testandset (int *spinlock); -extern int __compare_and_swap (long int *p, long int oldval, long int newval); - /* Spinlock implementation; required. */ PT_EI long int testandset (int *spinlock) diff --git a/libpthread/linuxthreads/sysdeps/mips/pt-machine.h b/libpthread/linuxthreads/sysdeps/mips/pt-machine.h index 96f7a7f8c..ce7028631 100644 --- a/libpthread/linuxthreads/sysdeps/mips/pt-machine.h +++ b/libpthread/linuxthreads/sysdeps/mips/pt-machine.h @@ -24,17 +24,18 @@ #ifndef _PT_MACHINE_H #define _PT_MACHINE_H 1 +#include <features.h> #include <sgidefs.h> #include <sys/tas.h> #ifndef PT_EI -# define PT_EI extern inline __attribute__ ((always_inline)) +# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) +# define PT_EI static inline __attribute__((always_inline)) +# else +# define PT_EI extern inline __attribute__((always_inline)) +# endif #endif -extern long int testandset (int *spinlock); -extern int __compare_and_swap (long int *p, long int oldval, long int newval); - - /* Spinlock implementation; required. */ PT_EI long int diff --git a/libpthread/linuxthreads/sysdeps/sh/pt-machine.h b/libpthread/linuxthreads/sysdeps/sh/pt-machine.h index 02545e6b4..d1e560d33 100644 --- a/libpthread/linuxthreads/sysdeps/sh/pt-machine.h +++ b/libpthread/linuxthreads/sysdeps/sh/pt-machine.h @@ -22,14 +22,17 @@ #ifndef _PT_MACHINE_H #define _PT_MACHINE_H 1 +#include <features.h> + #ifndef __ASSEMBLER__ #ifndef PT_EI -# define PT_EI extern inline __attribute__ ((always_inline)) +# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) +# define PT_EI static inline __attribute__((always_inline)) +# else +# define PT_EI extern inline __attribute__((always_inline)) +# endif #endif -extern long int testandset (int *spinlock); -extern int __compare_and_swap (long int *p, long int oldval, long int newval); - /* Spinlock implementation; required. */ PT_EI long int testandset (int *spinlock) diff --git a/libpthread/linuxthreads/sysdeps/x86_64/pt-machine.h b/libpthread/linuxthreads/sysdeps/x86_64/pt-machine.h index b30ab8518..66f9652fa 100644 --- a/libpthread/linuxthreads/sysdeps/x86_64/pt-machine.h +++ b/libpthread/linuxthreads/sysdeps/x86_64/pt-machine.h @@ -21,6 +21,8 @@ #ifndef _PT_MACHINE_H #define _PT_MACHINE_H 1 +# include <features.h> + #ifndef __ASSEMBLER__ # include <stddef.h> /* For offsetof. */ # include <stdlib.h> /* For abort(). */ @@ -28,12 +30,13 @@ # ifndef PT_EI -# define PT_EI extern inline __attribute__ ((always_inline)) +# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) +# define PT_EI static inline __attribute__((always_inline)) +# else +# define PT_EI extern inline __attribute__((always_inline)) +# endif # endif -extern long int testandset (int *spinlock); -extern int __compare_and_swap (long int *p, long int oldval, long int newval); - /* Get some notion of the current stack. Need not be exactly the top of the stack, just something somewhere in the current frame. */ # define CURRENT_STACK_FRAME stack_pointer |