If there are multiple symbols at the same address, our unwind info
implementation assumes that we always register unwind entries to a
single canonical symbol.
This assumption was violated by the registerEhFrame code.
Fixes #56570.
Differential D130208
[lld-macho] Fix assertion when two symbols at same addr have unwind info int3 on Jul 20 2022, 3:36 PM. Authored by
Details
If there are multiple symbols at the same address, our unwind info This assumption was violated by the registerEhFrame code. Fixes #56570.
Diff Detail
Event Timeline
Comment Actions Stamp, but:
Comment Actions Sorry for the slow turnaround – was at a conference last week, and don't build the iOS code all that often. Here's a repro file: https://drive.google.com/file/d/1wMTTtgtLgrnXPZ--qpx1jUJs3spXeLmo/view?usp=sharing The assertion used to fire for Users/thakis/src/chrome/src/out/gnios/obj/ios/chrome/browser/ui/omnibox/popup/popup_swift/omnibox_popup_view_provider.o. That .o file is created by compiling https://source.chromium.org/chromium/chromium/src/+/main:ios/chrome/browser/ui/omnibox/popup/omnibox_popup_view_provider.swift;l=1?q=omnibox_popup_view_provider.&sq= (I can get the exact compile command if it helps). It's a swift file, so maybe this is needed for all swift .o files? If so, this would probably slow down links of projects using swift a bit (?) Comment Actions (For my own notes: args.gn: use_goma = true dcheck_always_on = false is_debug = false symbol_level = 0 target_os = "ios" target_cpu = "arm64" ios_enable_code_signing = false At chromium rev 3695eeb95bcf70bcbad32a4166c0d0748ed61d99. Ran: % time ninja -C out/gnios ios_chrome_unittests -j250 % rm out/gnios/obj/ios/chrome/test/arm64/ios_chrome_unittests % LLD_REPRODUCE=repro-ios.tar ninja -C out/gnios obj/ios/chrome/test/arm64/ios_chrome_unittests ) |
We hit this assert in "normal" builds: https://bugs.chromium.org/p/chromium/issues/detail?id=1346125#c1
Do you want a repro file for that?
Anyways, addressing the assert quickly would be good :) (either revert if hitting this on a normal build is surprising and needs more investigation, or by landing this fix here)