pmdinfogen: fix cross compilation for ARM big endian
Cross compiling DPDK for BE mode on ARM results into errors
"PMDINFO portal/dpaa2_hw_dpio.o.pmd.c No drivers registered"
The original code assumes the sh_size to be 32 bit, while it can
be Elf32_Word or Elf64_Xword based on 32bit or 64 bit systems.
This patches replaces the sh_size conversion routines to use ADDR_SIZE
Fixes: 98b0fdb0ff
("pmdinfogen: add buildtools and pmdinfogen utility")
Cc: stable@dpdk.org
Signed-off-by: Jun Yang <jun.yang@nxp.com>
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
This commit is contained in:
parent
7b74a6e0b6
commit
74d6c4a72e
@ -158,7 +158,8 @@ static int parse_elf(struct elf_info *info, const char *filename)
|
||||
* There are more than 64k sections,
|
||||
* read count from .sh_size.
|
||||
*/
|
||||
info->num_sections = TO_NATIVE(endian, 32, sechdrs[0].sh_size);
|
||||
info->num_sections =
|
||||
TO_NATIVE(endian, ADDR_SIZE, sechdrs[0].sh_size);
|
||||
} else {
|
||||
info->num_sections = hdr->e_shnum;
|
||||
}
|
||||
@ -181,7 +182,7 @@ static int parse_elf(struct elf_info *info, const char *filename)
|
||||
sechdrs[i].sh_offset =
|
||||
TO_NATIVE(endian, ADDR_SIZE, sechdrs[i].sh_offset);
|
||||
sechdrs[i].sh_size =
|
||||
TO_NATIVE(endian, 32, sechdrs[i].sh_size);
|
||||
TO_NATIVE(endian, ADDR_SIZE, sechdrs[i].sh_size);
|
||||
sechdrs[i].sh_link =
|
||||
TO_NATIVE(endian, 32, sechdrs[i].sh_link);
|
||||
sechdrs[i].sh_info =
|
||||
|
Loading…
Reference in New Issue
Block a user