glibc40/glibc-no-leaf-attribute.patch
2012-07-10 14:20:40 +04:00

36 lines
1.4 KiB
Diff

--- glibc-2.15-a316c1f/misc/sys/cdefs.h.orig 2012-02-11 15:42:05.510993089 -0200
+++ glibc-2.15-a316c1f/misc/sys/cdefs.h 2012-02-11 15:42:48.358183501 -0200
@@ -38,30 +38,20 @@
#ifdef __GNUC__
-/* All functions, except those with callbacks or those that
- synchronize memory, are leaf functions. */
-# if __GNUC_PREREQ (4, 6) && !defined _LIBC
-# define __LEAF , __leaf__
-# define __LEAF_ATTR __attribute__ ((__leaf__))
-# else
-# define __LEAF
-# define __LEAF_ATTR
-# endif
-
/* 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. 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 !defined __cplusplus && __GNUC_PREREQ (3, 3)
-# define __THROW __attribute__ ((__nothrow__ __LEAF))
+# define __THROW __attribute__ ((__nothrow__))
# define __THROWNL __attribute__ ((__nothrow__))
-# define __NTH(fct) __attribute__ ((__nothrow__ __LEAF)) fct
+# define __NTH(fct) __attribute__ ((__nothrow__)) fct
# else
# if defined __cplusplus && __GNUC_PREREQ (2,8)
# define __THROW throw ()
# define __THROWNL throw ()
-# define __NTH(fct) __LEAF_ATTR fct throw ()
+# define __NTH(fct) fct throw ()
# else
# define __THROW
# define __THROWNL