tccrun: exit() via rt_longjmp()
commitc88b19966c61bfeeeb9b9b092582496875f3d7f5
authorgrischka <grischka>
Wed, 14 Feb 2024 09:00:22 +0000 (14 10:00 +0100)
committergrischka <grischka>
Thu, 15 Feb 2024 17:45:49 +0000 (15 18:45 +0100)
tree55735837ec4d95b9944ca60a3d7ecab95acf91fa
parent8d8d75ca75bc8d2dfd4ff870e9276811a29b9da3
tccrun: exit() via rt_longjmp()

- new LIBTCC API tcc_setjmp() to allow longjmps & signals
  from compiled code back to libtcc per TCCState
- new LIBTCC API tcc_set_backtrace_func() to handle backtrace output
- move c/dtor/atexit stuff to runtime (lib/runmain.c)
- move bt-log.o into libtcc1.a
- add timeouts to github action (beware, it did happen to hang
  infinitely in the signal handler at some point)
16 files changed:
.github/workflows/build.yml
Makefile
lib/Makefile
lib/bt-exe.c
lib/bt-log.c
lib/runmain.c [new file with mode: 0644]
libtcc.h
tcc.h
tccelf.c
tccpe.c
tccrun.c
tests/Makefile
tests/libtcc_test_mt.c
tests/tests2/128_run_atexit.c
tests/tests2/128_run_atexit.expect
win32/lib/crt1.c