FS#74782 - [gcc/gcc-libs] enable stacktrace with --enable-libstdcxx-backtrace=yes flag
Attached to Project:
Arch Linux
Opened by fco (fcolecumberri) - Wednesday, 18 May 2022, 02:34 GMT
Last edited by freswa (frederik) - Saturday, 16 July 2022, 02:33 GMT
Opened by fco (fcolecumberri) - Wednesday, 18 May 2022, 02:34 GMT
Last edited by freswa (frederik) - Saturday, 16 July 2022, 02:33 GMT
|
Details
Description:
stacktrace is a C++23 feature GCC already supports, but needs --enable-libstdcxx-backtrace=yes to work. |
This task depends upon
Closed by freswa (frederik)
Saturday, 16 July 2022, 02:33 GMT
Reason for closing: Implemented
Additional comments about closing: Committed revision 451134 to trunk. Will be part of the next gcc package.
Saturday, 16 July 2022, 02:33 GMT
Reason for closing: Implemented
Additional comments about closing: Committed revision 451134 to trunk. Will be part of the next gcc package.
I guess there is a good reason for upstream to not enable it (yet)?
However up to what I have been able to see (maybe I am wrong), GCC implementation of the stacktrace feature is based on boost's implementation (not surprise here), but boost's implementation generates (according to their documentation https://www.boost.org/doc/libs/1_79_0/doc/html/stacktrace/configuration_and_build.html ) a dependency to libbacktrace ( https://github.com/ianlancetaylor/libbacktrace https://aur.archlinux.org/packages/libbacktrace-git ) which is already inside the GCC's source code ( https://github.com/gcc-mirror/gcc/tree/releases/gcc-12.1.0/libbacktrace ).
Maybe the reason is among all of that. Maybe the incorporation of libbacktrace is/was supposed to be temporary. I have no idea.
AFAIK libbacktrace is an integral part of GCC and GCC is the upstream of libbacktrace.
https://github.com/gcc-mirror/gcc/commit/3acb929cc0beb79e6f4005eb22ee88b45e1cbc1d#diff-304a8fc076ccc48dd33f53a740ca6860dac5fafedeaa2d51aa9a17f3947b74c8R4805
https://github.com/gcc-mirror/gcc/blob/a2a7da1a055c98d9b4578151f273e0e7572aa605/libstdc%2B%2B-v3/acinclude.m4#L4904