Commit Graph

2085 Commits

Author SHA1 Message Date
e968518083 perf: authorize polkit as part of source startup 2020-08-21 13:15:34 -07:00
bbe62d83b8 helpers: avoid concurrent requests to authorize
We don't want to spam users with polkit requests, so try to only do one
at a time and ensure that if we suceeded, we skip it until later.
2020-08-21 13:01:39 -07:00
7b74c73205 capture: use plural naming for request_counters() 2020-08-19 15:14:53 -07:00
361b29a459 capture: add sysprof_collector_is_active()
This can be used to check if a collector is actively running.
2020-08-19 15:12:19 -07:00
61be0a0455 capture: add API to request a counter id 2020-08-19 15:09:52 -07:00
b913de8882 capture: add counter define/set collectors 2020-08-19 13:43:30 -07:00
c7e0e11fc2 captur: cleanup headers 2020-08-19 13:43:30 -07:00
818c204bfb Update Indonesian translation 2020-08-16 11:59:54 +00:00
691b6ef342 macros: simplify static assert fallback to use __COUNTER__
It is rather annoying that the other sizeof form doesn't work with Clang.
This at least gets things working (assuming you have __COUNTER__ support)
which most things we care about do at this point (including MSVC).
2020-08-14 12:59:29 -07:00
620f1f0ff0 build: fix build warnigns with Clang 2020-08-14 12:57:50 -07:00
f16bbac342 Updated Spanish translation 2020-08-13 10:59:14 +02:00
e656c334d8 release 3.37.90 2020-08-11 08:57:01 -07:00
96d52acac5 Merge branch 'jl/errno' into 'master'
include <errno.h> where necessary

See merge request GNOME/sysprof!35
2020-08-10 21:13:22 +00:00
ec05487dcc Update Brazilian Portuguese translation 2020-08-10 10:16:08 +00:00
5311f9d80a sysprof-dump: include <errno.h> where appropriate 2020-08-08 10:52:16 -04:00
51a5b20de3 libsysprof: include <errno.h> where appropriate 2020-08-08 10:51:26 -04:00
16b7cb0a96 tests: include <errno.h> where appropriate 2020-08-08 10:50:56 -04:00
cae28263ff build: remove 0.54 meson feature
Since this causes us to fail to build with GTK CI
2020-07-28 11:09:52 -07:00
2769ad9aaf build: give access to profiler path from dependency 2020-07-28 10:27:04 -07:00
857d91624c build: bump meson version 2020-07-28 09:33:40 -07:00
4f4674c54f Release 3.37.2 2020-07-28 09:21:20 -07:00
0c8e60ee33 Update Romanian translation 2020-07-21 11:23:54 +00:00
1bb0eb7798 Merge branch 'collector-libraries' into 'master'
libsysprof-capture: Don’t unset SYSPROF_CONTROL_FD

See merge request GNOME/sysprof!34
2020-07-17 19:17:34 +00:00
462e08270e libsysprof-capture: Don’t unset SYSPROF_CONTROL_FD
By design, it needs to be usable from multiple threads so they can each
request a thread-local mapped ring buffer. This becomes particularly
obvious if you want to send `sysprof_collector_mark()`s from two
libraries (say, GLib and libsoup); the first thread/library to call
`sysprof_collector_mark()` will win.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
2020-07-17 19:12:01 +01:00
72d70b8514 sysprof-capture: fix typo 2020-07-07 07:50:58 -07:00
555ec04e32 macros: check for C++ 14 feature macros 2020-07-06 16:09:03 -07:00
dacf2ad2b3 build: fix warning 2020-07-06 16:08:44 -07:00
39e6aeb2e0 Merge branch 'feature-flags' into 'master'
Fix feature test macros when used as a subproject

See merge request GNOME/sysprof!32
2020-07-06 13:42:58 +00:00
1c32c1ece5 libsysprof-capture: Add a missing string.h include
It’s needed for `strdup()` which is now used in a macro in this header.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
2020-07-06 11:27:44 +01:00
eae4eb4ad7 build: Drop redundant _GNU_SOURCE definitions
It’s defined in `meson.build` now. See the previous commit.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
2020-07-06 11:27:28 +01:00
50679dba04 build: Add feature test flags to project-wide preprocessor flags
Rather than defining them piecemeal in each C and H file, and having
problems with headers being included in different orders so that
`_POSIX_C_SOURCE` gets a value which is too low, just define the feature
test flags in `meson.build`.

See `man 7 feature_test_macros`.

This is useful for when building sysprof as a subproject beneath a
project which doesn’t define these macros, or which targets an older C
standard than `gnu11`.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
2020-07-06 11:27:06 +01:00
100a4df9fa Update Polish translation 2020-07-05 11:58:09 +02:00
6b1cd7a722 build: add internal variable for profiler xml file 2020-07-04 16:42:10 -07:00
57183ab8e2 macros: add static assert helper
So that we can use this from gnu99 such as from GTK.
2020-07-04 16:11:31 -07:00
50d33452ab macros: add helper to check for gcc version 2020-07-04 16:11:06 -07:00
24033d586e build: make C++ language conditional
We don't need C++ unless we are building the C++ demangler.
2020-07-04 15:46:03 -07:00
3c8a9e4152 build: bump for new ABI 2020-07-04 11:30:11 -07:00
6132b542db Merge branch 'glib' into 'master'
Add subproject support to libsysprof-capture

Closes #40

See merge request GNOME/sysprof!31
2020-07-04 18:29:37 +00:00
3836c88ab5 Merge branch 'drop-glib' into 'master'
Drop GLib from libsysprof-capture

Closes #40

See merge request GNOME/sysprof!30
2020-07-04 18:29:12 +00:00
6fde9c5ce6 libsysprof-capture: Add sysprof_collector_mark_{v,}printf() methods
These are just like `sysprof_collector_mark()`, but do the printf
formatting of the message internally, and only once the collector has
been fetched — so there is no overhead from the printf if sysprof is not
enabled at runtime.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
2020-07-03 22:01:33 +01:00
e8790bc3d6 build: Add more Meson options for disabling parts of the build
This is all aimed at making it so that sysprof can be built as a
subproject within GLib, with only `libsysprof-capture-4.a` being
produced as output.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
2020-07-03 22:01:33 +01:00
d6e8d39292 build: Add subproject support for libsysprof-capture
This will be used to build libsysprof-capture as a subproject within
libglib, with the symbols from libglib being left unresolved until the
static libsysprof-capture is linked into libglib.

When built as a subproject, libsysprof-capture won’t install anything.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
2020-07-03 22:01:33 +01:00
e03b54fca5 build: Only run gdbus-codegen if building components which need it
This is to avoid running `gdbus-codegen` when building sysprof as a
subproject underneath libglib, as by that point in the GLib build
process, `gdbus-codegen` is not yet available.

The interfaces generated by these `gdbus-codegen` invocations are only
needed for `sysprofd` and libsysprof, not for the libraries like
`libsysprof-capture`.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
2020-07-03 22:01:33 +01:00
5d1678974a build: Simplify config file setup
This introduces no functional changes, just simplifies the code.

As described in the meson manual
(https://mesonbuild.com/Configuration.html#configuring-without-an-input-file),
passing `false` to `configuration_data.set()` will cause the specified
value to be `#undef`fed. Passing `true` will cause it to be defined to
1.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
2020-07-03 22:01:33 +01:00
3c7b76c6ba build: Move Meson dependency() calls to where they’re used
This avoids making the project depend on all its dependencies, some of
which are optional, when being built as a Meson subproject.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
2020-07-03 22:01:33 +01:00
760805c8b9 memory-collector: avoid tracking scratch memory free 2020-07-03 22:00:34 +01:00
03326e82fa memory-collector: drop unused branch 2020-07-03 22:00:34 +01:00
484bc328ee collector: set unlikely for pthread_once() 2020-07-03 22:00:34 +01:00
5d20c3f6cf collector: disable re-entrancy during initialization
When creating a new collector, we need to prevent the following
call to sysprof_malloc0() from re-entering us into the same
position.
2020-07-03 22:00:34 +01:00
a9f136550b build: ensure libsysprof-memory-4.so is placed in libdir
This makes it consistent with other preloads.
2020-07-03 22:00:34 +01:00