| Summary: | resolve-asm-file-conflicts.rb build failure after upgrade to CMake 3.21.0; DWARF 5 incompatibility | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Adrian Vovk <adrianvovk> |
| Component: | JavaScriptCore | Assignee: | Angelos Oikonomopoulos <angelos> |
| Status: | RESOLVED FIXED | ||
| Severity: | Normal | CC: | angelos, aperez, bugs-noreply, ews-watchlist, keith_miller, mark.lam, mcatanzaro, msaboff, saam, tzagallo, webkit-bug-importer |
| Priority: | P2 | Keywords: | InRadar |
| Version: | WebKit Nightly Build | ||
| Hardware: | PC | ||
| OS: | Linux | ||
| See Also: | https://bugs.webkit.org/show_bug.cgi?id=229893 | ||
| Attachments: | |||
|
Description
Adrian Vovk
2021-07-24 09:48:05 PDT
Created attachment 434171 [details]
File directives in LowLevelInterpreter.cpp.pre.s
Created attachment 434172 [details]
File directives in LowLevelInterpreter.cpp.s
Created attachment 434173 [details]
The arguments passed into postprocess-asm in cmake 3.21.0 vs 3.20.5
I put this here just in case it's useful. As you can see cmake 3.21.0 uses absolute paths and cmake 3.20.5 uses relative paths
Thanks a lot for the thorough bug report and for doing the initial troubleshooting—much appreciated. We had not seen this ourselves probably because the Flatpak SDK we use for developing does not always have the latest CMake version; but we definitely need to fix this. Indeed, thanks for the investigation! Will work on a patch, but need to build a newer GCC first. Created attachment 434423 [details]
Patch
Unfortunately, I haven't been able to reproduce the issue with cmake 3.21.0 and GCC 11.1.0 (with --debug, so the asm postprocessing was enabled). Adrian, could you test if the patch I just uploaded fixes things for you? (In reply to Angelos Oikonomopoulos from comment #7) > Adrian, could you test if the patch I just uploaded fixes things for you? Meaning Adrian Vovk, of course. Thank you for the patch, Angelos! This patch seems to fix the problem. *** Bug 229491 has been marked as a duplicate of this bug. *** Committed r281758 (241100@main): <https://commits.webkit.org/241100@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 434423 [details]. (In reply to Adrian Vovk from comment #0) > > Source/JavaScriptCore/CMakeFiles/LowLevelInterpreterLib.dir/llint/LowLevelInterpreter.cpp.s:109399: Error: file table slot 1 is already occupied by a different file (/buildstream/carbonOS/pkgs/webkitgtk.bst/Source/JavaScriptCore/llint/LowLevelInterpreter.cpp vs /buildstream/carbonOS/pkgs/webkitgtk.bst/_builddir//buildstream/carbonOS/pkgs/webkitgtk.bst/Source/JavaScriptCore/llint/LowLevelInterpreter.cpp) > This is a symptom of resolve-asm-file-conflict's incompatibility with DWARF 5 I'm still seeing this exact same error even though this has landed: /tmp/ccHybVZr.s: Assembler messages: /tmp/ccHybVZr.s:23: Error: file table slot 1 is already occupied by a different file (../../Source/JavaScriptCore/llint/LowLevelInterpreter.cpp vs /home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/llint/LowLevelInterpreter.asm) /tmp/ccHybVZr.s:103670: Error: file table slot 2 is already occupied by a different file (/home/mcatanzaro/Projects/WebKit/WebKitBuild/GNOME/JavaScriptCore/DerivedSources/InitBytecodes.asm vs ../../Source/JavaScriptCore/heap/SlotVisitorInlines.h) /tmp/ccHybVZr.s:103689: Error: file table slot 3 is already occupied by a different file (/home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm vs WTF/Headers/wtf/Atomics.h) /tmp/ccHybVZr.s:103697: Error: file table slot 4 is already occupied by a different file (/home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm vs ../../Source/JavaScriptCore/heap/HeapCellInlines.h) /tmp/ccHybVZr.s:103702: Error: file table slot 5 is already occupied by a different file (/home/mcatanzaro/Projects/WebKit/WebKitBuild/GNOME/JavaScriptCore/DerivedSources/InitWasm.asm vs ../../Source/JavaScriptCore/heap/PreciseAllocation.h) /tmp/ccHybVZr.s:103728: Error: file table slot 6 is already occupied by a different file (/home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/llint/WebAssembly.asm vs ../../Source/JavaScriptCore/heap/MarkedBlock.h) Reopening. I've disabled this feature for now via bug #229893. Please remember to revert that when fixing this bug! (In reply to Michael Catanzaro from comment #13) > (In reply to Adrian Vovk from comment #0) > > > Source/JavaScriptCore/CMakeFiles/LowLevelInterpreterLib.dir/llint/LowLevelInterpreter.cpp.s:109399: Error: file table slot 1 is already occupied by a different file (/buildstream/carbonOS/pkgs/webkitgtk.bst/Source/JavaScriptCore/llint/LowLevelInterpreter.cpp vs /buildstream/carbonOS/pkgs/webkitgtk.bst/_builddir//buildstream/carbonOS/pkgs/webkitgtk.bst/Source/JavaScriptCore/llint/LowLevelInterpreter.cpp) > > This is a symptom of resolve-asm-file-conflict's incompatibility with DWARF 5 > > I'm still seeing this exact same error even though this has landed: > > /tmp/ccHybVZr.s: Assembler messages: > /tmp/ccHybVZr.s:23: Error: file table slot 1 is already occupied by a > different file (../../Source/JavaScriptCore/llint/LowLevelInterpreter.cpp vs > /home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/llint/ > LowLevelInterpreter.asm) > /tmp/ccHybVZr.s:103670: Error: file table slot 2 is already occupied by a > different file > (/home/mcatanzaro/Projects/WebKit/WebKitBuild/GNOME/JavaScriptCore/ > DerivedSources/InitBytecodes.asm vs > ../../Source/JavaScriptCore/heap/SlotVisitorInlines.h) > /tmp/ccHybVZr.s:103689: Error: file table slot 3 is already occupied by a > different file > (/home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/llint/ > LowLevelInterpreter64.asm vs WTF/Headers/wtf/Atomics.h) > /tmp/ccHybVZr.s:103697: Error: file table slot 4 is already occupied by a > different file > (/home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/llint/ > LowLevelInterpreter32_64.asm vs > ../../Source/JavaScriptCore/heap/HeapCellInlines.h) > /tmp/ccHybVZr.s:103702: Error: file table slot 5 is already occupied by a > different file > (/home/mcatanzaro/Projects/WebKit/WebKitBuild/GNOME/JavaScriptCore/ > DerivedSources/InitWasm.asm vs > ../../Source/JavaScriptCore/heap/PreciseAllocation.h) > /tmp/ccHybVZr.s:103728: Error: file table slot 6 is already occupied by a > different file > (/home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/llint/WebAssembly. > asm vs ../../Source/JavaScriptCore/heap/MarkedBlock.h) > > Reopening. Ouch. Any hints on where I should try to reproduce this? (In reply to Angelos Oikonomopoulos from comment #15) > Ouch. Any hints on where I should try to reproduce this? Try building in an F34 toolbox? (In reply to Michael Catanzaro from comment #16) > (In reply to Angelos Oikonomopoulos from comment #15) > > Ouch. Any hints on where I should try to reproduce this? > > Try building in an F34 toolbox? Thanks. Unfortunately, building with ./Tools/Scripts/build-jsc --jsc-only --debug --cmakeargs=-DGCC_OFFLINEASM_SOURCE_MAP=ON (which gives the -- Enabling asm postprocessing message) fails to reproduce the issue in the official fedora:34 docker image. For reference: -- The CXX compiler identification is GNU 11.2.1 And gcc -v reports: gcc version 11.2.1 20210728 (Red Hat 11.2.1-1) (GCC). If there's anything special about your setup that I'm missing, any tips would be welcome. (In reply to Angelos Oikonomopoulos from comment #17) > If there's anything special about your setup that I'm missing, any tips > would be welcome. Well I'll be, seems it's only broken when built with -flto=auto. Let me close this and open a new bug. |