Developing for s390x architecture contribute
Endianness
Linux on IBM Z runs on the s390x architecture. Unlike x86, the s390x architecture is big-endian. Many open source projects only test against little-endian systems, so there may be endian-related bugs lurking. For example, in the Ruby implementation of Protocol Buffers, we fixed a handful of big-endian bugs.
VM provisioning
There are several ways to develop for s390x. You can use:
-
Use the following commands to spin up an emulated s390x virtual machine with Docker:
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes docker run --rm -it s390x/ubuntu bash
Note that the QEMU virtual machine is usually slower than a LinuxONE machine.
Bazel
Bazel is needed by a number of Google projects, such as Protocol Buffers. When compiling from source, you might run into these fatal compiler warnings. There is a workaround to disable those warnings. In addition, IBM posted these instructions.
Omnibus build image
To build Omnibus GitLab for s390x, you can use this Dockerfile template. Generate the Dockerfile with:
./docker/scripts/generate-dockerfile docker/Dockerfile_debian_10_s390x.erb
Docs
Edit this page to fix an error or add an improvement in a merge request.
Create an issue to suggest an improvement to this page.
Product
Create an issue if there's something you don't like about this feature.
Propose functionality by submitting a feature request.
Feature availability and product trials
View pricing to see all GitLab tiers and features, or to upgrade.
Try GitLab for free with access to all features for 30 days.
Get help
If you didn't find what you were looking for, search the docs.
If you want help with something specific and could use community support, post on the GitLab forum.
For problems setting up or using this feature (depending on your GitLab subscription).
Request support