2b606faa21024932f6819ba31e846d866db9d2f9 |
|
26-Nov-2011 |
Konstantin Belousov <kostikbel@gmail.com> |
Fix compilation on non-glibc machines. Commit 297d9cd07d7ea9b541fb13bffe418 (Fix for failing test-setjmp) breaks non glibc systems, since __GLIBC_PREREQ is not defined there. As a consequence, preprocessor aborts with an error. Trying to hide __GLIBC_PREREQ under #ifdef __GLIBC would require either code duplication, or moving the longjmp implementation into the separate file, which is included twice. In fact, I am not sure in any use of the __GLIBC_PREREQ at the compile time, because the compiled code can be run on the later version of glibc. Below is the patch, tested on FreeBSD x86/x86_64 and Scientific Linux 6.1 x86_64. I compile the code always, but keep it in under unused static symbol. In principle, the code could be optimized out by linker. [ Minor formatting edits: asharma@fb.com ]
/external/libunwind/src/setjmp/longjmp.c
|
297d9cd07d7ea9b541fb13bffe418c8b2a8c3aa6 |
|
15-Nov-2011 |
Paul Pluzhnikov <ppluzhnikov@google.com> |
Fix for failing test-setjmp On Mon, Nov 14, 2011 at 5:02 PM, Paul Pluzhnikov <ppluzhnikov@google.com> wrote: > P.S. test-setjmp is failing for me (before or after the patch). > When I enable assertions (to confirm my new assertions are correct), I see: > > lt-test-setjmp: ../../src/dwarf/Gparser.c:754: apply_reg_state: \ > Assertion `rs->reg[17].where == DWARF_WHERE_EXPR' failed. > > which likely explains that failure. The problem is actually two-fold: First, the loops in {sig,}longjmp.c are "do { ... } while (unw_step() >= 0);" But unw_step() returns 0 on reaching the end of the chain (_start), and the loop should stop there. The second problem is that with this commit: http://repo.or.cz/w/glibc.git/commitdiff/c67da0b50e3d20f89d7bb352cd67dcf66d808e50 glibc obfuscates value of SP in jmp_buf, so we might as well just give up. Patch attached. Thanks, -- Paul Pluzhnikov
/external/libunwind/src/setjmp/longjmp.c
|
c4133e879b8cfa7e7295f7d35bde22dfc800ebc8 |
|
16-Oct-2011 |
Arun Sharma <asharma@fb.com> |
undef FORTIFY_SOURCE It's a bit annoying to undefine at configure or compile time. Signed-off-by: Arun Sharma <asharma@fb.com>
/external/libunwind/src/setjmp/longjmp.c
|
5715d912f4f43041735031170d7f8ead6f70924d |
|
03-Apr-2010 |
Konstantin Belousov <kostik@pooma.home> |
Make setjmp/longjmp work at least on FreeBSD/amd64. FreeBSD-supplied setjmp() saves incremented stack pointer into jmpbuf. I have no idea whether siglongjmp ever worked on amd64, since UNW_NUM_EH_REGS == 2 and abort at siglongjmp.c:81 is firing.
/external/libunwind/src/setjmp/longjmp.c
|
093855f12a00d4eacf548db6095235f970f88305 |
|
07-Mar-2010 |
Konstantin Belousov <kostik@pooma.home> |
Remove unneeded includes of sys/types.h
/external/libunwind/src/setjmp/longjmp.c
|
3eabce18b1e70c3b26975024e450977dfb4b84b9 |
|
06-Mar-2010 |
Konstantin Belousov <kostik@pooma.home> |
Include sys/types.h when needed.
/external/libunwind/src/setjmp/longjmp.c
|
3842dac7333e42aa44531eda34ba55200b99ccf8 |
|
05-Feb-2008 |
Daniel Jacobowitz <drow@false.org> |
Add initial ARM and MIPS support. To support this, also enable the reading of .debug_frame sections (used in lieu of .eh_frame sections when they're not available).
/external/libunwind/src/setjmp/longjmp.c
|
a369768c279654ae247643f81e0d2f6f7ddd4d15 |
|
26-Jul-2006 |
David Mosberger-Tang <davidm@koala.localdomain> |
Revert "Initial revision" This reverts 06d223e924c0c16f2df3e1eeb92e4c44224969fd commit.
/external/libunwind/src/setjmp/longjmp.c
|
06d223e924c0c16f2df3e1eeb92e4c44224969fd |
|
03-May-2005 |
mostang.com!davidm <mostang.com!davidm> |
Initial revision
/external/libunwind/src/setjmp/longjmp.c
|
4f16756123d6203bc1ce4977032fb93c632a5a56 |
|
03-May-2005 |
mostang.com!davidm <mostang.com!davidm> |
Include "setjmp_i.h". Abstract ia64-specific code into bsp_match() routine. Support any platform with at least 2 EH argument registers. 2004/12/06 01:33:16-08:00 mostang.com!davidm Rename: src/longjmp.c -> src/setjmp/longjmp.c (Logical change 1.290)
/external/libunwind/src/setjmp/longjmp.c
|