While I was looking for why "Extracting debug info ..." takes so long while building tdlib-1.8.0-8.fc43 in mock (fedora-rawhide-x86_64) and it was apparent that dd with bs=1 seems to be taking quite a while while dealing with the enormous libtdcore.a (around 2Gs) So I tried replacing dd with ddpt just to see what will happen: diff --git a/scripts/find-debuginfo.in b/scripts/find-debuginfo.in index 40cd182..4e3ef64 100755 --- a/scripts/find-debuginfo.in +++ b/scripts/find-debuginfo.in @@ -539,7 +539,7 @@ do_ar_file() # is hard, in case the same name exists multiple times. A # distinct instance-number would have to be given to ar ("N ###"), # kept on a per-name basis. - (cd "$tmpdir"; dd status=none if="$f" of="$member_dn$member_bn" bs=1 skip="$offset" count="$size") + (cd "$tmpdir"; ddpt status=none if="$f" of="$member_dn$member_bn" bs=1 skip="$offset" count="$size") if [ $? -ne 0 ]; then res=1 fi With debugedit patched like that and trying the same tdlib mock build on my 8 core zen3 machine: - without patch INFO: Done(tdlib-1.8.0-8.fc44.src.rpm) Config(fedora-rawhide-x86_64) 62 minutes 18 seconds - with patch INFO: Done(tdlib-1.8.0-8.fc44.src.rpm) Config(fedora-rawhide-x86_64) 15 minutes 50 seconds Reproducible: Always
Thanks for the suggestion. I went for a slightly different fix using "plain" dd. See https://sourceware.org/bugzilla/show_bug.cgi?id=33771 This is now in debugedit-5.2-4.fc44 I checked that it reduces the tdlib build. With the fix a local mockbuild took 25 minutes. I am still waiting for it finish without the old variant. Going for 45 minutes now... Please let me know how it compares to your fix.
Thanks. For a rough comparison with the previous observations. With todays rawhide + debugedit-5.2-4.fc44.x86_64.rpm on the same machine as before INFO: Done(tdlib-1.8.0-8.fc44.src.rpm) Config(fedora-rawhide-x86_64) 16 minutes 7 seconds For the extracting debuginfo part of the build most of the time was spent in ar and not dd as before. I think we are good.