Thread (37 messages) flat view 37 messages, 4 authors, 2021-03-15

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

From: Juraj Linkeš <hidden>
Date: 2021-02-01 07:48:52

-----Original Message-----
From: Bruce Richardson <redacted>
Sent: Friday, January 29, 2021 4:40 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 03:17:02PM +0000, Juraj Linkeš wrote:
quoted
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?
quoted
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.
It's not coming from anywhere. What I meant is that an ubuntu package such as 'libatomic1-arm64-cross' installs its headers/libs under /usr/aarch64-linux-gnu/.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help