Message ID | 20230109204520.539080-1-ojeda@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/6] docs: rust: add paragraph about finding a suitable `libclang` | expand |
On Mon, Jan 9, 2023 at 12:45 PM Miguel Ojeda <ojeda@kernel.org> wrote: > > Sometimes users need to tweak the finding process of `libclang` > for `bindgen` via the `clang-sys`-provided environment variables. > > Thus add a paragraph to the setting up guide, including a reference > to `clang-sys`'s relevant documentation. > > Link: https://lore.kernel.org/rust-for-linux/CAKwvOdm5JT4wbdQQYuW+RT07rCi6whGBM2iUAyg8A1CmLXG6Nw@mail.gmail.com/ > Signed-off-by: Miguel Ojeda <ojeda@kernel.org> This is super helpful for me, since I build clang from source and would like to use my libclang.so! Thanks for this documentation Miguel! Reviewed-by: Nick Desaulniers <ndesaulniers@google.com> > --- > Documentation/rust/quick-start.rst | 17 +++++++++++++++++ > 1 file changed, 17 insertions(+) > > diff --git a/Documentation/rust/quick-start.rst b/Documentation/rust/quick-start.rst > index 13b7744b1e27..cae21ea7de41 100644 > --- a/Documentation/rust/quick-start.rst > +++ b/Documentation/rust/quick-start.rst > @@ -100,6 +100,23 @@ Install it via (note that this will download and build the tool from source):: > > cargo install --locked --version $(scripts/min-tool-version.sh bindgen) bindgen > > +``bindgen`` needs to find a suitable ``libclang`` in order to work. If it is > +not found (or a different ``libclang`` than the one found should be used), > +the process can be tweaked using the environment variables understood by > +``clang-sys`` (the Rust bindings crate that ``bindgen`` uses to access > +``libclang``): > + > +* ``LLVM_CONFIG_PATH`` can be pointed to an ``llvm-config`` executable. > + > +* Or ``LIBCLANG_PATH`` can be pointed to a ``libclang`` shared library > + or to the directoy containing it. > + > +* Or ``CLANG_PATH`` can be pointed to a ``clang`` executable. > + > +For details, please see ``clang-sys``'s documentation at: > + > + https://github.com/KyleMayes/clang-sys#environment-variables > + > > Requirements: Developing > ------------------------ > -- > 2.39.0 >
On Mon, Jan 9, 2023 at 9:54 PM Nick Desaulniers <ndesaulniers@google.com> wrote: > > This is super helpful for me, since I build clang from source and > would like to use my libclang.so! Thanks for this documentation > Miguel! > Reviewed-by: Nick Desaulniers <ndesaulniers@google.com> Thanks for the quick review Nick! By the way, I didn't add your Reported-by here because apparently it is only intended for bug fixes and not features. Cheers, Miguel
On Mon, Jan 9, 2023 at 9:45 PM Miguel Ojeda <ojeda@kernel.org> wrote: > > +* Or ``LIBCLANG_PATH`` can be pointed to a ``libclang`` shared library > + or to the directoy containing it. I just noticed the typo here, sorry: directoy -> directory Masahiro: if you take them, please feel free to correct it. Cheers, Miguel
On Tue, Jan 10, 2023 at 6:06 AM Miguel Ojeda <miguel.ojeda.sandonis@gmail.com> wrote: > > On Mon, Jan 9, 2023 at 9:45 PM Miguel Ojeda <ojeda@kernel.org> wrote: > > > > +* Or ``LIBCLANG_PATH`` can be pointed to a ``libclang`` shared library > > + or to the directoy containing it. > > I just noticed the typo here, sorry: directoy -> directory > > Masahiro: if you take them, please feel free to correct it. Yes, I can take this, but the doc change is independent of the rest, and will not conflict with any Kbuild changes. So, you can apply this one to your tree. > > Cheers, > Miguel -- Best Regards Masahiro Yamada
On Thu, Jan 12, 2023 at 7:05 AM Masahiro Yamada <masahiroy@kernel.org> wrote: > > Yes, I can take this, but the doc change > is independent of the rest, and will not conflict with > any Kbuild changes. > > So, you can apply this one to your tree. The doc change is not fully independent: this patch is first because the next commit uses the fact that the documentation is written (to point the user to it), and the commit message mentions this. Not a big deal, but it would look better if all are in at once. Cheers, Miguel
On Sat, Jan 14, 2023 at 8:13 AM Miguel Ojeda <miguel.ojeda.sandonis@gmail.com> wrote: > > On Thu, Jan 12, 2023 at 7:05 AM Masahiro Yamada <masahiroy@kernel.org> wrote: > > > > Yes, I can take this, but the doc change > > is independent of the rest, and will not conflict with > > any Kbuild changes. > > > > So, you can apply this one to your tree. > > The doc change is not fully independent: this patch is first because > the next commit uses the fact that the documentation is written (to > point the user to it), and the commit message mentions this. > > Not a big deal, but it would look better if all are in at once. > > Cheers, > Miguel Now I think it is better to ask you to pick up my patch [1] and apply all of this patch set in your tree since you are adding bigger changes. [1]: https://patchwork.kernel.org/project/linux-kbuild/patch/20230109061436.3146442-1-masahiroy@kernel.org/
diff --git a/Documentation/rust/quick-start.rst b/Documentation/rust/quick-start.rst index 13b7744b1e27..cae21ea7de41 100644 --- a/Documentation/rust/quick-start.rst +++ b/Documentation/rust/quick-start.rst @@ -100,6 +100,23 @@ Install it via (note that this will download and build the tool from source):: cargo install --locked --version $(scripts/min-tool-version.sh bindgen) bindgen +``bindgen`` needs to find a suitable ``libclang`` in order to work. If it is +not found (or a different ``libclang`` than the one found should be used), +the process can be tweaked using the environment variables understood by +``clang-sys`` (the Rust bindings crate that ``bindgen`` uses to access +``libclang``): + +* ``LLVM_CONFIG_PATH`` can be pointed to an ``llvm-config`` executable. + +* Or ``LIBCLANG_PATH`` can be pointed to a ``libclang`` shared library + or to the directoy containing it. + +* Or ``CLANG_PATH`` can be pointed to a ``clang`` executable. + +For details, please see ``clang-sys``'s documentation at: + + https://github.com/KyleMayes/clang-sys#environment-variables + Requirements: Developing ------------------------
Sometimes users need to tweak the finding process of `libclang` for `bindgen` via the `clang-sys`-provided environment variables. Thus add a paragraph to the setting up guide, including a reference to `clang-sys`'s relevant documentation. Link: https://lore.kernel.org/rust-for-linux/CAKwvOdm5JT4wbdQQYuW+RT07rCi6whGBM2iUAyg8A1CmLXG6Nw@mail.gmail.com/ Signed-off-by: Miguel Ojeda <ojeda@kernel.org> --- Documentation/rust/quick-start.rst | 17 +++++++++++++++++ 1 file changed, 17 insertions(+)