All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Tyagi, Yogesh" <yogesh.tyagi@intel.com>
To: "openembedded-core@lists.openembedded.org"
	<openembedded-core@lists.openembedded.org>,
	"bruce.ashfield@gmail.com" <bruce.ashfield@gmail.com>
Cc: "raj.khem@gmail.com" <raj.khem@gmail.com>
Subject: Re: [OE-core] [PATCH] bindgen-cli: set CLANG_PATH in native wrapper to native clang
Date: Sat, 11 Jul 2026 15:44:24 +0000	[thread overview]
Message-ID: <53769c211d718b4b4591c3ab2e310ac67da921fe.camel@intel.com> (raw)
In-Reply-To: <6a4e457c.dfaa6ae2.334193.82f9@mx.google.com>

On Wed, 2026-07-08 at 05:41 -0700, Bruce Ashfield wrote:
> On Tue, Jul 1, 2026, Yogesh Tyagi wrote:
> > Set CLANG_PATH to the native clang in the bindgen wrapper so clang-
> > sys
> > uses the runnable host binary first, short-circuiting the llvm-
> > config
> > lookup. The native wrapper already exports LIBCLANG_PATH the same
> > way.
> 
> The reasoning is sound, and beyond the mesa rusticl case this also
> helps
> the rust-in-kernel build: kernel-yocto-rust.bbclass pulls in both
> clang-native and bindgen-cli-native, so native bindgen can hit the
> same
> target-clang-via-llvm-config lookup. Pinning CLANG_PATH to the native
> clang that matches the native libclang is the consistent thing to do
> there too, so:
> 
> Reviewed-by: Bruce Ashfield <bruce.ashfield@gmail.com>
> 
> One thing while you're here: the recipe is BBCLASSEXTEND = "native
> nativesdk", but the wrapper fix is do_install:append:class-native()
> only.
> Unless I'm misreading it, that leaves the nativesdk bindgen wrapper
> with
> just LIBCLANG_PATH and no CLANG_PATH, so an SDK that runs bindgen
> (e.g.
> rust kernel-module development in the SDK, which is being wired up
> separately) would still hit the identical "could not run executable
> .../clang-NN" failure. If that's right, could you extend the
> CLANG_PATH
> export to the nativesdk wrapper as well? A shared helper (or a
> class-native/class-nativesdk pair pointing at the respective
> STAGING_BINDIR) would cover both. If nativesdk is already handled
> some
> other way, ignore me.


Thanks Bruce, good catch — you're right that the SDK case was
uncovered.

One clarification: in v1 the recipe only had do_install:append:class-
native(), so the nativesdk bindgen had no wrapper at all — not even
LIBCLANG_PATH. Same failure mode, just with nothing set rather than
only CLANG_PATH missing.

v2 adds a class-nativesdk wrapper. I went with an explicit class-
native/class-nativesdk pair rather than a shared helper, because the
staging dirs aren't symmetric between the two classes and a shared
"point at the respective STAGING_BINDIR" helper actually breaks:

native uses STAGING_*_NATIVE, which sits entirely under base_prefix, so
create_wrapper's relocation rewrites it cleanly.
nativesdk's STAGING_LIBDIR/STAGING_BINDIR are STAGING_DIR_HOST (recipe-
sysroot, i.e. TMPDIR) + the SDK path. create_wrapper only relocates the
base_prefix substring, so the recipe-sysroot prefix stays baked into
the shipped wrapper. I hit exactly that: do_package_qa failed with
contains reference to TMPDIR [buildpaths].
So the nativesdk wrapper uses the plain on-target ${libdir}/${bindir}
instead, which relocate fully. Verified by building both variants:
bindgen-cli-native and nativesdk-bindgen-cli both build and pass
package QA, and both generated wrappers come out relocatable as
CLANG_PATH=$realdir/../../usr/bin/clang.

Since the patch grew a new task, I dropped your Reviewed-by from v2 —
happy to carry it if you're good with the nativesdk addition.

> 
> Bruce

  parent reply	other threads:[~2026-07-11 15:44 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-30 19:00 [PATCH] bindgen-cli: set CLANG_PATH in native wrapper to native clang yogesh.tyagi
2026-07-08 12:41 ` [OE-core] " Bruce Ashfield
2026-07-09  6:28   ` Böszörményi Zoltán
2026-07-11 15:44   ` Tyagi, Yogesh [this message]
2026-07-12  5:43 ` [PATCH v2] bindgen-cli: set CLANG_PATH in native and nativesdk wrappers to matching clang yogesh.tyagi
     [not found] <18BDF101D1878987.114350@lists.openembedded.org>
2026-07-08  6:23 ` [OE-core] [PATCH] bindgen-cli: set CLANG_PATH in native wrapper to native clang Tyagi, Yogesh

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=53769c211d718b4b4591c3ab2e310ac67da921fe.camel@intel.com \
    --to=yogesh.tyagi@intel.com \
    --cc=bruce.ashfield@gmail.com \
    --cc=openembedded-core@lists.openembedded.org \
    --cc=raj.khem@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.