]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core.git/commitdiff
quota: use native rpcgen and a single-word RPCGEN_CPP
authorOtavio Salvador <otavio@ossystems.com.br>
Fri, 12 Jun 2026 02:48:29 +0000 (23:48 -0300)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Mon, 15 Jun 2026 16:28:11 +0000 (17:28 +0100)
The rpc PACKAGECONFIG regenerates rquota.{c,h} and rquota_clnt.c from
rquota.x with rpcgen at build time, as the tarball ships no
pre-generated copies. Two problems made this fail:

- rpcgen was picked up from the host via HOSTTOOLS rather than from the
  build, which is non-deterministic and breaks on hosts that have no
  rpcgen at all.

- rpcgen execs its C preprocessor as a single program name, but OE
  exports $CPP as a multi-word "gcc -E --sysroot=... <flags>" string,
  so rpcgen reports "cannot find C preprocessor" and aborts.

Depend on rpcsvc-proto-native so rpcgen comes from the build, and set
RPCGEN_CPP to the single-word cross cpp so the preprocessor can be
exec'd.

Tested with bitbake quota (configure/compile/install/package) on
qemuarm.

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-extended/quota/quota_4.11.bb

index b3860719611ef757278fe73cbd00b754c00beb2d..811056f1f75033836a6c8bcf724d3eb5a454e20d 100644 (file)
@@ -26,6 +26,10 @@ ASNEEDED = ""
 PACKAGECONFIG ??= "rpc bsd"
 PACKAGECONFIG:libc-musl = "rpc"
 
-PACKAGECONFIG[rpc] = "--enable-rpc,--disable-rpc,libtirpc"
+# rpcgen execs its preprocessor as a single program; OE's multi-word $CPP fails,
+# so point it at the cross cpp instead.
+export RPCGEN_CPP = "${TARGET_PREFIX}cpp"
+
+PACKAGECONFIG[rpc] = "--enable-rpc,--disable-rpc,libtirpc rpcsvc-proto-native"
 PACKAGECONFIG[bsd] = "--enable-bsd_behaviour=yes,--enable-bsd_behaviour=no,"
 PACKAGECONFIG[ldapmail] = "--enable-ldapmail,--disable-ldapmail,openldap"