summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter S. Mazinger <ps.m@gmx.net>2005-11-18 20:33:38 +0000
committerPeter S. Mazinger <ps.m@gmx.net>2005-11-18 20:33:38 +0000
commit5c41b5d413d0e94bbbb536429dd7de3a2b75301e (patch)
treebf71d1938f849d3885acc4378248b770e2ab3019
parent0af31576f148f8ad3a4dd7fab2dea7132e9e6f5b (diff)
Enable __THROW,_NTH,REDIRECT_NTH
-rw-r--r--include/malloc.h2
-rw-r--r--include/sys/cdefs.h5
-rw-r--r--libpthread/linuxthreads.old/specific.c2
-rw-r--r--libpthread/linuxthreads.old/sysdeps/pthread/bits/libc-tsd.h7
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 \