Thread (37 messages) read the whole thread 37 messages, 4 authors, 2021-03-15

Re: [dpdk-dev] [RFC PATCH v1] build: kni gcc cross-compilation support

From: Bruce Richardson <hidden>
Date: 2021-01-29 15:39:43

On Fri, Jan 29, 2021 at 03:17:02PM +0000, Juraj Linkeš wrote:
quoted
-----Original Message-----
From: Bruce Richardson <redacted>
Sent: Friday, January 29, 2021 4:01 PM
To: Juraj Linkeš <redacted>
Cc: thomas@monjalon.net; Ruifeng.Wang@arm.com; jerinjacobk@gmail.com;
hemant.agrawal@nxp.com; ferruh.yigit@intel.com; aboyer@pensando.io;
dev@dpdk.org
Subject: Re: [RFC PATCH v1] build: kni gcc cross-compilation support

On Fri, Jan 29, 2021 at 02:47:57PM +0000, Juraj Linkeš wrote:
quoted
quoted
-----Original Message-----
From: Bruce Richardson <redacted>
Sent: Friday, January 29, 2021 3:42 PM
To: Juraj Linkeš <redacted>
Cc: thomas@monjalon.net; Ruifeng.Wang@arm.com;
jerinjacobk@gmail.com; hemant.agrawal@nxp.com;
ferruh.yigit@intel.com; aboyer@pensando.io; dev@dpdk.org
Subject: Re: [RFC PATCH v1] build: kni gcc cross-compilation support
<snip>
quoted
quoted
quoted
quoted
Can we find some way of getting it working for both cases.
For native builds we want:

* build kernel-dir = /lib/modules/<ver>/build
* install dir = /lib/modules/<ver>/extra/dpdk

What are the expected equivalent paths for cross building?
The ubuntu1804 packages are installing aarch64 cross files to
/usr/aarch64-
linux-gnu, so we could install it to /usr/aarch64-linux-
gnu/lib/modules/<ver>/extra/dpdk, or
/usr/<cross_triple>/lib/modules/<ver>/extra/dpdk in general. I think
we can get <ver> from 'make kernelversion', so that would work,
although I'm not sure this is the right place.
quoted
So what do you specify as the "kernel_dir" for the cross compile?
The place where I cloned (and cross-compiled) linux sources: $HOME/linux.
So I think the key problem is that for cross-compilation you need two completely
independent paths, while for native builds the two can be linked. Is that correct?
Assuming that we want to install cross modules, then yes, although it's incomplete. There's also the scenario when a user would use different kernel_dir than the default for native builds. I don't know why anyone would do that, but it is a theoretical possibility :-)
In the cross-compile install case, is the prefix /usr/aarch64-linux-gnu/
coming from a DESTDIR environment variable? If it is, then we could just
use the kernel_dir option for the build path, and always install to
/lib/modules/<ver>/... allowing any cross-compiler relocation to take care
of the rest. 
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help