Hello Bastian,
On 10/21/20 12:28 PM, Bastian Krause wrote:
When cross compiling rpcgen is compiled with the cross compiler although
it is executed during compile time only. This leads to errors like:
../../tools/rpcgen/rpcgen -l -o mount_clnt.c mount.x
../../tools/rpcgen/rpcgen -c -i 0 -o mount_xdr.c mount.x
../../tools/rpcgen/rpcgen -h -o mount.h mount.x
/lib/ld-linux-armhf.so.3: No such file or directory
/lib/ld-linux-armhf.so.3: No such file or directory
/lib/ld-linux-armhf.so.3: No such file or directory
Can you please provide how you reach this situation?
Since e61775d1 ("rpcgen: bump to latest version") rpcgen is compiled
with the target compiler, prior to that it was correctly compiled with
the host compiler. Fix that by using $(CC_FOR_BUILD) as CC explicitly as
it was before.
buildroot works around this by compiling a host version first, then a
target version --with-rpcgen=$(HOST_DIR)/bin/rpcgen [1]. That does not
look like it is intended by nfs-utils.
I find it correct since rpcgen is also a utility to be installed to
target, so it should not be explictly built only for target and
[1] https://git.busybox.net/buildroot/tree/package/nfs-utils/nfs-utils.mk#n25
Signed-off-by: Bastian Krause <bst@xxxxxxxxxxxxxx>
---
tools/rpcgen/Makefile.am | 2 ++
1 file changed, 2 insertions(+)
diff --git a/tools/rpcgen/Makefile.am b/tools/rpcgen/Makefile.am
index 457cd507..f122cd9d 100644
--- a/tools/rpcgen/Makefile.am
+++ b/tools/rpcgen/Makefile.am
@@ -1,5 +1,7 @@
CLEANFILES = *~
+CC=$(CC_FOR_BUILD)
+
this is what you're forcing to. To cross compile it we need both rpcgen
for host and target, this way it will be built for target only.
Another option I can suggest is to assign CC_FOR_BUILD to CC on caller
Makefile only during target building and not during host building and
this should be automatically deduced by Makefile itself and also
Makefile then, when calls rpcgen should know which rpcgen to use(the
host one). That would be one solution IMHO.
What do you think about it?
Best regards
--
Giulio Benetti
Benetti Engineering sas