The -M flag and its like is very useful for reliable dependencies. It would be great if the same would work also when linking.
The use case is the following. Suppose you build a project with a dependency that comes in via pkg-config. The eventual link line looks like this:
gcc -o final_exe source.o -L/path/to/my/place -L/path/to/somewhere/else -lmydep
It is very difficult to tell where the dependency library will be picked up from. If the user updates any library by doing a "make/ninja install" from the dependency file, then it is hard to know that the dependency libraries have changed and thus require a rebuild. (usually doing an install updates headers, which _do_ trigger a rebuild but some systems only overwrite installed files if they have changed so looking only at header files is not reliable).
If linking supported generating dependency files like -M does for source compilations, this would not be a problem and
(In reply to jpakkane from comment #0)
> If linking supported generating dependency files like -M does for source
> compilations, this would not be a problem and
The main problem is that GCC doesn't do the linking, it just calls the linker. GCC is not involved in resolving -lmydep to a file on disk, that's the linker.
So the feature would have to be added to the linker, not to GCC.
Please file on sourceware.org/bugzilla