The problem was that our default gdb datadir and debugdir had
non-standard paths, due to some unknown configuration detection.
In order to fix it, we now pass the standard paths via the --with-gdb-datadir & --with-separate-debug-dir variables.
I also set --with-jit-reader-dir, --with-system-gdbinit and --with-system-gdbinit-dir path to be the standard path as well.
- Added the frozen_utils library to Python in order to expose the
modules and submodules that were frozen with Python.
- Using frozen_utils in order to find the modules that GDB usually
imports on init and importing them.
The problem was due to duplicate modules present both in the base frozen
modules and also in the extra modules list file.
This commit should allow us to import gdb and pygments again.
This caused failures in our ci-cd. Always downloading & extracting the
tars makes sure we will redownload them & extract if the previous
download / extraction was faulty.
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.
Using symlinks the submodules are added to appear just like any
downloaded unpacked tar.
Also added a Makefile clean rule to clean the submodules, which
includes Reseting the submodules to the origin branch state,
including ignored files.
This commits enables gdb's python support. In order to make it work, we
had to create a python fork with some patches to the buildsystem, and
also had to patch gdb as well.
This commit splits the readme file into 2 files - the readme which
contains instructions on how to download our latest release, and on how
to use our build scripts in order to quickly build gdb statically. The
second file is a compilation guide that contains explanations on how to
manually compile gdb statically.