Commit Graph

2074 Commits

Author SHA1 Message Date
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
97ddf5a0cc libsysprof: port UI to new ABI
Some minor changes were necessary so that we could change the ABI in
libsysprof-capture to be free from GLib (and therefore used by GLib).

This also adds some wrappers for capture API in libsysprof so that we
can continue to use GError from UI code.
2020-07-03 22:00:34 +01:00
608582d3c4 libsysprof-capture: Drop GLib dependency
None of the code uses it any more. This means that `libsysprof-capture.a`
can now be used within `libglib-2.0.so` for collecting main loop
statistics.

Brought to you by Opeth’s Deliverance on repeat.

Signed-off-by: Philip Withnall <withnall@endlessm.com>

Fixes: #40
2020-07-03 22:00:34 +01:00
45c8c95706 libsysprof-capture: Drop GError usage from SysprofCaptureWriter
Use `errno` instead, which is icky, but given that all of the failure
modes are from POSIX I/O functions, it’s at least in keeping with them.

This is a major API break.

Signed-off-by: Philip Withnall <withnall@endlessm.com>

Helps: #40
2020-07-03 22:00:34 +01:00
e19d70bca0 libsysprof-capture: Drop GError usage from SysprofCaptureReader
Use `errno` instead, which is icky, but given that all of the failure
modes are from POSIX I/O functions, it’s at least in keeping with them.

This is a major API break.

Signed-off-by: Philip Withnall <withnall@endlessm.com>

Helps: #40
2020-07-03 22:00:34 +01:00
fde278fb7f libsysprof-capture: Drop sysprof_capture_writer_set_flush_delay()
It was unused anywhere within sysprof.git, and couldn’t be modified to
drop its GLib dependency while still retaining its functionality.

If it’s still needed, it’ll have to be reimplemented in libsysprof.

Signed-off-by: Philip Withnall <withnall@endlessm.com>

Helps: #40
2020-07-03 22:00:34 +01:00
cef698e658 libsysprof-capture: wrap strdup to be NULL-safe 2020-07-03 22:00:34 +01:00
6a45f020f7 libsysprof-capture: Add SysprofCaptureJitmapIter to replace GHashTable
Change `sysprof_capture_reader_read_jitmap()` to return a `const
SysprofCaptureJitmap *` (like the other `read` functions), and add a new
`SysprofCaptureJitmapIter` type to allow easy iteration over the jitmap.

This allows a use of `GHashTable` to be removed from the API. It breaks
the libsysprof-capture API and ABI.

All the callers iterate over the jitmap rather than looking up elements
by key. If that functionality is needed in future, additional API can be
added to allow it on `SysprofCaptureJitmap`.

Signed-off-by: Philip Withnall <withnall@endlessm.com>

Helps: #40
2020-07-03 22:00:34 +01:00
75b69d0a89 libsysprof-capture: Rewrite list_files() to avoid GHashTable/GPtrArray
This changes its API and ABI: it now returns an allocated array of const
strings, rather than an allocated array of allocated strings.

The call sites in the source tree have been adjusted accordingly.

Signed-off-by: Philip Withnall <withnall@endlessm.com>

Helps: #40
2020-07-03 22:00:34 +01:00
13b1e79901 libsysprof-capture: Use POSIX socket functions rather than GSocket
This should be equivalent.

Signed-off-by: Philip Withnall <withnall@endlessm.com>

Helps: #40
2020-07-03 22:00:34 +01:00
5a2144e254 libsysprof-capture: Port from GLib to pthreads for locking and once-init
Another step towards dropping the GLib dependency.

Signed-off-by: Philip Withnall <withnall@endlessm.com>

Helps: #40
2020-07-03 22:00:34 +01:00
c89a47939e libsysprof-capture: Move SysprofBacktraceFunc to a different header
So it’s next to the definition of `SysprofCaptureAddress`, which it
uses.

Signed-off-by: Philip Withnall <withnall@endlessm.com>

Helps: #40
2020-07-03 22:00:34 +01:00