Go to file
X512 ef1ae53606 gcc11: Enable frame pointers by default for Haiku
* fno-omit-frame-pointer is enabled by default on all architectures
* This provides easier/faster backtraces at the cost of lower
  performance (Fedora benchmarks show between no difference and 10%
  depending on the scenario, with most things being around 2%)
* 32-bit x86 is not changed, because it has very few registes compared
  to other architectures, the performance cost would be even worse there
  (Fedora backed out the change on 32bit x86 as well)

On ARM and RISV-V, unwinding without a frame pointer is difficult (on
ARM this is due to the architecture defining mainly the link register as
a way to chaun functions, there is no fixed stack structure, on RISC-V I
don't know what the situation is but I expect there is something
similar). So on these architectures, the frame pointer should always be
enabled. On PPC, there is an hardware register doing pretty much the
frame pointer role, and that can't be disabled. On other architectures
(m68k and x86_64), it is mostly a matter of balance between the
performance cost and the ease of getting backtraces (for example for
realtime profiling). This can now easily be tweaked per architecture as
needed, with frame pointers being enabled by default (a reasonable
choice for someone starting a new architecture, ease of debugging is
more important than performance then).

Note that code that enables -fomit-frame-pointer explicitly can still do
that if needed, so the bad cases where the performance cost is very high
can be handled in this way.

Source for Fedora benchmarks: https://pagure.io/fesco/issue/2817#comment-826636

Change-Id: Iea9b8fec51adb192052f55cc49a8c1d922e27aa4
Reviewed-on: https://review.haiku-os.org/c/buildtools/+/4368
Reviewed-by: X512 X512 <danger_mail@list.ru>
Reviewed-by: David Karoly <karolyd577@gmail.com>
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
2023-06-15 15:10:40 +00:00
autoconf Congrats svn_load_dirs.pl, this change just disappeared. 2008-03-19 13:01:56 +00:00
binutils binutils: enable PE on 32bit build 2022-02-28 19:12:34 +01:00
gcc gcc11: Enable frame pointers by default for Haiku 2023-06-15 15:10:40 +00:00
jam jam: make compile_commands.json valid JSON 2021-11-03 11:48:45 +00:00
legacy Add -rdynamic as a no-op, similar to -pthread. 2023-05-08 22:27:04 +12:00
libtool Added support for Haiku x86 target. 2005-12-05 14:02:23 +00:00
.gitignore * Add .gitignore. 2014-07-21 11:18:25 +02:00