meta-flutter icon indicating copy to clipboard operation
meta-flutter copied to clipboard

arm64 issue when compiling on M1

Open bvoq opened this issue 1 year ago • 4 comments

Hi, I've created a Dockerfile to reproduce this issue and you can find it here: https://github.com/bvoq/FlutterMetaDockerfile/tree/main/fluttergcc11wayland You only need Docker installed and you can run build.sh and the rest should be taken care of.

The code runs successfully on an older Mac with x86_64 architecture but not on arm64 Macs. The reason is that gcc-multilib is not supported for arm64 architecture. Installing just g++-11 and gcc-11 separately leads to the following issue:

My build platform is aarch64-linux, since I'm using M1 Mac with Docker. Failing build configuration:

Build Configuration:
BB_VERSION           = "2.0.0"
BUILD_SYS            = "aarch64-linux"
NATIVELSBSTRING      = "ubuntu-22.04"
TARGET_SYS           = "aarch64-poky-linux"
MACHINE              = "qemuarm64"
DISTRO               = "poky"
DISTRO_VERSION       = "4.0.4"
TUNE_FEATURES        = "aarch64 armv8a crc cortexa57"
TARGET_FPU           = ""
meta                 
meta-poky            
meta-yocto-bsp       = "<unknown>:<unknown>"
meta-clang           = "kirkstone:c728c3f9168c8a4ed05163a51dd48ca1ad8ac21d"
meta-flutter         = "main:3c6ba93ad2de2ae1d9c71a9b34c55fc93d8ef024"

bvoq avatar Nov 03 '22 13:11 bvoq

Thanks for the issue, but I have never tried to build flutter/engine on aarch64 machines. I'm not sure flutter/engine builds are supported on aarch64 arch.

https://github.com/sony/flutter-embedded-linux/wiki/Building-Flutter-Engine-from-source shows how to build on x64 CPUs basically.

HidenoriMatsubayashi avatar Nov 04 '22 14:11 HidenoriMatsubayashi

Ok I have more info regarding this. The main issue is that gcc-multilib is not supported by arm64 and it is not sufficient to install just gcc-11 and g++11. image

You can simulate x86_64 architecture on Docker on M1 MacBooks but you will into the known inotify issue, described here: https://docs.docker.com/desktop/mac/apple-silicon/

Maybe the code would have to be refactored with clang support to support arm? Anyways, I'm happy with my working version on x86_64, thanks!

bvoq avatar Nov 06 '22 09:11 bvoq

Maybe the code would have to be refactored with clang support to support arm?

What do you mean? meta-flutter doesn't require GCC, it just uses only clang.

HidenoriMatsubayashi avatar Nov 06 '22 13:11 HidenoriMatsubayashi

What do you mean? meta-flutter doesn't require GCC, it just uses only clang.

hmm maybe yocto then? because gcc-multilib is a requirement for yocto. It might however be another issue related to arm64.

bvoq avatar Nov 06 '22 13:11 bvoq