Roddy Rappaport a0ceeff014 Added parallel build to PR workflow
Using a matrix and job separation we can make the architectures compile
parallel to eachother, hopefully reducing the time required for builds
and also simplifying the process of building a single architecture.

A problem that we encountered is that with Python the resulting packed
tars are very large. Each release is in the order of tens of megabytes.
Using artifacts in our pipeline can easily make us surpass the maximum
size limit for free GitHub accounts (500 MB).
Because of this, we use the regular non-parallel pipeline for release
build. Releasing the version from the same job the build was performed
in allows us to directly access the build files instead of using
artifacts.

Separated release and MR pipelines.
2024-12-21 13:50:39 +02:00
2024-12-21 13:26:37 +02:00
2024-12-21 13:26:37 +02:00
2024-12-21 13:26:37 +02:00

Repository of static gdb and gdbserver

The statically compiled gdb / gdbserver binaries are avaliable to download under github releases!

link: gdb-static github releases

For manual gdb/gdbserver compilation instructions, have a look at the compilation.md file

Compiling gdb using docker

This repository contains a dockerfile and build scripts to compile gdb and gdbserver statically for multiple architectures. Currently, the supported architectures are:

  • x86_64
  • arm
  • aarch64
  • powerpc (32bit) You can easily expand it to support more architectures by adding the appropriate cross compilers to the dockerfile, and other build scripts.

NOTE: You don't need to interact with the dockerfile directly, as the Makefile will take care of everything for you.

Building for a specific architecture

To build for a specific architecture, you can use the following command:

make build-<ARCH>

For example, to build for arm:

make build-arm

The resulting binaries will be placed under the build/artifacts/ directory. Each architecture will have its own directory under build/artifacts/. For example, the arm architecture will have the following directory structure:

build/
    artifacts/
        arm/
            ...

Building for all architectures

To build for all architectures, you can use the following command:

make build

Cleaning the build

To clean the build, you can use the following command:

make clean
Description
A statically compiled gdb/gdbserver-16.x repository
Readme 162 KiB
Languages
Shell 87.5%
Makefile 10.3%
Dockerfile 2.2%