cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Contributor
Contributor
770 Views
Registered: ‎03-03-2017

Architecture did not match (ARM, expected AArch64) on ZynqMP

I'm running Ubuntu 16.04.2 in a Zynq Ultrascale+ EG for an application development. If I run lscpu I obtain:

Architecture:          aarch64
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    1
Core(s) per socket:    4
Socket(s):             1
CPU max MHz:           1199.9990
CPU min MHz:           299.9990

I've implemented an application in C that is compiled with gcc. I was expecting that this app was for 64 bit, but when I run "file MyApp" I obtain:

MyApp: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, 
for GNU/Linux 3.2.0, BuildID[sha1]=2a83542bc6e3cd46b7c87b7f365c4f1081f7fcc9, not stripped

Then I try to add the binary and other files as a Yocto layer (called cpfiles), since it was the method I successfully used in a Zynq. The files are copied in the Apache directory since the app is some kind of server. However, I'm obtaining an error when compiling the image:

ERROR: cpfiles-1.0-r0 do_package_qa: QA Issue: Architecture did not match (ARM, expected AArch64) on 
/work/aarch64-xilinx-linux/cpfiles/1.0-r0/packages-split/cpfiles-dbg/usr/share/apache2/htdocs/.debug/MyApp

The same error is obtained for the library libwebsockets. I'm not sure if this error is caused due to a wrong compilation method or because I'm using this library and then the compiled app is for 32-b instead of 64. Any clue on how to solve this?

 

0 Kudos
1 Reply
Highlighted
765 Views
Registered: ‎07-23-2019

 

Check what compiler options use your gcc command

0 Kudos