This is the mail archive of the libc-ports@sources.redhat.com mailing list for the libc-ports project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH][alpha] Fix exception support


All tests built with -fexceptions are not working, due to a bug in 
pointer mangling. PTR_MANGLE and PTR_DEMANGLE are defined in 
sysdeps/unix/alpha/sysdep.h for both ASSEMBLER and !ASSEMBLER cases, but
within a !ASSEMBLER ifdef block. As a result pointer mangling is never
done for assembler code.

The patch below fixes the issues, and fixes the following tests of the
testsuite:
- tst-cancel24.out, Error 1
- tst-cancelx16.out, Error 1
- tst-cancelx17.out, Error 1
- tst-cancelx18.out, Error 1
- tst-cancelx20.out, Error 1
- tst-cancelx21.out, Error 1
- tst-cancelx4.out, Error 1
- tst-cancelx5.out, Error 1
- tst-cleanupx0.out, Error 1
- tst-cleanupx1.out, Error 1
- tst-cleanupx3.out, Error 1
- tst-cleanupx4.out, Error 1
- tst-mqueue8x.out, Error 1
- tst-oncex3.out, Error 1
- tst-oncex4.out, Error 1


2011-03-26  Aurelien Jarno  <aurelien@aurel32.net>

        * sysdeps/unix/alpha/sysdep.h (PTR_MANGLE): Move out of ASSEMBLER 
	ifdef. 
	(PTR_DEMANGLE): Likewise.

diff --git a/sysdeps/unix/alpha/sysdep.h b/sysdeps/unix/alpha/sysdep.h
index d9009c1..25979ad 100644
--- a/sysdeps/unix/alpha/sysdep.h
+++ b/sysdeps/unix/alpha/sysdep.h
@@ -157,6 +157,8 @@ __LABEL(name)						\
 
 #else /* !ASSEMBLER */
 
+#include <stdint.h>
+
 /* ??? Linux needs to be able to override INLINE_SYSCALL for one
    particular special case.  Make this easy.  */
 
@@ -399,11 +401,11 @@ __LABEL(name)						\
 	_sc_ret = _sc_0, _sc_err = _sc_19;			\
 }
 
+#endif /* ASSEMBLER */
+
 /* Pointer mangling support.  Note that tls access is slow enough that
    we don't deoptimize things by placing the pointer check value there.  */
 
-#include <stdint.h>
-
 #if defined NOT_IN_libc && defined IS_IN_rtld
 # ifdef __ASSEMBLER__
 #  define PTR_MANGLE(dst, src, tmp)				\
@@ -447,4 +449,3 @@ extern const uintptr_t __pointer_chk_guard attribute_relro;
 # endif
 #endif
 
-#endif /* ASSEMBLER */

-- 
Aurelien Jarno                          GPG: 1024D/F1BCDB73
aurelien@aurel32.net                 http://www.aurel32.net


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]