On Sat, Aug 29, 2026 at 05:48:46PM +0200, Jochen Sprickerhof wrote: > Hi, > > * Chow Loong Jin <[email protected]> [2026-08-25 10:40]: > > From my testing it looks like there are just two variants of hyprland > > binaries that gets produced, rather than randomness that does not > > resolve -- clicking rebuild once or twice makes it succeed. > > I did two test builds locally and got different results in: > > build/CMakeFiles/hyprland_lib.dir/src/managers/fullscreen/FullscreenController.cpp.o > build/CMakeFiles/hyprland_lib.dir/src/plugins/PluginAPI.cpp.o > build/CMakeFiles/hyprland_lib.dir/src/protocols/XDGShell.cpp.o > > For all of them the start of section headers, as reported by readelf -a was > different, as well as all addresses based on that. I tried rerunning the gcc > commands for those but all produced the same result and building the package > again also produced the same result. I also did not find anything relevant > that could explain the different offset so currently I am stuck here. > > Do you have any idea how to trigger different results or why the offset > would be different?
Thanks for the help! I hadn't gotten as far as examining the individual object files, but I did do some testing locally, here are my findings: - sbuild multiple times from the git packaging seems to generate the same binaries (including dbgsym) - debrebuild seems to generate a different NT_GNU_BUILD_ID value every time, but no other changes in the Hyprland binary itself. - diffing the output of `readelf --all usr/bin/Hyprland` and `objdump --disassemble usr/bin/Hyprland` of each variant shows that only the build ID changes, nothing else - diffing the output of `readelf --all --debug-dump` on the debug shows a lot of different offsets, but the diff output is 3.2GB and I haven't managed to figure out what's different apart from offsets. Since you've managed to get to different variants of the build directory, are you able to checksum all the files there and see what other files are different? There should be some autogenerated sources in - src/protocols (generated by protocolnew calls in CMakeLists.txt) - src/config/lua/DefaultConfigBytes.hpp (generated by xxd from hyprland.lua) - src/render/shaders/Shaders.hpp (generated by scripts/generateShaderIncludes.sh, also see Fix-shader-inclusion-order.patch) How were you able to grab the build directory out, btw? I haven't found a way to do so with `debrebuild`. -- Kind regards, Loong Jin
signature.asc
Description: PGP signature

