Re: [nfs-utils PATCH] tools: rpcgen: use host instead of cross compiler

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux