From 13cb0afbd245230c11f1582bbe0baa8c3d021acc Mon Sep 17 00:00:00 2001 From: David Spickett Date: Tue, 21 Oct 2025 10:59:21 +0000 Subject: [PATCH] [lld][test] Fix file cleanup in aarch64-build-attributes.s MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This test made the foolish decision to take the lit documentation at its word: https://llvm.org/docs/CommandGuide/lit.html#substitutions "%t temporary file name unique to the test" %t is in fact the **path** of a file. As suggested by the line below that describing %basename_t. This test assumed it was just the filename itself and so left a layout of: $ tree tools/lld/test/ tools/lld/test/ ├── CMakeFiles ├── ELF │   └── Output │   ├── aarch64-build-attributes.s.tmp │   │   ├── pauth-bti-gcs.s │   │   └── pauth-bti-pac.s │   ├── aarch64-build-attributes.s.tmp.merged.o │   ├── aarch64-build-attributes.s.tmp1.o │   ├── aarch64-build-attributes.s.tmp2.o │   └── aarch64-build-attributes.s.tmp3.o ├── Unit │   └── lit.site.cfg.py ├── cmake_install.cmake └── lit.site.cfg.py Note how the 2 .s files are in the temp dir but the .o files are not. To fix this, remove %t from all the temp file names so they are created in the temp dir, which is cleaned before each run. New layout: $ tree tools/lld/test/ tools/lld/test/ ├── CMakeFiles ├── ELF │   └── Output │   └── aarch64-build-attributes.s.tmp │   ├── 1.o │   ├── 2.o │   ├── 3.o │   ├── merged.o │   ├── pauth-bti-gcs.s │   └── pauth-bti-pac.s ├── Unit │   └── lit.site.cfg.py ├── cmake_install.cmake └── lit.site.cfg.py --- lld/test/ELF/aarch64-build-attributes.s | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lld/test/ELF/aarch64-build-attributes.s b/lld/test/ELF/aarch64-build-attributes.s index f2d542150897e..3d333bf6ccf2f 100644 --- a/lld/test/ELF/aarch64-build-attributes.s +++ b/lld/test/ELF/aarch64-build-attributes.s @@ -1,11 +1,11 @@ // REQUIRES: aarch64 // RUN: rm -rf %t && split-file %s %t && cd %t -// RUN: llvm-mc -triple=aarch64 -filetype=obj %s -o %t1.o -// RUN: llvm-mc -triple=aarch64 -filetype=obj pauth-bti-gcs.s -o %t2.o -// RUN: llvm-mc -triple=aarch64 -filetype=obj pauth-bti-pac.s -o %t3.o -// RUN: ld.lld -r %t1.o %t2.o %t3.o -o %t.merged.o -// RUN: llvm-readelf -n %t.merged.o | FileCheck %s --check-prefix=NOTE +// RUN: llvm-mc -triple=aarch64 -filetype=obj %s -o 1.o +// RUN: llvm-mc -triple=aarch64 -filetype=obj pauth-bti-gcs.s -o 2.o +// RUN: llvm-mc -triple=aarch64 -filetype=obj pauth-bti-pac.s -o 3.o +// RUN: ld.lld -r 1.o 2.o 3.o -o merged.o +// RUN: llvm-readelf -n merged.o | FileCheck %s --check-prefix=NOTE /// This test merges three object files with AArch64 build attributes. /// All contain identical PAuth ABI info (platform/version), which must be preserved.