Hi,
It seems that linker problem with longjmp caused just by a typo, there
is a patch that fixed this problem for me (below).
The longjmp works somehow. The behavior of my code that uses
setjmp/longjmp, however, is slightly differ with the main branch of
compiler and MSP430X branch. In the last case the firmware that calls
setjmp/longjmp in a loop hangs after a number of iterations; under the
main branch it does not.
--- ./msp430-libc/src/stdlib/setjmp.S 2009-08-25 10:47:53.000000000
+0400
+++ /home/dmz/setjmp.S.original 2009-08-25 10:50:01.000000000 +0400
@@ -49,7 +49,7 @@
XMOVA #0, r15 ; return value
XBR -PUSH_BYTES(r1)
-longjmp:
+longjump:
XMOVA r15, r13
XMOVA r14, r15 ; r15 now contains a return value
XMOVA @r13+, r1 ; restore registers