Skip to content
Snippets Groups Projects
  1. Nov 26, 2019
  2. Sep 03, 2019
  3. Aug 29, 2019
  4. Jun 25, 2019
  5. Feb 18, 2019
  6. Jan 24, 2019
  7. Nov 27, 2018
  8. 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