I ran into this issue while debugging the recipe for Perfetto, I’m running into a problem where part of Perfetto is built without VFP register arguments
while part of it uses VFP register arguments
no matter how I attempt to specify wither -mfloat-abi=soft
or -mfloat-abi=hard
in a sweeping way in the recipe.
A typical error message is:
/home/.../yoe/build/tmp/work/cortexa15t2hf-neon-yoe-linux-musleabi/perfetto/1.0-r0/recipe-sysroot-native/usr/bin/arm-yoe-linux-musleabi/arm-yoe-linux-musleabi-ld.gold: error: obj/src/traced/probes/ftrace/format_parser/format_parser.format_parser.o uses VFP register arguments, output does not
One can find the fact that part of the set of input object files use VFP register arguments
while some others don’t by saving the last compilation step (where all .o files are linked to become tracebox
) into a shell script and flipping between using VFP register arguments
and not using it and entering the BitBake devshell and executing that shell script.
qemuarm64
does not encounter this issue, and that apparently is due to the because according to documentation from ARM, arm64 will always use hard FP, so there is no ambiguity, while qemuarm64
useing cortexa57-yoe-linux
as its architecture tripletqemuarm
has a large configuration space and for the Yoe distribution, it uses cortexa15t2hf-neon-yoe-linux
as its architecture triplet.
Found relevant emails in the mailing list, starting from this one. Will consult those emails while looking into the issues here
An answer must exist as Perfetto is known to work with Android phones and the first Android phone I had had a Qualcomm Krait whilch apprently is a cortexa15t2hf, if not very similar, so Perfetto must work. It’s just the way this recipe is configured.