diff --git a/buildflags.md b/buildflags.md index 127408a..1f443fe 100644 --- a/buildflags.md +++ b/buildflags.md @@ -168,11 +168,15 @@ not), but their selection depends on the architecture: * `-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 information. - This flag is enabled explictly for i686 (and derived architectures), - and implicity for x86-64. + 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, s390x, + and x86-64. They are not needed on armhfp, ppc64 and ppc64le 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 tuning in the `gcc` package. These settings are: diff --git a/redhat-rpm-config.spec b/redhat-rpm-config.spec index 7fbd1c5..d1db018 100644 --- a/redhat-rpm-config.spec +++ b/redhat-rpm-config.spec @@ -6,7 +6,7 @@ Summary: Red Hat specific rpm configuration files Name: redhat-rpm-config -Version: 81 +Version: 82 Release: 1%{?dist} # No version specified. License: GPL+ @@ -157,6 +157,9 @@ install -p -m 755 -t %{buildroot}%{_rpmconfigdir} kmod.prov %{_rpmconfigdir}/macros.d/macros.kmp %changelog +* Mon Jan 22 2018 Florian Weimer - 82-1 +- Make use of -fasynchronous-unwind-tables more explicit (#1536431) + * Mon Jan 22 2018 Florian Weimer - 81-1 - Remove --param=ssp-buffer-size=4 diff --git a/rpmrc b/rpmrc index ada27fb..432b653 100644 --- a/rpmrc +++ b/rpmrc @@ -6,7 +6,7 @@ optflags: i586 %{__global_compiler_flags} -m32 -march=i586 -mtune=generic -fasyn optflags: i686 %{__global_compiler_flags} -m32 -march=i686 -fasynchronous-unwind-tables -fstack-clash-protection optflags: athlon %{__global_compiler_flags} -m32 -march=athlon -fasynchronous-unwind-tables -fstack-clash-protection optflags: ia64 %{__global_compiler_flags} -optflags: x86_64 %{__global_compiler_flags} -m64 -mtune=generic -fstack-clash-protection +optflags: x86_64 %{__global_compiler_flags} -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection optflags: alpha %{__global_compiler_flags} -mieee optflags: alphaev5 %{__global_compiler_flags} -mieee -mcpu=ev5 @@ -71,8 +71,8 @@ optflags: atariclone %{__global_compiler_flags} optflags: milan %{__global_compiler_flags} optflags: hades %{__global_compiler_flags} -optflags: s390 %{__global_compiler_flags} -m31 -march=zEC12 -mtune=z13 -optflags: s390x %{__global_compiler_flags} -m64 -march=zEC12 -mtune=z13 -fstack-clash-protection +optflags: s390 %{__global_compiler_flags} -m31 -march=zEC12 -mtune=z13 -fasynchronous-unwind-tables +optflags: s390x %{__global_compiler_flags} -m64 -march=zEC12 -mtune=z13 -fasynchronous-unwind-tables -fstack-clash-protection optflags: aarch64 %{__global_compiler_flags} -fstack-clash-protection