buildflags.md: Document -fasynchronous-unwind-tables as generic option

And mention it is disabled on armhfp.
This commit is contained in:
Florian Weimer 2021-11-15 15:59:36 +01:00
parent 23e5f0dbd6
commit 65028a4d00

View File

@ -262,6 +262,13 @@ The general (architecture-independent) build flags are:
it possible to unwind the stack (using C++ `throw` or Rust panics) it possible to unwind the stack (using C++ `throw` or Rust panics)
from C callback functions if a C library supports non-local exits from C callback functions if a C library supports non-local exits
from them (e.g., via `longjmp`). from them (e.g., via `longjmp`).
* `-fasynchronous-unwind-tables`: Generate full unwind information
covering all program points. This is required for support of
asynchronous cancellation and proper unwinding from signal
handlers. It also makes performance and debugging tools more
useful because unwind information is available without having to
install (and load) debugging ienformation. (Not enabled on armhfp
due to architectural differences in stack management.)
* `-Wp,-D_GLIBCXX_ASSERTIONS`: Enable lightweight assertions in the * `-Wp,-D_GLIBCXX_ASSERTIONS`: Enable lightweight assertions in the
C++ standard library, such as bounds checking for the subscription C++ standard library, such as bounds checking for the subscription
operator on vectors. (This flag is added to both `CFLAGS` and operator on vectors. (This flag is added to both `CFLAGS` and
@ -335,18 +342,6 @@ not), but their selection depends on the architecture:
the same compilation. For such architectures, the RPM build process the same compilation. For such architectures, the RPM build process
explicitly selects the architecture variant by passing this compiler explicitly selects the architecture variant by passing this compiler
flag. flag.
* `-fasynchronous-unwind-tables`: Generate full unwind information
covering all program points. This is required for support of
asynchronous cancellation and proper unwinding from signal
handlers. It also makes performance and debugging tools more
useful because unwind information is available without having to
install (and load) debugging ienformation.
Asynchronous unwind tables are enabled for aarch64, i686,
ppc64le, s390x, and x86_64. They are not needed on armhfp due to
architectural differences in stack management. On these
architectures, `-fexceptions` (see above) still enables regular
unwind tables (or they are enabled by default even without this
option).
In addition, `redhat-rpm-config` re-selects the built-in default In addition, `redhat-rpm-config` re-selects the built-in default
tuning in the `gcc` package. These settings are: tuning in the `gcc` package. These settings are: