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=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
cortexa57-yoe-linux as its architecture triplet
qemuarm 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.