From 6aeffa18e9ac51b7090325ea50d1841248a876c6 Mon Sep 17 00:00:00 2001 From: Fangrui Song Date: Sun, 24 Nov 2024 17:23:52 -0800 Subject: [PATCH] [ELF] --reproduce: strip directories for --dependency-file= CMake may generate build.ninja with DEP_FILE specifying a non-existent directory in the reproduce tarball. --- lld/ELF/DriverUtils.cpp | 1 + lld/test/ELF/reproduce.s | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/lld/ELF/DriverUtils.cpp b/lld/ELF/DriverUtils.cpp index 0278c070b247..4c88723f090d 100644 --- a/lld/ELF/DriverUtils.cpp +++ b/lld/ELF/DriverUtils.cpp @@ -174,6 +174,7 @@ std::string elf::createResponseFile(const opt::InputArgList &args) { break; case OPT_o: case OPT_Map: + case OPT_dependency_file: case OPT_print_archive_stats: case OPT_why_extract: // If an output path contains directories, "lld @response.txt" will diff --git a/lld/test/ELF/reproduce.s b/lld/test/ELF/reproduce.s index 8818a9e35f40..29dc109d5a41 100644 --- a/lld/test/ELF/reproduce.s +++ b/lld/test/ELF/reproduce.s @@ -76,11 +76,12 @@ ## Check that directory path is stripped from -o # RUN: mkdir -p %t.dir/build4/a/b/c # RUN: cd %t.dir -# RUN: ld.lld build1/foo.o -o build4/a/b/c/bar -Map build4/map --print-archive-stats=build4/stats \ +# RUN: ld.lld build1/foo.o -o build4/a/b/c/bar -Map build4/map --dependency-file=build4/bar.d --print-archive-stats=build4/stats \ # RUN: --why-extract=build4/why -shared --as-needed --reproduce=repro4.tar # RUN: tar xOf repro4.tar repro4/response.txt | FileCheck %s --check-prefix=RSP4 # RSP4: -o bar # RSP4-NEXT: -Map map +# RSP4-NEXT: --dependency-file bar.d # RSP4-NEXT: --print-archive-stats=stats # RSP4-NEXT: --why-extract=why