From 19641dbd61fe0440fa1f0ebd2f358b5ba98e839f Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Sat, 18 Mar 2017 00:17:25 +0000 Subject: Fix sparc64 bits/setjmp.h namespace (bug 21261). sysdeps/unix/sysv/linux/sparc/bits/setjmp.h defines 64-bit __jmp_buf with a load of identifiers that are not part of any standard namespace, resulting in conform/ tests failing. This patch fixes this by moving those identifiers to the implementation namespace, so enabling the conform/ tests to pass for sparc64. Tested (compilation only) for sparc64 with build-many-glibcs.py. [BZ #21261] * sysdeps/unix/sysv/linux/sparc/bits/setjmp.h [__WORDSIZE == 64 && !_ASM] (__sparc64_jmp_buf): Use reserved names for all fields. * sysdeps/sparc/sparc64/jmpbuf-unwind.h (_JMPBUF_UNWINDS): Update for jmp_buf field renaming. (_JMPBUF_UNWINDS_ADJ): Likewise. --- sysdeps/sparc/sparc64/jmpbuf-unwind.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'sysdeps/sparc/sparc64') diff --git a/sysdeps/sparc/sparc64/jmpbuf-unwind.h b/sysdeps/sparc/sparc64/jmpbuf-unwind.h index d84a5ea410..eb2e2e2fb4 100644 --- a/sysdeps/sparc/sparc64/jmpbuf-unwind.h +++ b/sysdeps/sparc/sparc64/jmpbuf-unwind.h @@ -22,15 +22,16 @@ /* Test if longjmp to JMPBUF would unwind the frame containing a local variable at ADDRESS. */ -#define _JMPBUF_UNWINDS(jmpbuf, address, demangle) \ - ((unsigned long int) (address) < (jmpbuf)->uc_mcontext.mc_gregs[MC_O6] + 2047) +#define _JMPBUF_UNWINDS(jmpbuf, address, demangle) \ + ((unsigned long int) (address) \ + < (jmpbuf)->__uc_mcontext.__mc_gregs[MC_O6] + 2047) #define _JMPBUF_CFA_UNWINDS_ADJ(_jmpbuf, _context, _adj) \ _JMPBUF_UNWINDS_ADJ (_jmpbuf, (void *) _Unwind_GetCFA (_context), _adj) #define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \ ((uintptr_t) (_address) - (_adj) \ - < (uintptr_t) (_jmpbuf)[0].uc_mcontext.mc_gregs[MC_O6] + 2047 - (_adj)) + < (uintptr_t) (_jmpbuf)[0].__uc_mcontext.__mc_gregs[MC_O6] + 2047 - (_adj)) /* We use the normal lobngjmp for unwinding. */ #define __libc_unwind_longjmp(buf, val) __libc_longjmp (buf, val) -- cgit 1.4.1