Re: [PATCH 0/2] Change Rust Binder crate name to rust_binder

From: Gary Guo

Date: Thu Mar 05 2026 - 07:36:24 EST


On Thu Mar 5, 2026 at 12:27 PM GMT, Alice Ryhl wrote:
> On Thu, Mar 05, 2026 at 12:17:52PM +0000, Gary Guo wrote:
>> On Thu Mar 5, 2026 at 10:49 AM GMT, Alice Ryhl wrote:
>> > On Tue, Feb 24, 2026 at 03:17:16PM +0000, Alice Ryhl wrote:
>> >> On Tue, Feb 24, 2026 at 02:24:59PM +0100, Miguel Ojeda wrote:
>> >> > On Tue, Feb 24, 2026 at 10:38 AM Alice Ryhl <aliceryhl@xxxxxxxxxx> wrote:
>> >> > >
>> >> > > Currently the crate name of the Rust Binder driver is rust_binder_main,
>> >> > > but I'd like it to be called rust_binder instead. This affects e.g.
>> >> > > symbol names in stack traces.
>> >> >
>> >> > We discussed allowing to customize crate names years ago, at least for
>> >> > dashes vs. underscores, for matching C names more closely and perhaps
>> >> > other needs.
>> >> >
>> >> > Back then, we decided to keep things simple to avoid confusion (i.e. a
>> >> > single identifier used everywhere the same way is simpler, at least
>> >> > for humans) and to avoid having to deal with those dual names
>> >> > everywhere (e.g. adding workarounds for rust-analyzer here).
>> >> >
>> >> > I talked with Alice about what she needed here -- could we rename that
>> >> > source file to just something like `binder`? That would avoid the need
>> >> > to have a custom name, so everything would still match (symbols,
>> >> > source file, object file...), and it would give you even shorter
>> >> > names.
>> >>
>> >> Sure just renaming rust_binder_main.rs to binder.rs would work too.
>> >
>> > I realized that there's a much simpler way to allow crates to rename
>> > themselves: do not pass the --crate-name argument at all.
>> >
>> > Because if you do not pass this argument, then rustc will use the
>> > name of the .rs file as the crate name by default, *but* if the crate
>> > contains #![crate_name = "..."], then that will be used instead.
>> >
>> > Do you still want to enforce that the crate name always matches the
>> > file name? It seems unfortunate that it's currently impossible to create
>> > a Rust module where the .ko file and crate name is the same, unless no
>> > extra object files are linked into the module.
>>
>> I think previously a fixed crate name is load-bearing because we need rustc to
>> emit outputs to a fixed location.
>>
>> This shouldn't be needed after commit 295d8398c67e ("kbuild: specify output
>> names separately for each emission type from rustc"), so if nothing breaks with
>> `--crate-name` removed, then I think it makes sense to drop it to allow custom
>> rustflags to override them.
>
> Are you sure? I know this commit shows up in blame, but it just adds a
> backslash to the --crate-name argument.
>
> I do not believe that omitting --crate-name changes anything in cases
> where the crate name already matches the file name.

Before this change we rely on the crate name to match the file name, otherwise
the .d file and .o file will be placed at wrong location and Kbuild cannot find
the output files.

With this change we specify everything explicitly, so even if you pass
`--crate-name=foo`, the object file is still `rust_binder.o` so the build can
continue.

My point is that you *cannot* reasonably override crate names before this
change.

Best,
Gary