Skip to content

feat: Support --dependency-file#1467

Merged
lapla-cogito merged 3 commits into
wild-linker:mainfrom
lapla-cogito:dependency_file
Jan 18, 2026
Merged

feat: Support --dependency-file#1467
lapla-cogito merged 3 commits into
wild-linker:mainfrom
lapla-cogito:dependency_file

Conversation

@lapla-cogito

Copy link
Copy Markdown
Member

This option is used when building Blender (the build itself succeeds, but feedback on Zulip revealed this issue). When this option enabled, the dependencies used during linking are written to the specified file in a format that make(1) can interpret.

Comment thread libwild/src/lib.rs
}

/// Writes a dependency file in Makefile format.
fn write_dependency_file(

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@lapla-cogito

Copy link
Copy Markdown
Member Author

This is the comparison of dependency results when compiling this code:

#include <stdio.h>
int main() {
  printf("Hello world\n");
}
GNU ld
exe: \
  /usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/Scrt1.o \
  /usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/crti.o \
  /usr/lib/gcc/x86_64-linux-gnu/15/crtbeginS.o \
  /tmp/ccB3aycO.o \
  /usr/lib/gcc/x86_64-linux-gnu/15/libgcc.a \
  /usr/lib/gcc/x86_64-linux-gnu/15/libgcc_s.so \
  /usr/lib/gcc/x86_64-linux-gnu/15/libgcc_s.so \
  /usr/lib/gcc/x86_64-linux-gnu/15/libgcc_s.so \
  /usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/libgcc_s.so.1 \
  /usr/lib/gcc/x86_64-linux-gnu/15/libgcc.a \
  /usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/libc.so \
  /usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/libc.so \
  /usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/libc.so \
  /lib/x86_64-linux-gnu/libc.so.6 \
  /usr/lib/x86_64-linux-gnu/libc_nonshared.a \
  /lib64/ld-linux-x86-64.so.2 \
  /usr/lib/gcc/x86_64-linux-gnu/15/libgcc.a \
  /usr/lib/gcc/x86_64-linux-gnu/15/libgcc_s.so \
  /usr/lib/gcc/x86_64-linux-gnu/15/libgcc_s.so \
  /usr/lib/gcc/x86_64-linux-gnu/15/libgcc_s.so \
  /usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/libgcc_s.so.1 \
  /usr/lib/gcc/x86_64-linux-gnu/15/libgcc.a \
  /usr/lib/gcc/x86_64-linux-gnu/15/crtendS.o \
  /usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/crtn.o \
  /lib64/ld-linux-x86-64.so.2

/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/Scrt1.o:

/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/crti.o:

/usr/lib/gcc/x86_64-linux-gnu/15/crtbeginS.o:

/tmp/ccB3aycO.o:

/usr/lib/gcc/x86_64-linux-gnu/15/libgcc.a:

/usr/lib/gcc/x86_64-linux-gnu/15/libgcc_s.so:

/usr/lib/gcc/x86_64-linux-gnu/15/libgcc_s.so:

/usr/lib/gcc/x86_64-linux-gnu/15/libgcc_s.so:

/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/libgcc_s.so.1:

/usr/lib/gcc/x86_64-linux-gnu/15/libgcc.a:

/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/libc.so:

/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/libc.so:

/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/libc.so:

/lib/x86_64-linux-gnu/libc.so.6:

/usr/lib/x86_64-linux-gnu/libc_nonshared.a:

/lib64/ld-linux-x86-64.so.2:

/usr/lib/gcc/x86_64-linux-gnu/15/libgcc.a:

/usr/lib/gcc/x86_64-linux-gnu/15/libgcc_s.so:

/usr/lib/gcc/x86_64-linux-gnu/15/libgcc_s.so:

/usr/lib/gcc/x86_64-linux-gnu/15/libgcc_s.so:

/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/libgcc_s.so.1:

/usr/lib/gcc/x86_64-linux-gnu/15/libgcc.a:

/usr/lib/gcc/x86_64-linux-gnu/15/crtendS.o:

/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/crtn.o:

/lib64/ld-linux-x86-64.so.2:

Wild
exe: /usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/15/crtbeginS.o /tmp/ccRx0WJy.o /usr/lib/gcc/x86_64-linux-gnu/15/libgcc.a /usr/lib/gcc/x86_64-linux-gnu/15/libgcc_s.so /usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/libgcc_s.so.1 /usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/libc.so /lib/x86_64-linux-gnu/libc.so.6 /usr/lib/x86_64-linux-gnu/libc_nonshared.a /lib64/ld-linux-x86-64.so.2 /usr/lib/gcc/x86_64-linux-gnu/15/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/crtn.o

/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/Scrt1.o:

/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/crti.o:

/usr/lib/gcc/x86_64-linux-gnu/15/crtbeginS.o:

/tmp/ccRx0WJy.o:

/usr/lib/gcc/x86_64-linux-gnu/15/libgcc.a:

/usr/lib/gcc/x86_64-linux-gnu/15/libgcc_s.so:

/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/libgcc_s.so.1:

/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/libc.so:

/lib/x86_64-linux-gnu/libc.so.6:

/usr/lib/x86_64-linux-gnu/libc_nonshared.a:

/lib64/ld-linux-x86-64.so.2:

/usr/lib/gcc/x86_64-linux-gnu/15/crtendS.o:

/usr/lib/gcc/x86_64-linux-gnu/15/../../../x86_64-linux-gnu/crtn.o:

This discrepancy stems from eliminating identical dependencies, so I believe it's essentially a non-issue.

@davidlattimore davidlattimore left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for implementing this!

Comment thread libwild/src/lib.rs Outdated
Comment thread libwild/src/lib.rs Outdated
@lapla-cogito lapla-cogito force-pushed the dependency_file branch 2 times, most recently from 6291f31 to a9fb9e4 Compare January 18, 2026 23:14
@lapla-cogito lapla-cogito merged commit cc318fd into wild-linker:main Jan 18, 2026
20 checks passed
@lapla-cogito lapla-cogito deleted the dependency_file branch January 18, 2026 23:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants