-
Notifications
You must be signed in to change notification settings - Fork 721
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add recipe for Perfetto #577
Conversation
9987954
to
6499604
Compare
bbdd63b
to
5813be7
Compare
953c419
to
258978d
Compare
Changelog: ========= Main Changes ------------ Add pyenv's .python-version into .gitignore, openembedded#576 Added more --very-verbose logging to make clearer what's going on, openembedded#578 Updated versions of containers in CI config, openembedded#583 Fixed coverage config template for namespaced packages, openembedded#610 Replaced internal appdirs dependency with platformdirs, openembedded#584 Documentation Changes --------------------- Mention python -m setuptools_scm as a form of debugging, openembedded#574 Mention setting the default branch in git in docs, openembedded#577 Fix documented path to pyscaffold/default.cfg, openembedded#580 Signed-off-by: Wang Mingyu <[email protected]> Signed-off-by: Khem Raj <[email protected]> Signed-off-by: Trevor Gamblin <[email protected]>
Modified the recipe a bit so it works with Please take another look. Thanks! |
also getting patching errors
|
Sorry for the confusion about the build error, I didn't check Yocto's source and build folders very closely, and ran into some side-effects of stuck environment variables. I did some more detailed, clean tests for all 8 possible combinations. It seems I need to set both:
So with both |
a2cb923
to
d068035
Compare
I updated the script and tested with |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The referenced files have been updated per request.
Friendly ping, thanks! |
I am busy traveling next week. I will try to get to it this week ( provided my machine recovers ) |
Friendly ping for review --- thanks! |
fails with clang compiler this time https://errors.yoctoproject.org/Errors/Details/668126/ We should be using OE built clang. It seems to be poking at build host |
I was able to reproduce the build error by downloading and configuring a Yoe Distribution. The linker in clang++ generated by the Yoe seems to only look into system directories, while that of the clang++ generated by OpenBMC looks into Yocto-generated library paths: clang++ (version 15) generated by Yoe:
clang++ (version 14) generated by OpenBMC distribution:
For the Yoe distribution, I followed the Yoe tutorial, the only modification I made is to copy |
The above error is with the native clang generated by Yocto. It happens with the clang-15 bundled with the Yoe distribution, and does not appear in the clang-14 bundled with OpenBMC. A yet simpler way to reproduce the error:
clang-15 from the Yoe distribution:
clang-14 from OpenBMC:
Trying to figure out what happened in the native clang build. =================================== Edit: Adding |
Forcing clang's compiler runtime to "libgcc" seems to fix the problem with the Yoe build.
Please take another look if this is okay or if there is a better solution. Thanks! |
Followed the reply in this TMPDIR post and updated the recipe to inherit the |
It failed on mips see also on musl see IMO its best to limit the compatibility to the architectures it supports, its fine to ignore mips.
or further cut this list to down to where it is tested to work. I think the musl failure seems should be fixed. |
Added
Fixes:
|
Found a problem myself
This happens with
|
I am seeing following errors when not using meta-clang
I think you should be using dynamic-layers technique to enable it only when when meta-clang is enabled. See https://github.com/openembedded/meta-openembedded/blob/master/meta-oe/conf/layer.conf#L28 add and then define the recipe under |
eec1b95
to
93c4afd
Compare
Yes, I noted that error as well, when I was building for an OpenBMC platform without meta-clang enabled.
Perfetto supports both building with clang and without clang, and the original purpose of |
slowly getting better, there are warnings seen https://autobuilder.yoctoproject.org/typhoon/#/builders/88/builds/2106 I think you need to specify |
Added There is only one warning left: Trying to find a fix ... |
Was able to quench the "reference to TMPDIR" warning with |
I am fine to live with a warning and not silence it like this. Because the root cause is that some path is leaking into compilation and that needs to be fixed |
Thanks for the suggestions, I removed the I opened the debug symbol file with "Cutter", it showed 3 strings that contain the TMPDIR. Those strings are in the I also tried setting |
Perfetto (https://perfetto.dev/) is a system profiling, app tracing and trace analysis framework. We started using Perfetto for studying a few performance-related problems for OpenBMC-based systems (both the BMC and the host) and we feel it would be good if Perfetto is included into OpenEmbedded, since embedded systems are usually expected to have predictable performance characteristics, and having a good set of performance analysis tools would make this work easier. Tested: bitbake compile, devtool extract and override Signed-off-by: Sui Chen <[email protected]>
Search the absolute path of your workspace in the output of strings command that might give some clue. |
@quadpixels thanks for sticking with me and addressing all review feedback, it has been accepted into master with 8073ec2 |
Hello,
This is the rough shape of a BitBake recipe for the Perfetto performance profiler/visulizer. Perfetto already works for a few OSes on a few architectures such as X86, ARM32 and ARM64, and we recently tested it with OpenBMC (which is mostly ARM).
I'm not super fluent with BitBake, and had done a few ugly steps to make the compilation process pass (I have only tested for OpenBMC-based systems:)
I would like to have some comments on:
tools/install-build-deps
script during a Yocto stage that allows network connectioncurl
tool available to Bitbaketools/install-build-deps
is run from the Git working directory, I had to override the unpack step toogn
, and I manually edited the Ninja scripts with a few shell commands, becausegn
only generates certain combinations (linux/macos/windows/solaris, etc + x86/arm/arm64, etc)package_qa
task with a no-op to silence the GNU_HASH errorAny comments would be greatly appreciated.
Thanks!