-
Notifications
You must be signed in to change notification settings - Fork 533
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
fix parallel mode: add missing pkg dep & missing path creations #12485
base: master
Are you sure you want to change the base?
fix parallel mode: add missing pkg dep & missing path creations #12485
Conversation
25814bb
to
a41dc06
Compare
some are strange, |
libglvnd depends on nvidia, so on an other package or at least on x86_64 |
thank you for taking the time to review the changes.
you’re right - I fixed it so it doesn’t depend on
is there a change that needs to happen here? just completed a parallel build using these .mk/Config.in files for Firing off a clean build (I clobbered my build during finalization by accident) and will do x86_64 after that. |
@dmanlfc when back, can you read this pr too please, you'll be a better feedback than me |
mainly on libglvnd, i've a doubt on the test to do, even if x86_64 should do the job |
bcm2836 parallel clean build 67 min (w ccache). final images in 86 min. M1 MBP 16GB to external NVMe (not Thunderbolt) firing off x86_64 parallel build in the background. |
you manage to make buildroot parallel mode working with batocera ? |
yes, i like torturing myself :) what happened is when I starting learning how to build - I used parallel build mode not knowing it was broken. so i’ve been getting to bottom of what breaks it. I’ll have to benchmark with a zeroed out ccache, it is probably ~4.5h (dl already downloaded, pre-finalize) to build all the code for bcm2836. all 8 cores stay nicely slammed. |
it would be wonderfull if we could merge to parallel builds |
fd510b0
to
0edfab4
Compare
ok - long story short, I can only get parallel builds to work for bcm2836. when I try to build the same codebase and target x86_64, the build finishes and Batocera boots (I can ssh in just fine) but the ES interface doesn’t initialize correctly (photo I posted to Discord w the white squares) For my own sanity, I’m building x86_64 in serial mode on the same exact codebase so I’m 100% sure it is the parallelization that is introducing some weird artifact. Given the number of SBCs we support, it’ll still be nice if all the SBC builds were parallelizable. I don’t have any other SBC hardware to test this theory on unfortunately so hope the rest of crew can help test this out. |
where in discord, i don't see it ? |
do you have a pr to enable parallel builds ? i don't remember exactly what to do |
ok - the jury’s in. I finished a serial build with the exact same config and codebase and it boots properly and ES initializes correctly. this is good news but a bit of a bummer parallel builds are only restricted to boards like I have two complete build directories side-by-side if anyone has suggestions on what to compare.
I don’t see a way to link to a message in Discord. here’s the photo:
happy to file a PR if it makes a difference. I jumped into this not intending to get parallel builds to work - I was just trying to get my first build to work so getting the |
- merges missing dependency declarations in *.mk & Config.in (batocera-linux#12485) - use udance4ever/batocera.buildroot fork - merges DIRECT_BUILD (batocera-linux#12470), Makefile cleanup (batocera-linux#12477) and %-upgrade fix (batocera-linux#12487) - add *~ (emacs/mg) to .gitignore - checks in localization files (.po)
i have an idea for this one. the original xinitrc open 3 terms like in your capture this one |
Please mark as draft until completion. ibglvnd is not x86 exclusive. Therefore change the logic to add the dependency if package BR2_PACKAGE_XORG7 is selected. I also see dependencies being added to the .mk files but not the corresponding Config.in for packages. Please ensure they're in sync. Finally squash the commits and force update accordingly as you work through the draft so it's one commit, thanks. |
whoops - my bad - I didn’t realize renaming a branch ends up closing a PR. reopening as draft.
thanks for the direction - I just noticed bcm2836 didn’t need it so this explains why.
ok - I’ll clean this up. Any insight why buildroot complains about missing selects and other times doesn’t?
I debated whether or not to do this and intentionally left them atomic so you could follow new changes I discovered as I was debugging the x86_64 build further. (all the reason for this to be a draft branch). I will squash my commits before pulling my pull request out of draft if this is okay. and just for the record, I’ve reached out to the developer of the br-pbuilder project as he has figured out how to do parallel builds without |
928d06e
to
8d34542
Compare
@dmanlfc made changes you requested. Buildroot isn’t happy about syncing Config.in and .mk files (though I totally agree with you this should be done!) - it complains about 3 classes of errors:
I’m not surprised about the 2nd class - I had to create a .patch file for 3rd class we can ignore for now as this appears related to ironing out wine build on aarch64 it’s the 1st class (circular dependencies) I’m not clear how we go about resolving. |
- fix mangohud dep - fix python-pyxel to create evmapy dir if it doesn't exist - vkd3d-proton: host-zstd -- force buildroot to build host-zstd before extracting vkd3d-proton - cabextract: dep libmspack - batocera-wine: create xorg.conf.d path - libretro-wasm4: dep on libxkbcommon (x86_64) - libretro-play: dep libglu (x86_64) - snes9x: dep sdl2 (x86_64) - libglvnd if BR_PACKAGE_XORG7 - ensure Config.in and .mk are in sync - grim: dep jpeg-turbo (bcm2836)
8d34542
to
c7bad58
Compare
looking good, how are you tracking? |
Two main categories:
Gaps became apparent while debugging buildroot’s experimental PARALLEL_BUILD mode which uses PER_PACKAGE directories: https://pastebin.com/cLynrDqZ
Also verified these commits work for small builds like
bcm2836
I am able to get both x86_64 and bcm2836 builds to completion (serial, only bcm2836 works in parallel, x86_64 is super close!)