The lib/ directory was getting a bit out of hand, so this tries
to organize things a bit so it is easier going forward to locate
the code people want to patch.
We don't expose this via API yet, but it's handy to have it here so we can
build upon it for doing stacked drawings (as useful for things like memory
usage graphs by type).
Now that we are post-3.26, we are removing the legacy autotools
build system in favor of meson.
Please report any errors you have so that we can ensure this is
ready for GNOME 3.28.
This commit extends commit faf1e24edf
"zoom-manager: bring back attribute aligned(8)"
to both places where the attribute was previously dropped from
in commit 63579451b5 "alignment: set alignment on structs".
3.22.3 + commit 6a3d7282ec + commit faf1e24edf + this patch
has been successfully build tested on Debian armhf porterbox
(harris.debian.org). (It also means we end up with exactly
the same as the 3.22.2 + patch situation currently shipped
in Debian 'stretch' 9.0 regarding alignment/cast fixes.)
https://bugzilla.gnome.org/show_bug.cgi?id=784466
This was needed for some other architectures, even though it is problematic
that we have to do it (it should really be the default for the parent
GObject struct).
If we come across a map that is in another namespace, we might need to
translate it to the filesystem/path inside that mount namespace. Otherwise,
we won't be able to accurately decode ELF symbols due to loading the
incorrect binary/debug files.
This gives us the ability to locate symbols by directory in a much more
maintainable manner. Library consumers can adjust their location based
on where they know symbols are likely to be located.
This allows us to have a sysroot different than /, so that we can resolve
symbols that are not necessarily installed on the system. For example, if
we are running an application in an alternate mount namespace, we will want
to resolve the symbols starting from the location of the checkout for that
namespace.
Generally alternate mount namespaces will have paths like "/newroot/usr/.."
so by setting the source to "/newroot/usr/" to "~/.local/" you can do
some fancy remapping.
This uses an alternate idea for setting the structure alignments. Lets
see if this silents the ARM builder cast alignment issues.
GSlice (which is what is used for GObjects) guarantees a 2-pointer size
allocation, which means we can be ensured that the alignment is at least
8 bytes.
We could have multiple StackNodes that point at the same data. However
we might not have pointer equality. This uses the data pointer that nodes
point at to determine equality.
Using the .ui file to create the name cell does not allow us to set the
expand property (it defaults to FALSE and cannot be changed). So instead,
we just add the cell manually like we do for the tag cell.
This field is opportunistic, so failure isn't a big deal, but we can at
least try again in an EAGAIN case. Should also squash a compiler warning
about unused results.
We want this in sysprof.h (without UI components) so that we
can use it to filter things in profilers. Therefore, we don't
need to make it namespaced to "visualizers" since a time range
selection is a fairly straightforward, and non-UI confined
implementation.
These have the chance of being dropped unless we export them
here manually. We probably should change how we export symbols
so this isn't required in the future.
It is important that our capture current time matches the
same clock we are using for events. Otherwise we could have
drift between CLOCK_MONOTONIC and CLOCK_MONOTONIC_RAW.
This allows us to use the selection in profile components
without the use of Gtk.
We will probably end up renaming this class to SpSelection or
something like that.