Commit Graph

48 Commits (ee8f71101b80496b2ec2c996d29ac33bbaf7cf00)

Author SHA1 Message Date
Damien Doligez ee8f71101b clean up whitespace and cut long lines 2016-02-17 13:36:27 +01:00
Bart Jacobs 237daf3457 Add missing unwind info for 'caml_start_program'
This enables correct stack unwinding, and helps prevent random crashes on OS X
due to Cocoa or other Objective-C (or C++) external functions walking
our stack.
2016-01-18 09:11:13 +01:00
Bart Jacobs 75ae60ccca Enabled full stack trace in platform debuggers
Platform debuggers such as `gdb` and `lldb` can now show a full stack trace for
call stacks that include ocamlopt-generated code. Specifically, this commit adds
base pointer information to the stack unwinding metadata of runtime function
`caml_start_program`.
2016-01-09 03:32:22 -08:00
Bart Jacobs edb83d153f Fixed some bugs in stack unwinding metadata of runtime routines
It's easy to forget that the assembler ignores the program's
control flow when computing the resulting CFA offset of the
various CFI_ADJUST directives. Note that unbalanced
CFI_ADJUST directives in one assembly routine cause all offsets
in all subsequent routines to be shifted by the corresponding
amount.
2016-01-09 02:41:34 -08:00
Gabriel Scherer d1c017c7cb PR#6693 libasmrun: fix -pic code generation
(Peter Zotov)

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@16073 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2015-05-02 20:24:46 +00:00
Damien Doligez aa58e55958 port to cygwin-64
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14337 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-12-03 14:43:02 +00:00
Alain Frisch 7335d5f68f caml_backtrace_pos is a 32-bit integer under amd64.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14307 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-11-19 18:01:05 +00:00
Alain Frisch a96fb5be45 Fix Out_of_memory/Stack_overflow.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/raise_variants@14237 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-10-18 15:14:20 +00:00
Alain Frisch 164c307ae3 Support for raise variants in ocamlopt. Only amd64 for now.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/raise_variants@14226 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-10-14 14:33:27 +00:00
Damien Doligez 7844495624 Merge branch 4.01 from branching point to 4.01.0+rc1
Command line used:
  svn merge --accept postpone -r 13776:14055 $REPO/version/4.01 .


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14060 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-09-04 15:12:37 +00:00
Fabrice Le Fessant a04798140b Fix PR#6031 : problem with -with-frame-pointers in caml_allocN
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13763 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-06-11 11:20:03 +00:00
Xavier Leroy 3b46f10a7c PR#5976: crash after recovering from two stack overflows (ocamlopt on MacOS X)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13759 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-06-09 08:52:08 +00:00
Fabrice Le Fessant 9b53f8b10d Re-add configure option -with-frame-pointers
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13738 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-06-03 18:03:59 +00:00
Fabrice Le Fessant 97bc1fa9e2 Reverting -with-frame-pointers
Fails to compile alt-ergo without frame-pointers. No time to debug
before tonight, so I revert and will merge again after fixing the
problem.



git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13732 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-06-03 06:29:33 +00:00
Fabrice Le Fessant e6c8fdd2a8 Fix compilation issue with amd64.S
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13731 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-06-03 04:57:42 +00:00
Fabrice Le Fessant 1b2667b9f2 Add -with-frame-pointers to ./configure
This option can be used to tell the native compiler that it should
update frame pointers, so that debuggers and profiling tools 
(especially Linux perf) can use them. For now, it is only supported
by the Unix/amd64 port.



git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13730 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-06-03 04:42:42 +00:00
Benedikt Meurer 4df940cae9 [amd64] Avoid unbalanced CFA offsets.
This fixes the following warnings generated by ld on Mac OS X:

- ld: warning: could not create compact unwind for _caml_raise_exn: stack subq instruction is too different from dwarf stack size
- ld: warning: could not create compact unwind for _caml_raise_exception: stack subq instruction is too different from dwarf stack size

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13227 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-01-13 14:22:17 +00:00
Damien Doligez def31744f9 remove all $Id keywords
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13013 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-10-15 17:50:56 +00:00
Xavier Leroy 9ac1d4937b PR#5707: in AMD64 port, exchange the roles of r10-r11 and r12-r13,
so that r10 and r11 are no longer used for parameter passing,
  and can therefore be destroyed by the dynamic loader without harm.
(Cherry-picked from version/4.00, commit 12907).


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12908 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-09-08 16:53:39 +00:00
Xavier Leroy 3e583a982b PR#5700, take 2: another misaligned call to caml_stash_backtrace.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12818 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-08-03 07:43:16 +00:00
Xavier Leroy d67f25572e PR#5700: crash with native-code stack backtraces under MacOS 10.8 x86-64
(owing to wrong stack alignment in caml_raise_exception)


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12816 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-08-02 12:47:08 +00:00
Damien Doligez 997a678d5e clean up TABs and whitespace
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12799 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-07-30 18:04:46 +00:00
Fabrice Le Fessant 1b81bef5b9 Add more CFI directives in i386/amd64 assembly files in asmrun
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12674 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-07-09 13:08:20 +00:00
Fabrice Le Fessant f0eff81679 Merge commit 12664 from 4.00 on trunk/
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12665 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-07-09 08:46:10 +00:00
Xavier Leroy 2eecf2d4c0 PR#5487: addition of CFI directives and a few filename/linenumber info to generated amd64 and i386 assembly files.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12179 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-02-21 17:41:02 +00:00
Xavier Leroy 339bcbb2c6 PR#5064, PR#5485: try to ensure that 4K words of stack are available
before calling into C functions, raising a Stack_overflow exception
otherwise.  This reduces (but does not eliminate) the risk of
segmentation faults due to stack overflow in C code.
Implemented for i386, amd64 and power, under Linux and MacOSX.
Plus: remove some more stuff related to obsoleted platforms (IA64, SunOS 4).


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12159 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-02-17 10:12:09 +00:00
Damien Doligez e7f5b858c2 More renaming to OCaml
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12149 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-02-10 16:15:24 +00:00
Xavier Leroy 38e4e84f7e PR#5179 continued: no extra stack adjustment in caml_c_call
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@11931 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2011-12-22 08:51:57 +00:00
Xavier Leroy ac0aa0778d PR#5179: giant steps towards a Mingw64 port.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@11927 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2011-12-21 16:31:01 +00:00
Xavier Leroy fc82a408a3 AMD64/MacOSX code generator: make local asm labels really local. (L100 instead of .L100)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@11221 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2011-10-15 08:55:43 +00:00
Damien Doligez 3b507dd1aa renaming of Objective Caml to OCaml and cleanup of copyright headers
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@11156 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2011-07-27 14:17:02 +00:00
Damien Doligez c91db736b1 merge changes from 3.12.0 to 3.12.1
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@11123 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2011-07-20 09:17:07 +00:00
Xavier Leroy 36fa028ecd PR#4795: PIC version of amd64.S
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@10270 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2010-04-19 08:47:10 +00:00
Xavier Leroy bed77edf06 PR#4795: support for PIC code in asmrun/amd64.S
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@10218 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2010-03-29 12:14:07 +00:00
Damien Doligez 04b1656222 clean up spaces and tabs
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@9547 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2010-01-22 12:48:24 +00:00
Damien Doligez 1f95b17570 merge changes from 3.10.2merged to 3.11.0
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@9153 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2008-12-03 18:09:09 +00:00
Xavier Leroy 1f93465a0e PR#4564 (partial): mark stack as non-executable on Linux/ELF
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@8962 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2008-08-01 08:04:57 +00:00
Xavier Leroy 4b5512c74c Stack backtraces on uncaught exceptions in native code (merge of the opt_backtrace branch)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@7812 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2007-01-29 12:11:18 +00:00
Damien Doligez 125ea40d4c fusion 3.09.0 -> 3.09.1
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@7307 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2006-01-04 16:55:50 +00:00
Xavier Leroy 237006931a Fusion des modifs faites sur la branche release jusqu'a la release 3.08.0
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@6552 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2004-07-13 12:19:15 +00:00
Xavier Leroy ffe6271308 young_ptr et bottom_of_stack doivent etre sauvegardes par caml_alloc* (PR#2518)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@6301 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2004-05-18 08:04:40 +00:00
Damien Doligez 258688a333 depollution suite (PR#1914 et PR#1956)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@6050 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2004-01-03 12:51:20 +00:00
Damien Doligez 0c7aecb88d depollution suite (et fin?) (PR#1914 et PR#1956)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@6047 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2004-01-02 19:23:29 +00:00
Damien Doligez 5a678d29f5 depollution suite (PR#1914 et PR#1956)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@6045 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2004-01-01 16:42:43 +00:00
Damien Doligez 331b2d89c3 depollution suite (PR#1914, PR#1956)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@6044 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2003-12-31 14:20:40 +00:00
Xavier Leroy 661a890b17 Typo dans la precedente correction
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@6031 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2003-12-20 11:05:51 +00:00
Xavier Leroy 37e20a0e93 Bug dans raise_caml_exception (r14, r15 not correctly reinitialized)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@6029 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2003-12-20 10:54:52 +00:00
Xavier Leroy bc33391898 Portage AMD64
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@5634 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2003-06-30 08:28:48 +00:00