Hi.
On Tue, 20 Oct 2026 at 20:22, Miguel Ojeda
<[email protected]> wrote:
>
> On Mon, Oct 19, 2026 at 5:13 PM Giuliano Procida <[email protected]> wrote:
> >
> > This change defines `EXPORT_SYMBOL_RUST_GPL(sym)` using
> > `___EXPORT_SYMBOL` directly:
> >
> > asm(__stringify(___EXPORT_SYMBOL(sym, "GPL", "")))
> >
> > matching the `__ASSEMBLY__` path in `include/linux/export.h`.
>
> Hmm... It says it matches the `__ASSEMBLY__` path, but it matches the
> `#else` path, no?
The description was AI generated, but it is accurate. Both paths use the
triple-underscore three-argument macro alone.
...
#elif defined(__ASSEMBLY__)
#define __EXPORT_SYMBOL(sym, license, ns) \
___EXPORT_SYMBOL(sym, license, ns)
#else
...
> Cc'ing the `RUST` entry and modules too.
>
> In addition, I wonder if we should avoid hardcoding the particular
> form of that `asm(...` and instead expose it from the C header. That
> way we avoid repetition and getting it out-of-sync -- that was part of
> the original reasoning.
I wondered the same thing, but that would introduce yet another intermediate
macro.
> By the way, I am right that you noticed this via GCC builds?
No, Android kernels have been built with Clang for years.
We post-process DWARF information with STG for ABI purposes and noticed
this interesting side effect there.
> (Nit: please write the commit message in the imperative form:
> https://docs.kernel.org/process/submitting-patches.html#describe-your-changes)
I will do so in the next version.
> Thanks!
>
> Cheers,
> Miguel