From 5c41b5d413d0e94bbbb536429dd7de3a2b75301e Mon Sep 17 00:00:00 2001 From: "Peter S. Mazinger" Date: Fri, 18 Nov 2005 20:33:38 +0000 Subject: Enable __THROW,_NTH,REDIRECT_NTH --- include/malloc.h | 2 ++ include/sys/cdefs.h | 5 +---- libpthread/linuxthreads.old/specific.c | 2 +- libpthread/linuxthreads.old/sysdeps/pthread/bits/libc-tsd.h | 7 +++---- 4 files changed, 7 insertions(+), 9 deletions(-) diff --git a/include/malloc.h b/include/malloc.h index 6b8e1ad91..354f153d4 100644 --- a/include/malloc.h +++ b/include/malloc.h @@ -64,11 +64,13 @@ /* GCC can always grok prototypes. For C++ programs we add throw() to help it optimize the function calls. But this works only with gcc 2.8.x and egcs. */ +#ifndef __THROW # if defined __cplusplus && (__GNUC__ >= 3 || __GNUC_MINOR__ >= 8) # define __THROW throw () # else # define __THROW # endif +#endif # define __MALLOC_P(args) args __THROW /* This macro will be used for functions which might take C++ callback functions. */ diff --git a/include/sys/cdefs.h b/include/sys/cdefs.h index 0a6d345bc..eb192cca4 100644 --- a/include/sys/cdefs.h +++ b/include/sys/cdefs.h @@ -42,7 +42,7 @@ gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions as non-throwing using a function attribute since programs can use the -fexceptions options for C code as well. */ -# if 0 //!defined __cplusplus && __GNUC_PREREQ (3, 3) +# if !defined __cplusplus && __GNUC_PREREQ (3, 3) # define __THROW __attribute__ ((__nothrow__)) # define __NTH(fct) __attribute__ ((__nothrow__)) fct # else @@ -164,8 +164,6 @@ #if defined __GNUC__ && __GNUC__ >= 2 # define __REDIRECT(name, proto, alias) name proto __asm__ (__ASMNAME (#alias)) -# define __ASMNAME(cname) __C_SYMBOL_PREFIX__ cname -/* # ifdef __cplusplus # define __REDIRECT_NTH(name, proto, alias) \ name proto __THROW __asm__ (__ASMNAME (#alias)) @@ -175,7 +173,6 @@ # endif # define __ASMNAME(cname) __ASMNAME2 (__USER_LABEL_PREFIX__, cname) # define __ASMNAME2(prefix, cname) __STRING (prefix) cname -*/ /* #elif __SOME_OTHER_COMPILER__ diff --git a/libpthread/linuxthreads.old/specific.c b/libpthread/linuxthreads.old/specific.c index d8b5bb0b3..ae836055d 100644 --- a/libpthread/linuxthreads.old/specific.c +++ b/libpthread/linuxthreads.old/specific.c @@ -200,5 +200,5 @@ libc_internal_tsd_address (enum __libc_tsd_key_t key) return &self->p_libc_specific[key]; } void **(*const __libc_internal_tsd_address) (enum __libc_tsd_key_t key) - __THROW __attribute__ ((__const__)) = libc_internal_tsd_address; + __attribute__ ((__const__)) = libc_internal_tsd_address; #endif diff --git a/libpthread/linuxthreads.old/sysdeps/pthread/bits/libc-tsd.h b/libpthread/linuxthreads.old/sysdeps/pthread/bits/libc-tsd.h index efd0c83be..c152fddba 100644 --- a/libpthread/linuxthreads.old/sysdeps/pthread/bits/libc-tsd.h +++ b/libpthread/linuxthreads.old/sysdeps/pthread/bits/libc-tsd.h @@ -40,11 +40,10 @@ enum __libc_tsd_key_t { _LIBC_TSD_KEY_MALLOC = 0, #else -extern void *(*__libc_internal_tsd_get) (enum __libc_tsd_key_t) __THROW; -extern int (*__libc_internal_tsd_set) (enum __libc_tsd_key_t, - __const void *) __THROW; +extern void *(*__libc_internal_tsd_get) (enum __libc_tsd_key_t); +extern int (*__libc_internal_tsd_set) (enum __libc_tsd_key_t, __const void *); extern void **(*const __libc_internal_tsd_address) (enum __libc_tsd_key_t) - __THROW __attribute__ ((__const__)); + __attribute__ ((__const__)); #define __libc_tsd_address(KEY) \ (__libc_internal_tsd_address != NULL \ -- cgit v1.2.3