gperftools/m4
Aliaksey Kandratsenka a9b734e3fa perform ucontext->pc variants testing in compile-time
As part of cpu profiler we're extracting current PC (program counter)
of out signal's ucontext. Different OS and hardware combinations have
different ways for that. We had a list of variants that we tested at
compile time and populated PC_FROM_UCONTEXT macro into config.h. It
caused duplication and occasional mismatches between our autoconf and
cmake bits.

So this commit changes testing to be compile-time. We remove
complexity from build system and add some to C++ source.

We use SFINAE to find which of those variants compile (and we silently
assume that 'compiles' implies 'works'; this is what config-time
testing did too). Occasionally we'll face situations where several
variants compile. And we couldn't handle this case in pure C++. So we
have a small Ruby program that generates chain of inheritance among
SFINAE-specialized class templates. This handles prioritization among
variants.

List of ucontext->pc extraction variants is mostly same. We dropped
super-obsolete (circa Linux kernel 2.0) arm variant. And NetBSD case
is now improved. We now use their nice architecture-independent macro
instead of x86-specific access.
2023-12-02 18:58:45 -05:00
..
ac_have_attribute.m4 fix deprecated autoconf bits 2023-07-02 21:28:30 -04:00
acx_nanosleep.m4 fix deprecated autoconf bits 2023-07-02 21:28:30 -04:00
ax_cxx_compile_stdcxx.m4 build with c++11 or later 2018-08-05 15:15:10 -07:00
ax_pthread.m4 fix deprecated autoconf bits 2023-07-02 21:28:30 -04:00
install_prefix.m4 Thu Sep 10 13:51:15 2009 Google Inc. <opensource@google.com> 2009-09-11 18:42:32 +00:00
libtool.patch patch libtool.m4 for compiler_lib_search_path fix for qnx 2023-11-06 13:51:00 -05:00
program_invocation_name.m4 fix deprecated autoconf bits 2023-07-02 21:28:30 -04:00