[lld] [lld-macho] Improve robustness of ObjC category merging (PR #112618)
LLVM Continuous Integration via llvm-commits
llvm-commits at lists.llvm.org
Fri Oct 18 11:18:30 PDT 2024
llvm-ci wrote:
LLVM Buildbot has detected a new failure on builder `llvm-clang-aarch64-darwin` running on `doug-worker-5` while building `lld` at step 6 "test-build-unified-tree-check-all".
Full details are available at: https://lab.llvm.org/buildbot/#/builders/190/builds/7903
<details>
<summary>Here is the relevant piece of the build log for the reference</summary>
```
Step 6 (test-build-unified-tree-check-all) failure: test (failure)
******************** TEST 'lld :: MachO/objc-category-merging-minimal.s' FAILED ********************
Exit Code: 1
Command Output (stderr):
--
RUN: at line 2: rm -rf /Users/buildbot/buildbot-root/aarch64-darwin/build/tools/lld/test/MachO/Output/objc-category-merging-minimal.s.tmp; split-file /Users/buildbot/buildbot-root/aarch64-darwin/llvm-project/lld/test/MachO/objc-category-merging-minimal.s /Users/buildbot/buildbot-root/aarch64-darwin/build/tools/lld/test/MachO/Output/objc-category-merging-minimal.s.tmp && cd /Users/buildbot/buildbot-root/aarch64-darwin/build/tools/lld/test/MachO/Output/objc-category-merging-minimal.s.tmp
+ rm -rf /Users/buildbot/buildbot-root/aarch64-darwin/build/tools/lld/test/MachO/Output/objc-category-merging-minimal.s.tmp
+ split-file /Users/buildbot/buildbot-root/aarch64-darwin/llvm-project/lld/test/MachO/objc-category-merging-minimal.s /Users/buildbot/buildbot-root/aarch64-darwin/build/tools/lld/test/MachO/Output/objc-category-merging-minimal.s.tmp
+ cd /Users/buildbot/buildbot-root/aarch64-darwin/build/tools/lld/test/MachO/Output/objc-category-merging-minimal.s.tmp
RUN: at line 6: /Users/buildbot/buildbot-root/aarch64-darwin/build/bin/llvm-mc -filetype=obj -triple=arm64-apple-macos -o a64_fakedylib.o a64_fakedylib.s
+ /Users/buildbot/buildbot-root/aarch64-darwin/build/bin/llvm-mc -filetype=obj -triple=arm64-apple-macos -o a64_fakedylib.o a64_fakedylib.s
RUN: at line 7: ld64.lld -arch x86_64 -platform_version macos 11.0 11.0 -syslibroot /Users/buildbot/buildbot-root/aarch64-darwin/llvm-project/lld/test/MachO/Inputs/MacOSX.sdk -lSystem -fatal_warnings -arch arm64 a64_fakedylib.o -o a64_fakedylib.dylib -dylib
+ ld64.lld -arch x86_64 -platform_version macos 11.0 11.0 -syslibroot /Users/buildbot/buildbot-root/aarch64-darwin/llvm-project/lld/test/MachO/Inputs/MacOSX.sdk -lSystem -fatal_warnings -arch arm64 a64_fakedylib.o -o a64_fakedylib.dylib -dylib
RUN: at line 10: /Users/buildbot/buildbot-root/aarch64-darwin/build/bin/llvm-mc -filetype=obj -triple=arm64-apple-macos -o merge_cat_minimal.o merge_cat_minimal.s
+ /Users/buildbot/buildbot-root/aarch64-darwin/build/bin/llvm-mc -filetype=obj -triple=arm64-apple-macos -o merge_cat_minimal.o merge_cat_minimal.s
RUN: at line 11: ld64.lld -arch x86_64 -platform_version macos 11.0 11.0 -syslibroot /Users/buildbot/buildbot-root/aarch64-darwin/llvm-project/lld/test/MachO/Inputs/MacOSX.sdk -lSystem -fatal_warnings -arch arm64 -dylib -o merge_cat_minimal_no_merge.dylib a64_fakedylib.dylib merge_cat_minimal.o
+ ld64.lld -arch x86_64 -platform_version macos 11.0 11.0 -syslibroot /Users/buildbot/buildbot-root/aarch64-darwin/llvm-project/lld/test/MachO/Inputs/MacOSX.sdk -lSystem -fatal_warnings -arch arm64 -dylib -o merge_cat_minimal_no_merge.dylib a64_fakedylib.dylib merge_cat_minimal.o
RUN: at line 12: ld64.lld -arch x86_64 -platform_version macos 11.0 11.0 -syslibroot /Users/buildbot/buildbot-root/aarch64-darwin/llvm-project/lld/test/MachO/Inputs/MacOSX.sdk -lSystem -fatal_warnings -arch arm64 -dylib -o merge_cat_minimal_merge.dylib -objc_category_merging a64_fakedylib.dylib merge_cat_minimal.o
+ ld64.lld -arch x86_64 -platform_version macos 11.0 11.0 -syslibroot /Users/buildbot/buildbot-root/aarch64-darwin/llvm-project/lld/test/MachO/Inputs/MacOSX.sdk -lSystem -fatal_warnings -arch arm64 -dylib -o merge_cat_minimal_merge.dylib -objc_category_merging a64_fakedylib.dylib merge_cat_minimal.o
RUN: at line 15: /Users/buildbot/buildbot-root/aarch64-darwin/build/bin/llvm-objdump --objc-meta-data --macho merge_cat_minimal_no_merge.dylib | /Users/buildbot/buildbot-root/aarch64-darwin/build/bin/FileCheck /Users/buildbot/buildbot-root/aarch64-darwin/llvm-project/lld/test/MachO/objc-category-merging-minimal.s --check-prefixes=NO_MERGE_CATS
+ /Users/buildbot/buildbot-root/aarch64-darwin/build/bin/llvm-objdump --objc-meta-data --macho merge_cat_minimal_no_merge.dylib
+ /Users/buildbot/buildbot-root/aarch64-darwin/build/bin/FileCheck /Users/buildbot/buildbot-root/aarch64-darwin/llvm-project/lld/test/MachO/objc-category-merging-minimal.s --check-prefixes=NO_MERGE_CATS
RUN: at line 16: /Users/buildbot/buildbot-root/aarch64-darwin/build/bin/llvm-objdump --objc-meta-data --macho merge_cat_minimal_merge.dylib | /Users/buildbot/buildbot-root/aarch64-darwin/build/bin/FileCheck /Users/buildbot/buildbot-root/aarch64-darwin/llvm-project/lld/test/MachO/objc-category-merging-minimal.s --check-prefixes=MERGE_CATS
+ /Users/buildbot/buildbot-root/aarch64-darwin/build/bin/llvm-objdump --objc-meta-data --macho merge_cat_minimal_merge.dylib
+ /Users/buildbot/buildbot-root/aarch64-darwin/build/bin/FileCheck /Users/buildbot/buildbot-root/aarch64-darwin/llvm-project/lld/test/MachO/objc-category-merging-minimal.s --check-prefixes=MERGE_CATS
RUN: at line 19: /Users/buildbot/buildbot-root/aarch64-darwin/build/bin/llvm-mc -filetype=obj -triple=arm64-apple-macos -o merge_base_class_minimal.o merge_base_class_minimal.s
+ /Users/buildbot/buildbot-root/aarch64-darwin/build/bin/llvm-mc -filetype=obj -triple=arm64-apple-macos -o merge_base_class_minimal.o merge_base_class_minimal.s
RUN: at line 20: ld64.lld -arch x86_64 -platform_version macos 11.0 11.0 -syslibroot /Users/buildbot/buildbot-root/aarch64-darwin/llvm-project/lld/test/MachO/Inputs/MacOSX.sdk -lSystem -fatal_warnings -arch arm64 -dylib -o merge_base_class_minimal_yes_merge.dylib -objc_category_merging merge_base_class_minimal.o merge_cat_minimal.o
+ ld64.lld -arch x86_64 -platform_version macos 11.0 11.0 -syslibroot /Users/buildbot/buildbot-root/aarch64-darwin/llvm-project/lld/test/MachO/Inputs/MacOSX.sdk -lSystem -fatal_warnings -arch arm64 -dylib -o merge_base_class_minimal_yes_merge.dylib -objc_category_merging merge_base_class_minimal.o merge_cat_minimal.o
RUN: at line 21: ld64.lld -arch x86_64 -platform_version macos 11.0 11.0 -syslibroot /Users/buildbot/buildbot-root/aarch64-darwin/llvm-project/lld/test/MachO/Inputs/MacOSX.sdk -lSystem -fatal_warnings -arch arm64 -dylib -o merge_base_class_minimal_no_merge.dylib merge_base_class_minimal.o merge_cat_minimal.o
+ ld64.lld -arch x86_64 -platform_version macos 11.0 11.0 -syslibroot /Users/buildbot/buildbot-root/aarch64-darwin/llvm-project/lld/test/MachO/Inputs/MacOSX.sdk -lSystem -fatal_warnings -arch arm64 -dylib -o merge_base_class_minimal_no_merge.dylib merge_base_class_minimal.o merge_cat_minimal.o
RUN: at line 23: /Users/buildbot/buildbot-root/aarch64-darwin/build/bin/llvm-objdump --objc-meta-data --macho merge_base_class_minimal_no_merge.dylib | /Users/buildbot/buildbot-root/aarch64-darwin/build/bin/FileCheck /Users/buildbot/buildbot-root/aarch64-darwin/llvm-project/lld/test/MachO/objc-category-merging-minimal.s --check-prefixes=NO_MERGE_INTO_BASE
+ /Users/buildbot/buildbot-root/aarch64-darwin/build/bin/llvm-objdump --objc-meta-data --macho merge_base_class_minimal_no_merge.dylib
+ /Users/buildbot/buildbot-root/aarch64-darwin/build/bin/FileCheck /Users/buildbot/buildbot-root/aarch64-darwin/llvm-project/lld/test/MachO/objc-category-merging-minimal.s --check-prefixes=NO_MERGE_INTO_BASE
RUN: at line 24: /Users/buildbot/buildbot-root/aarch64-darwin/build/bin/llvm-objdump --objc-meta-data --macho merge_base_class_minimal_yes_merge.dylib | /Users/buildbot/buildbot-root/aarch64-darwin/build/bin/FileCheck /Users/buildbot/buildbot-root/aarch64-darwin/llvm-project/lld/test/MachO/objc-category-merging-minimal.s --check-prefixes=YES_MERGE_INTO_BASE
+ /Users/buildbot/buildbot-root/aarch64-darwin/build/bin/llvm-objdump --objc-meta-data --macho merge_base_class_minimal_yes_merge.dylib
+ /Users/buildbot/buildbot-root/aarch64-darwin/build/bin/FileCheck /Users/buildbot/buildbot-root/aarch64-darwin/llvm-project/lld/test/MachO/objc-category-merging-minimal.s --check-prefixes=YES_MERGE_INTO_BASE
RUN: at line 27: /Users/buildbot/buildbot-root/aarch64-darwin/build/bin/llvm-mc -filetype=obj -triple=arm64-apple-macos -o MyBaseClassSwiftExtension.o MyBaseClassSwiftExtension.s
+ /Users/buildbot/buildbot-root/aarch64-darwin/build/bin/llvm-mc -filetype=obj -triple=arm64-apple-macos -o MyBaseClassSwiftExtension.o MyBaseClassSwiftExtension.s
RUN: at line 28: ld64.lld -arch x86_64 -platform_version macos 11.0 11.0 -syslibroot /Users/buildbot/buildbot-root/aarch64-darwin/llvm-project/lld/test/MachO/Inputs/MacOSX.sdk -lSystem -fatal_warnings -no_objc_relative_method_lists -arch arm64 -dylib -o merge_base_class_swift_minimal_yes_merge.dylib -objc_category_merging MyBaseClassSwiftExtension.o merge_base_class_minimal.o
+ ld64.lld -arch x86_64 -platform_version macos 11.0 11.0 -syslibroot /Users/buildbot/buildbot-root/aarch64-darwin/llvm-project/lld/test/MachO/Inputs/MacOSX.sdk -lSystem -fatal_warnings -no_objc_relative_method_lists -arch arm64 -dylib -o merge_base_class_swift_minimal_yes_merge.dylib -objc_category_merging MyBaseClassSwiftExtension.o merge_base_class_minimal.o
RUN: at line 29: /Users/buildbot/buildbot-root/aarch64-darwin/build/bin/llvm-objdump --objc-meta-data --macho merge_base_class_swift_minimal_yes_merge.dylib | /Users/buildbot/buildbot-root/aarch64-darwin/build/bin/FileCheck /Users/buildbot/buildbot-root/aarch64-darwin/llvm-project/lld/test/MachO/objc-category-merging-minimal.s --check-prefixes=YES_MERGE_INTO_BASE_SWIFT
+ /Users/buildbot/buildbot-root/aarch64-darwin/build/bin/llvm-objdump --objc-meta-data --macho merge_base_class_swift_minimal_yes_merge.dylib
+ /Users/buildbot/buildbot-root/aarch64-darwin/build/bin/FileCheck /Users/buildbot/buildbot-root/aarch64-darwin/llvm-project/lld/test/MachO/objc-category-merging-minimal.s --check-prefixes=YES_MERGE_INTO_BASE_SWIFT
RUN: at line 33: sed -E '/^__OBJC_\$_CATEGORY_MyBaseClass_\$_Category01:/ { n; s/^[ \t]*\.quad[ \t]+l_OBJC_CLASS_NAME_$/\t.quad\tL_OBJC_IMAGE_INFO+3/ }' merge_cat_minimal.s > merge_cat_minimal_bad_name.s
+ sed -E '/^__OBJC_\$_CATEGORY_MyBaseClass_\$_Category01:/ { n; s/^[ \t]*\.quad[ \t]+l_OBJC_CLASS_NAME_$/\t.quad\tL_OBJC_IMAGE_INFO+3/ }' merge_cat_minimal.s
sed: 1: "/^__OBJC_\$_CATEGORY_My ...": bad flag in substitute command: '}'
--
...
```
</details>
https://github.com/llvm/llvm-project/pull/112618
More information about the llvm-commits
mailing list