[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug ld/30568] --dependency-file includes temporary LTO files
From: |
npopov at redhat dot com |
Subject: |
[Bug ld/30568] --dependency-file includes temporary LTO files |
Date: |
Tue, 27 Jun 2023 08:42:20 +0000 |
https://sourceware.org/bugzilla/show_bug.cgi?id=30568
--- Comment #2 from Nikita Popov <npopov at redhat dot com> ---
Thanks for the patch!
> I have a couple of concerns with the patch. The first is that it uses a
> simple heuristic to detect LTO generated filenames. I have no idea how
> robust this will be.
Yes, I agree. The checked sub-strings are pretty short, so it seems likely that
there will be conflicts with real linker inputs. For example, LLVM has a tool
called llvm-lto, so it seems pretty conceivable that "llvm-lto-" appears as
part of a file name.
It would be preferable if we could exclude all files added by the
add_input_file hook from the dependency tracking.
In the original report I suggested using the existing lto_output flag to
distinguish this (for ld.bfd) -- is there any reason why that wouldn't work?
(Another possibility would be to check whether the file still exists when
writing the dependency file -- but I'm not sure whether these files have
already been deleted at that point, or whether that happens later.)
> The second is that the patch strips the filenames from the command line that
> forms the first part of the dependency file, as well as the list of files
> that comes afterwards. I ma not sure if this is the correct thing to do.
> Maybe the command line should remain unfiltered.
This is the right thing to do: The part at the start isn't a command line, but
rather the actual dependency list in Makefile format, so we do want to filter
that.
--
You are receiving this mail because:
You are on the CC list for the bug.