Hi, I'm struggling to build WebKitGTK 2.51.1 due to the following RPM build error: error: Empty %files file /builddir/build/BUILD/webkitgtk-2.51.1-build/webkitgtk-2.51.1/debugsourcefiles.list This seems to be a regression in WebKitGTK rather than in debugedit, since the build succeeds if I revert to WebKitGTK 2.50.1, but with WebKitGTK 2.51.1 it fails in both rawhide and also F43. I'd still appreciate any help in figuring out what is wrong. I've been peeking at find-debuginfo.sh, but it's intimidating. Comparing the failed build log to the last good build, a notable difference is that find-debuginfo.sh no longer prints the following line: Copying sources found by 'debugedit -l' to /usr/src/debug/webkitgtk-2.50.1-1.fc44.x86_64 Reproducible: Always Steps to Reproduce: 1. fedpkg clone webkitgtk 2. git am 0001-Update-to-WebKitGTK-2.51.1.patch 3. fedpkg mockbuild (or 'fedpkg local') Actual Results: Build fails Expected Results: Build succeeds Additional Information: https://kojipkgs.fedoraproject.org/packages/webkitgtk/2.50.1/1.fc44/data/logs/x86_64/build.log is a build log for a normal successful build, which contains the following: + /usr/bin/find-debuginfo -j32 --strict-build-id -m -i --build-id-seed 2.50.1-1.fc44 --unique-debug-suffix -2.50.1-1.fc44.x86_64 --unique-debug-src-base webkitgtk-2.50.1-1.fc44.x86_64 --run-dwz --dwz-low-mem-die-limit 10000000 --dwz-max-die-limit 250000000 -j3 -S debugsourcefiles.list /builddir/build/BUILD/webkitgtk-2.50.1-build/webkitgtk-2.50.1 find-debuginfo: starting Extracting debug info from 17 files DWARF-compressing 17 files dwz: ./usr/bin/WebKitWebDriver-2.50.1-1.fc44.x86_64.debug: Unknown debugging section .debug_addr dwz: ./usr/lib64/libjavascriptcoregtk-4.1.so.0.9.6-2.50.1-1.fc44.x86_64.debug: Unknown debugging section .debug_addr dwz: ./usr/lib64/libjavascriptcoregtk-6.0.so.1.6.6-2.50.1-1.fc44.x86_64.debug: Unknown debugging section .debug_addr dwz: ./usr/lib64/libwebkit2gtk-4.1.so.0.19.4-2.50.1-1.fc44.x86_64.debug: Unknown debugging section .debug_addr dwz: ./usr/lib64/libwebkitgtk-6.0.so.4.13.4-2.50.1-1.fc44.x86_64.debug: Unknown debugging section .debug_addr dwz: ./usr/lib64/webkit2gtk-4.1/injected-bundle/libwebkit2gtkinjectedbundle.so-2.50.1-1.fc44.x86_64.debug: Unknown debugging section .debug_addr dwz: ./usr/lib64/webkitgtk-6.0/injected-bundle/libwebkitgtkinjectedbundle.so-2.50.1-1.fc44.x86_64.debug: Unknown debugging section .debug_addr dwz: ./usr/libexec/webkit2gtk-4.1/MiniBrowser-2.50.1-1.fc44.x86_64.debug: Unknown debugging section .debug_addr dwz: ./usr/libexec/webkit2gtk-4.1/WebKitGPUProcess-2.50.1-1.fc44.x86_64.debug: Unknown debugging section .debug_addr dwz: ./usr/libexec/webkit2gtk-4.1/WebKitNetworkProcess-2.50.1-1.fc44.x86_64.debug: Unknown debugging section .debug_addr dwz: ./usr/libexec/webkit2gtk-4.1/WebKitWebProcess-2.50.1-1.fc44.x86_64.debug: Unknown debugging section .debug_addr dwz: ./usr/libexec/webkit2gtk-4.1/jsc-2.50.1-1.fc44.x86_64.debug: Unknown debugging section .debug_addr dwz: ./usr/libexec/webkitgtk-6.0/MiniBrowser-2.50.1-1.fc44.x86_64.debug: Unknown debugging section .debug_addr dwz: ./usr/libexec/webkitgtk-6.0/WebKitGPUProcess-2.50.1-1.fc44.x86_64.debug: Unknown debugging section .debug_addr dwz: ./usr/libexec/webkitgtk-6.0/WebKitNetworkProcess-2.50.1-1.fc44.x86_64.debug: Unknown debugging section .debug_addr dwz: ./usr/libexec/webkitgtk-6.0/WebKitWebProcess-2.50.1-1.fc44.x86_64.debug: Unknown debugging section .debug_addr dwz: ./usr/libexec/webkitgtk-6.0/jsc-2.50.1-1.fc44.x86_64.debug: Unknown debugging section .debug_addr dwz: Too few files for multifile optimization sepdebugcrcfix: Updated 0 CRC32s, 17 CRC32s did match. Creating .debug symlinks for symlinks to ELF files Copying sources found by 'debugedit -l' to /usr/src/debug/webkitgtk-2.50.1-1.fc44.x86_64 cpio: redhat-linux-build/webkit2gtk-4.1/CSSPropertyNames.gperf: Cannot stat: No such file or directory cpio: redhat-linux-build/webkit2gtk-4.1/CSSValueKeywords.gperf: Cannot stat: No such file or directory cpio: redhat-linux-build/webkit2gtk-4.1/HTTPHeaderNames.gperf: Cannot stat: No such file or directory cpio: redhat-linux-build/webkit2gtk-4.1/SelectorPseudoClassAndCompatibilityElementMap.gperf: Cannot stat: No such file or directory cpio: redhat-linux-build/webkit2gtk-4.1/SelectorPseudoElementMap.gperf: Cannot stat: No such file or directory cpio: redhat-linux-build/webkit2gtk-4.1/XPathGrammar.cpp: Cannot stat: No such file or directory cpio: redhat-linux-build/webkit2gtk-4.1/XPathGrammar.h: Cannot stat: No such file or directory cpio: redhat-linux-build/webkit2gtk-4.1/XPathGrammar.y: Cannot stat: No such file or directory cpio: redhat-linux-build/webkit2gtk-4.1/glslang.l: Cannot stat: No such file or directory cpio: redhat-linux-build/webkit2gtk-4.1/preprocessor.l: Cannot stat: No such file or directory cpio: redhat-linux-build/webkitgtk-6.0/CSSPropertyNames.gperf: Cannot stat: No such file or directory cpio: redhat-linux-build/webkitgtk-6.0/CSSValueKeywords.gperf: Cannot stat: No such file or directory cpio: redhat-linux-build/webkitgtk-6.0/HTTPHeaderNames.gperf: Cannot stat: No such file or directory cpio: redhat-linux-build/webkitgtk-6.0/SelectorPseudoClassAndCompatibilityElementMap.gperf: Cannot stat: No such file or directory cpio: redhat-linux-build/webkitgtk-6.0/SelectorPseudoElementMap.gperf: Cannot stat: No such file or directory cpio: redhat-linux-build/webkitgtk-6.0/XPathGrammar.cpp: Cannot stat: No such file or directory cpio: redhat-linux-build/webkitgtk-6.0/XPathGrammar.h: Cannot stat: No such file or directory cpio: redhat-linux-build/webkitgtk-6.0/XPathGrammar.y: Cannot stat: No such file or directory cpio: redhat-linux-build/webkitgtk-6.0/glslang.l: Cannot stat: No such file or directory cpio: redhat-linux-build/webkitgtk-6.0/preprocessor.l: Cannot stat: No such file or directory find-debuginfo: done + /usr/lib/rpm/check-buildroot + /usr/lib/rpm/redhat/brp-ldconfig + /usr/lib/rpm/brp-compress + /usr/lib/rpm/redhat/brp-strip-lto /usr/bin/strip + /usr/lib/rpm/check-rpaths + /usr/lib/rpm/redhat/brp-mangle-shebangs + /usr/lib/rpm/brp-remove-la-files + /usr/lib/rpm/redhat/brp-python-rpm-in-distinfo + env /usr/lib/rpm/redhat/brp-python-bytecompile '' 1 0 -j32 + /usr/lib/rpm/redhat/brp-python-hardlink + /usr/bin/add-det --brp -j32 /builddir/build/BUILD/webkitgtk-2.50.1-build/BUILDROOT Scanned 899 directories and 34824 files, processed 5173 inodes, 0 modified (0 replaced + 0 rewritten), 0 unsupported format, 0 errors + /usr/bin/linkdupes --brp /builddir/build/BUILD/webkitgtk-2.50.1-build/BUILDROOT/usr Scanned 898 directories and 34824 files, considered 34816 files, read 22849 files, linked 6475 files, 0 errors sum of sizes of linked files: 107396745 bytes Reading /builddir/build/BUILD/webkitgtk-2.50.1-build/SPECPARTS/rpm-debuginfo.specpart Processing files: webkitgtk6.0-2.50.1-1.fc44.x86_64 The new, unsuccessful build https://kojipkgs.fedoraproject.org/work/tasks/3115/138543115/build.log contains the following: + /usr/bin/find-debuginfo -j192 --strict-build-id -m -i --build-id-seed 2.51.1-1.fc44 --unique-debug-suffix -2.51.1-1.fc44.x86_64 --unique-debug-src-base webkitgtk-2.51.1-1.fc44.x86_64 --run-dwz --dwz-low-mem-die-limit 10000000 --dwz-max-die-limit 250000000 -j7 -S debugsourcefiles.list /builddir/build/BUILD/webkitgtk-2.51.1-build/webkitgtk-2.51.1 find-debuginfo: starting Extracting debug info from 17 files DWARF-compressing 17 files dwz: ./usr/bin/WebKitWebDriver-2.51.1-1.fc44.x86_64.debug: Unknown debugging section .debug_addr dwz: ./usr/lib64/libjavascriptcoregtk-4.1.so.0.10.0-2.51.1-1.fc44.x86_64.debug: Unknown debugging section .debug_addr dwz: ./usr/lib64/libjavascriptcoregtk-6.0.so.1.7.0-2.51.1-1.fc44.x86_64.debug: Unknown debugging section .debug_addr dwz: ./usr/lib64/libwebkit2gtk-4.1.so.0.20.0-2.51.1-1.fc44.x86_64.debug: Unknown debugging section .debug_addr dwz: ./usr/lib64/libwebkitgtk-6.0.so.4.14.0-2.51.1-1.fc44.x86_64.debug: Unknown debugging section .debug_addr dwz: ./usr/lib64/webkit2gtk-4.1/injected-bundle/libwebkit2gtkinjectedbundle.so-2.51.1-1.fc44.x86_64.debug: Unknown debugging section .debug_addr dwz: ./usr/lib64/webkitgtk-6.0/injected-bundle/libwebkitgtkinjectedbundle.so-2.51.1-1.fc44.x86_64.debug: Unknown debugging section .debug_addr dwz: ./usr/libexec/webkit2gtk-4.1/MiniBrowser-2.51.1-1.fc44.x86_64.debug: Unknown debugging section .debug_addr dwz: ./usr/libexec/webkit2gtk-4.1/WebKitGPUProcess-2.51.1-1.fc44.x86_64.debug: Unknown debugging section .debug_addr dwz: ./usr/libexec/webkit2gtk-4.1/WebKitNetworkProcess-2.51.1-1.fc44.x86_64.debug: Unknown debugging section .debug_addr dwz: ./usr/libexec/webkit2gtk-4.1/WebKitWebProcess-2.51.1-1.fc44.x86_64.debug: Unknown debugging section .debug_addr dwz: ./usr/libexec/webkit2gtk-4.1/jsc-2.51.1-1.fc44.x86_64.debug: Unknown debugging section .debug_addr dwz: ./usr/libexec/webkitgtk-6.0/MiniBrowser-2.51.1-1.fc44.x86_64.debug: Unknown debugging section .debug_addr dwz: ./usr/libexec/webkitgtk-6.0/WebKitGPUProcess-2.51.1-1.fc44.x86_64.debug: Unknown debugging section .debug_addr dwz: ./usr/libexec/webkitgtk-6.0/WebKitNetworkProcess-2.51.1-1.fc44.x86_64.debug: Unknown debugging section .debug_addr dwz: ./usr/libexec/webkitgtk-6.0/WebKitWebProcess-2.51.1-1.fc44.x86_64.debug: Unknown debugging section .debug_addr dwz: ./usr/libexec/webkitgtk-6.0/jsc-2.51.1-1.fc44.x86_64.debug: Unknown debugging section .debug_addr dwz: Too few files for multifile optimization sepdebugcrcfix: Updated 0 CRC32s, 17 CRC32s did match. Creating .debug symlinks for symlinks to ELF files find-debuginfo: done + /usr/lib/rpm/check-buildroot + /usr/lib/rpm/redhat/brp-ldconfig + /usr/lib/rpm/brp-compress + /usr/lib/rpm/redhat/brp-strip-lto /usr/bin/strip + /usr/lib/rpm/check-rpaths + /usr/lib/rpm/redhat/brp-mangle-shebangs + /usr/lib/rpm/brp-remove-la-files + /usr/lib/rpm/redhat/brp-python-rpm-in-distinfo + env /usr/lib/rpm/redhat/brp-python-bytecompile '' 1 0 -j192 + /usr/lib/rpm/redhat/brp-python-hardlink + /usr/bin/add-det --brp -j192 /builddir/build/BUILD/webkitgtk-2.51.1-build/BUILDROOT Scanned 147 directories and 5780 files, processed 5237 inodes, 0 modified (0 replaced + 0 rewritten), 0 unsupported format, 0 errors + /usr/bin/linkdupes --brp /builddir/build/BUILD/webkitgtk-2.51.1-build/BUILDROOT/usr Scanned 146 directories and 5780 files, considered 5772 files, read 2945 files, linked 96 files, 0 errors sum of sizes of linked files: 2141034 bytes Reading /builddir/build/BUILD/webkitgtk-2.51.1-build/SPECPARTS/rpm-debuginfo.specpart Processing files: webkitgtk6.0-2.51.1-1.fc44.x86_64 The unsuccessful build skips this part: Copying sources found by 'debugedit -l' to /usr/src/debug/webkitgtk-2.50.1-1.fc44.x86_64 cpio: redhat-linux-build/webkit2gtk-4.1/CSSPropertyNames.gperf: Cannot stat: No such file or directory cpio: redhat-linux-build/webkit2gtk-4.1/CSSValueKeywords.gperf: Cannot stat: No such file or directory cpio: redhat-linux-build/webkit2gtk-4.1/HTTPHeaderNames.gperf: Cannot stat: No such file or directory cpio: redhat-linux-build/webkit2gtk-4.1/SelectorPseudoClassAndCompatibilityElementMap.gperf: Cannot stat: No such file or directory cpio: redhat-linux-build/webkit2gtk-4.1/SelectorPseudoElementMap.gperf: Cannot stat: No such file or directory cpio: redhat-linux-build/webkit2gtk-4.1/XPathGrammar.cpp: Cannot stat: No such file or directory cpio: redhat-linux-build/webkit2gtk-4.1/XPathGrammar.h: Cannot stat: No such file or directory cpio: redhat-linux-build/webkit2gtk-4.1/XPathGrammar.y: Cannot stat: No such file or directory cpio: redhat-linux-build/webkit2gtk-4.1/glslang.l: Cannot stat: No such file or directory cpio: redhat-linux-build/webkit2gtk-4.1/preprocessor.l: Cannot stat: No such file or directory cpio: redhat-linux-build/webkitgtk-6.0/CSSPropertyNames.gperf: Cannot stat: No such file or directory cpio: redhat-linux-build/webkitgtk-6.0/CSSValueKeywords.gperf: Cannot stat: No such file or directory cpio: redhat-linux-build/webkitgtk-6.0/HTTPHeaderNames.gperf: Cannot stat: No such file or directory cpio: redhat-linux-build/webkitgtk-6.0/SelectorPseudoClassAndCompatibilityElementMap.gperf: Cannot stat: No such file or directory cpio: redhat-linux-build/webkitgtk-6.0/SelectorPseudoElementMap.gperf: Cannot stat: No such file or directory cpio: redhat-linux-build/webkitgtk-6.0/XPathGrammar.cpp: Cannot stat: No such file or directory cpio: redhat-linux-build/webkitgtk-6.0/XPathGrammar.h: Cannot stat: No such file or directory cpio: redhat-linux-build/webkitgtk-6.0/XPathGrammar.y: Cannot stat: No such file or directory cpio: redhat-linux-build/webkitgtk-6.0/glslang.l: Cannot stat: No such file or directory cpio: redhat-linux-build/webkitgtk-6.0/preprocessor.l: Cannot stat: No such file or directory Then the unsuccessful build fails at the very end: error: Empty %files file /builddir/build/BUILD/webkitgtk-2.51.1-build/webkitgtk-2.51.1/debugsourcefiles.list RPM build warnings: RPM build errors: File listed twice: /usr/lib/.build-id/0d/7ae4473b5af7667f752b990c163b5c1fc73c51 File listed twice: /usr/lib/.build-id/50/f4926f054b784d2e925d3175bcf5c5c1907700 File listed twice: /usr/lib/.build-id/c7/f731f011ab5906bce1c6ee6cc5b9cea70a3622 File listed twice: /usr/lib/.build-id/c9/27072d50034b125b6e6fe88706cbd188c494cf Empty %files file /builddir/build/BUILD/webkitgtk-2.51.1-build/webkitgtk-2.51.1/debugsourcefiles.list Child return code was: 1 Notably, all of the "Unknown debugging section .debug_addr" warnings from dwz are printed in both the successful and failed build logs, so those seem to be harmless and unrelated to this problem. I tried building with -gdwarf-4 just to be certain it's not related, and that did not make any difference.
Created attachment 2111534 [details] dist-git patch
This is odd. You are right that the dwz warnings are harmless. It looks like the package is using clang with -gdwarf5 which generates these .debug_addr sections dwz doesn't handle. But that just means the debuginfo isn't dwz compressed. So the issue is that debugedit -l is supposed to find the debugsources in the debuginfo. And as you can see from the cpio copying some of those source files cannot be found (in the successful build). Those cpio warnings are also not really an issue (as you can see they are gperf or yacc files, there should be plenty of "real" source files. It would be nice to figure out why those generator source files cannot be found, but that is for another time). The same file $BUILDDIR/debugsources.list is used for the %files directive. So that we don't see "Copying sources found by 'debugedit -l' ..." (which is guarded by test -s) and do see "Empty %files file [...]/debugsourcefiles.list" has the same cause. The debugsourcefiles.list is empty. Which means debugedit -l couldn't find/extract any source files from the debug files. I don't know why and couldn't quickly build this package (it is huge!). Would you happen to have a full build.log for both? Ideally generated with _find_debuginfo_opts --verbose
One cause could be that none of the object files are generated with -g (so nothing contains any debuginfo). But that is unlikely given dwz is complaining about unrecognized .debug_addr section. Another could be that the whole build is not actually done under the builddir (but in /tmp/ for example) so none of the source files would look like they come from the actual build (any source file referenced outside the builddir is assumed to to be a system/devel file, like /usr/include/...). Also not very likely, but has been seen with some builds.
(In reply to Mark Wielaard from comment #2) > Would you happen to have a full build.log for both? > Ideally generated with _find_debuginfo_opts --verbose Without --verbose, both logs are in my first comment. I think I've probably already pasted the relevant bits, though. I will do new builds later today to add --verbose. (In reply to Mark Wielaard from comment #3) > One cause could be that none of the object files are generated with -g (so > nothing contains any debuginfo). > But that is unlikely given dwz is complaining about unrecognized .debug_addr > section. > > Another could be that the whole build is not actually done under the > builddir (but in /tmp/ for example) so none of the source files would look > like they come from the actual build (any source file referenced outside the > builddir is assumed to to be a system/devel file, like /usr/include/...). > Also not very likely, but has been seen with some builds. I doubt either of these is happening.
Here are new build logs with the additional debugging you requested (%global _find_debuginfo_opts --verbose): Good (WebKitGTK 2.50.1): https://kojipkgs.fedoraproject.org/work/tasks/307/138740307/build.log Bad (WebKitGTK 2.51.1): https://kojipkgs.fedoraproject.org/work/tasks/306/138740306/build.log This time I immediately spot the problem: the bad build uses `--file-prefix-map=.` (setting it to the current working directory), introduced by https://commits.webkit.org/301772@main. This was actually already evident in the build logs that I provided last week, and I simply did not notice it. Oh well. I've never heard of this option before, but gcc(1) says: -ffile-prefix-map=old=new When compiling files residing in directory old, record any references to them in the result of the compilation as if the files resided in directory new instead. Specifying this option is equivalent to specifying all the individual -f*-prefix-map options. This can be used to make reproducible builds that are location independent. Directories referenced by directives are not affected by these options. See also -fmacro-prefix-map, -fdebug-prefix-map, -fprofile-prefix-map and -fcanon-prefix-map. The extra debugging shows us a little bit more of what is happening, all the source files present in the 2.50.1 build: + /usr/bin/find-debuginfo -j8 --strict-build-id -m -i --build-id-seed 2.50.1-2.fc44 --unique-debug-suffix -2.50.1-2.fc44.x86_64 --unique-debug-src-base webkitgtk-2.50.1-2.fc44.x86_64 --run-dwz --dwz-low-mem-die-limit 10000000 --dwz-max-die-limit 250000000 --verbose -j1 -S debugsourcefiles.list /builddir/build/BUILD/webkitgtk-2.50.1-build/webkitgtk-2.50.1 find-debuginfo: starting Extracting debug info from 17 files extracting debug info from /builddir/build/BUILD/webkitgtk-2.50.1-build/BUILDROOT/usr/bin/WebKitWebDriver found 17810 source files extracting debug info from /builddir/build/BUILD/webkitgtk-2.50.1-build/BUILDROOT/usr/lib64/libjavascriptcoregtk-4.1.so.0.9.6 found 132867 source files extracting debug info from /builddir/build/BUILD/webkitgtk-2.50.1-build/BUILDROOT/usr/lib64/libjavascriptcoregtk-6.0.so.1.6.6 found 247917 source files extracting debug info from /builddir/build/BUILD/webkitgtk-2.50.1-build/BUILDROOT/usr/lib64/libwebkit2gtk-4.1.so.0.19.4 found 839502 source files extracting debug info from /builddir/build/BUILD/webkitgtk-2.50.1-build/BUILDROOT/usr/lib64/libwebkitgtk-6.0.so.4.13.4 found 1424300 source files extracting debug info from /builddir/build/BUILD/webkitgtk-2.50.1-build/BUILDROOT/usr/lib64/webkit2gtk-4.1/injected-bundle/libwebkit2gtkinjectedbundle.so found 1424408 source files extracting debug info from /builddir/build/BUILD/webkitgtk-2.50.1-build/BUILDROOT/usr/lib64/webkitgtk-6.0/injected-bundle/libwebkitgtkinjectedbundle.so found 1424516 source files extracting debug info from /builddir/build/BUILD/webkitgtk-2.50.1-build/BUILDROOT/usr/libexec/webkit2gtk-4.1/MiniBrowser found 1424635 source files extracting debug info from /builddir/build/BUILD/webkitgtk-2.50.1-build/BUILDROOT/usr/libexec/webkit2gtk-4.1/WebKitGPUProcess found 1424646 source files extracting debug info from /builddir/build/BUILD/webkitgtk-2.50.1-build/BUILDROOT/usr/libexec/webkit2gtk-4.1/WebKitNetworkProcess found 1424657 source files extracting debug info from /builddir/build/BUILD/webkitgtk-2.50.1-build/BUILDROOT/usr/libexec/webkit2gtk-4.1/WebKitWebProcess found 1424668 source files extracting debug info from /builddir/build/BUILD/webkitgtk-2.50.1-build/BUILDROOT/usr/libexec/webkit2gtk-4.1/jsc found 1425081 source files extracting debug info from /builddir/build/BUILD/webkitgtk-2.50.1-build/BUILDROOT/usr/libexec/webkitgtk-6.0/MiniBrowser found 1425187 source files extracting debug info from /builddir/build/BUILD/webkitgtk-2.50.1-build/BUILDROOT/usr/libexec/webkitgtk-6.0/WebKitGPUProcess found 1425198 source files extracting debug info from /builddir/build/BUILD/webkitgtk-2.50.1-build/BUILDROOT/usr/libexec/webkitgtk-6.0/WebKitNetworkProcess found 1425209 source files extracting debug info from /builddir/build/BUILD/webkitgtk-2.50.1-build/BUILDROOT/usr/libexec/webkitgtk-6.0/WebKitWebProcess found 1425220 source files extracting debug info from /builddir/build/BUILD/webkitgtk-2.50.1-build/BUILDROOT/usr/libexec/webkitgtk-6.0/jsc found 1425633 source files And all gone in the 2.51.1 build: + /usr/bin/find-debuginfo -j8 --strict-build-id -m -i --build-id-seed 2.51.1-2.fc44 --unique-debug-suffix -2.51.1-2.fc44.x86_64 --unique-debug-src-base webkitgtk-2.51.1-2.fc44.x86_64 --run-dwz --dwz-low-mem-die-limit 10000000 --dwz-max-die-limit 250000000 --verbose -j1 -S debugsourcefiles.list /builddir/build/BUILD/webkitgtk-2.51.1-build/webkitgtk-2.51.1 find-debuginfo: starting Extracting debug info from 17 files extracting debug info from /builddir/build/BUILD/webkitgtk-2.51.1-build/BUILDROOT/usr/bin/WebKitWebDriver found 0 source files extracting debug info from /builddir/build/BUILD/webkitgtk-2.51.1-build/BUILDROOT/usr/lib64/libjavascriptcoregtk-4.1.so.0.10.0 found 0 source files extracting debug info from /builddir/build/BUILD/webkitgtk-2.51.1-build/BUILDROOT/usr/lib64/libjavascriptcoregtk-6.0.so.1.7.0 found 0 source files extracting debug info from /builddir/build/BUILD/webkitgtk-2.51.1-build/BUILDROOT/usr/lib64/libwebkit2gtk-4.1.so.0.20.0 found 0 source files extracting debug info from /builddir/build/BUILD/webkitgtk-2.51.1-build/BUILDROOT/usr/lib64/libwebkitgtk-6.0.so.4.14.0 found 0 source files extracting debug info from /builddir/build/BUILD/webkitgtk-2.51.1-build/BUILDROOT/usr/lib64/webkit2gtk-4.1/injected-bundle/libwebkit2gtkinjectedbundle.so found 0 source files extracting debug info from /builddir/build/BUILD/webkitgtk-2.51.1-build/BUILDROOT/usr/lib64/webkitgtk-6.0/injected-bundle/libwebkitgtkinjectedbundle.so found 0 source files extracting debug info from /builddir/build/BUILD/webkitgtk-2.51.1-build/BUILDROOT/usr/libexec/webkit2gtk-4.1/MiniBrowser found 0 source files extracting debug info from /builddir/build/BUILD/webkitgtk-2.51.1-build/BUILDROOT/usr/libexec/webkit2gtk-4.1/WebKitGPUProcess found 0 source files extracting debug info from /builddir/build/BUILD/webkitgtk-2.51.1-build/BUILDROOT/usr/libexec/webkit2gtk-4.1/WebKitNetworkProcess found 0 source files extracting debug info from /builddir/build/BUILD/webkitgtk-2.51.1-build/BUILDROOT/usr/libexec/webkit2gtk-4.1/WebKitWebProcess found 0 source files extracting debug info from /builddir/build/BUILD/webkitgtk-2.51.1-build/BUILDROOT/usr/libexec/webkit2gtk-4.1/jsc found 0 source files extracting debug info from /builddir/build/BUILD/webkitgtk-2.51.1-build/BUILDROOT/usr/libexec/webkitgtk-6.0/MiniBrowser found 0 source files extracting debug info from /builddir/build/BUILD/webkitgtk-2.51.1-build/BUILDROOT/usr/libexec/webkitgtk-6.0/WebKitGPUProcess found 0 source files extracting debug info from /builddir/build/BUILD/webkitgtk-2.51.1-build/BUILDROOT/usr/libexec/webkitgtk-6.0/WebKitNetworkProcess found 0 source files extracting debug info from /builddir/build/BUILD/webkitgtk-2.51.1-build/BUILDROOT/usr/libexec/webkitgtk-6.0/WebKitWebProcess found 0 source files extracting debug info from /builddir/build/BUILD/webkitgtk-2.51.1-build/BUILDROOT/usr/libexec/webkitgtk-6.0/jsc found 0 source files I have not yet confirmed for certain that this is really the problem, but it seems close enough to a smoking gun. I'm not sure what to do about this other than stop using the flag. (I should also change it to be *prepended* to CXXFLAGS, rather than *appended*, so that we can override it without patching the CMake build.)
Justification for adding the flag is to make remote ccache builds work, https://bugs.webkit.org/show_bug.cgi?id=301003, which is something we plainly do not need in distro builds. Maybe we could limit the flag to developer builds only.
Apparently -ffile-prefix-map=. is also required for reproducibility in Debian. That's not needed in Fedora since we build in chroots with predictable paths. For now, I will remove the flag in a downstream patch. I wonder whether `debugedit -l` can support this flag, or whether we need to just stop using it upstream (limit it to developer builds, ask Debian to add it manually in the Debian packaging).
Using -ffile-prefix-map=. will definitely confuse debugedit. (Or actually -ffile-prefix-map=${CMAKE_SOURCE_DIR}=. in this case) It will also confuse DWARF consumers (debuggers, profilers, tracers, etc.) which don't know what the "." is relative to. In general it will produce broken/ambiguous paths because a) we don't have any record of what the original (absolute) path was. b) it can result in inconsistent paths between object files linked together, but build from different source/build directories. (so "." might refer to different absolute paths for different compile units) I filed a bug against upstream debugedit to see if this can be supported, but it will need some "clever" heuristics to reconstruct the "." paths. https://sourceware.org/bugzilla/show_bug.cgi?id=33602 Not sure how long that will take, or how much work it will be. So for now getting rid of -ffile-prefix-map is your best option. BTW. debugedit does help with reproducibility in this case since it rewrites the paths to a fixed absolute dir (where we'll also put all sources).
Thanks Mark! I will forward your feedback to WebKit Bugzilla. And I'll close this, since I don't think we need the downstream bug report anymore now that you've forwarded it to upstream.
Oops, yes, the log indeed uses `-ffile-prefix-map=/builddir/build/BUILD/webkitgtk-2.51.1-build/webkitgtk-2.51.1=.` not `-ffile-prefix-map=.` -- not sure how I managed to report that incorrectly.
For what it's worth, it's probably better to have the flag dropped from upstream WebKit. Either Debian adds it themselves or they consider using debugedit to do smarter things for debug symbol extraction.