[dpdk-dev] [PATCH 1/5] pmdinfogen: fix cross compilation for ARM BE

Neil Horman nhorman at tuxdriver.com
Wed Dec 13 13:19:59 CET 2017


On Wed, Dec 13, 2017 at 05:22:57PM +0530, Hemant Agrawal wrote:
> Hi Neil/Bruce,
> 
> On 12/12/2017 12:28 AM, Neil Horman wrote:
> > On Mon, Dec 11, 2017 at 12:40:32PM +0000, Bruce Richardson wrote:
> > > On Thu, Nov 02, 2017 at 03:38:51PM +0530, Hemant Agrawal wrote:
> > > > cross compiling DPDK for BE mode on ARM results into errors
> > > > 
> > > > "PMDINFO portal/dpaa2_hw_dpio.o.pmd.c No drivers registered"
> > > > 
> > > > Fixes: 98b0fdb0ffc6 ("pmdinfogen: add buildtools and pmdinfogen utility")
> > > > Cc: Neil Horman <nhorman at tuxdriver.com>
> > > > Cc: stable at dpdk.org
> > > > 
> > > > Signed-off-by: Jun Yang <jun.yang at nxp.com>
> > > > Signed-off-by: Hemant Agrawal <hemant.agrawal at nxp.com>
> > > > ---
> > > >  buildtools/pmdinfogen/pmdinfogen.c | 2 +-
> > > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > > 
> > > 
> > > Comment could be a bit more specific about what the problem is and how
> > > changing the hard-coded "32" fixes it.
> > > 
> > > Haven't tested the cross compilation part myself, but this causes no
> > > errors for 32-bit or 64-bit builds on my system. So, with some more
> > > detail on the specifics of the fix in the commit message:
> > > 
> > > Acked-by: Bruce Richardson <bruce.richardson at intel.com>
> > > 
> > 
> > I'm with Bruce.  I'd like to know exactly whats going on here.  I dont have an
> > ARM system handy, so could you please post the errors that you are seeing here?
> > Is ADDR_SIZE not defined on BE for ARM or some such?  That seems like it should
> > be fixed, rather than this change.
> > 
> > Neil
> > 
> 
> The original code hard codes the conversion for sh_size to 32, which is
> incorrect.
> 
> The sh_size can be "Elf32_Word    sh_size" for 32 bit and "Elf64_Xword
> sh_size" for 64 bit systems.
> 
> This causes the symtab_stop to have reduced size and thus find can fail.
> 	info->symtab_stop  = RTE_PTR_ADD(hdr, sechdrs[i].sh_offset +
> sechdrs[i].sh_size);
> 
> we fixed it by replacing the hardcoded 32 with ADDR_SIZE is better.
> 
Oh, my bad, you're correct, I thought it was 32 bits for both ABI's

Acked-by: Neil Horman <nhorman at tuxdriver.com>



More information about the dev mailing list