Skip to content
Snippets Groups Projects
  1. Oct 31, 2018
    • Simona Vetter's avatar
      gitlab-ci: arm64 cross compiling · f882a542
      Simona Vetter authored
      First I tried to build in a full sysroot, but I didn't figure out why
      ld never found the libraries (this was on fedora, which might have
      been part of the problem - if you just need a toolchain for kernel
      corss-building fedora is perfectly fine).
      
      Then I tried using debian's multiarch stuff, which worked a lot
      better, except there's some minor gotchas:
      - some libraries conflict and can't be multi-arch installed
      - some libraries are buggy and cause conflicts when installing
      - pkgconfig and ld get confused with some other libraries and pick the
        first one they find (i.e. the x86_64 one, not the arm64 one).
      That means we need a new docker image with just the cross libaries
      installed as -dev packages, and none of the native ones.
      
      Next up I tried to run the tests. Meson has really nice support for an
      exe wrapper, and qemu happily runs arm64 on x86_64. With that I
      managed to run some tests successfully (it's not even that slow!). But
      most are run through a script, and the script doesn't know about the
      exe wrapper and hence fails miserably. I discussed this a bit with
      Dylan and he filed an upstream meson issue:
      
      https://github.com/mesonbuild/meson/issues/4427#issuecomment-433553689
      
      
      
      Another option would be to use binfmt-misc handling (which works
      neatly locally), but on the runners we have I can't control that.
      Maybe I can beg Daniel Stone ...
      
      For not let's just mark this stage as optional and that failures are
      allowed.
      
      v2: Use the new gitlab 1.4 feature to rebuild docker images when
      necessary.
      
      Cc: Sean Paul <sean@poorly.run>
      Cc: Eric Anholt <eric@anholt.net>
      Cc: Dylan Baker <dylan@pnwbakers.com>
      Cc: Daniel Stone <daniel@fooishbar.org>
      Reviewed-by: Eric Anholt <eric@anholt.net> (v1)
      Reviewed-by: Petri Latvala <petri.latvala@intel.com> (v1)
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      f882a542
Loading