Skip to content
  1. Feb 21, 2019
  2. Nov 30, 2018
  3. Nov 29, 2018
    • Alessandro Di Federico's avatar
      Allow customization of defult toolchains to build · 7ae0dc3e
      Alessandro Di Federico authored
      This commit introduces the `DEFAULT_TOOLCHAINS` variable which contains
      a list of toolchains (e.g., `arm mips`) to build by default. The default
      value `all` builds all the available toolchains.
      
      This commit also removes the `|` for order-only dependencies, which was
      introduced due to a misunderstanding of how it works.
      7ae0dc3e
    • Alessandro Di Federico's avatar
      Import `llvmcpy` · 7c27e67b
      Alessandro Di Federico authored
      This commit imports `llvmcpy`, our Python library for interacting with
      LLVM IR. To do so, the generation of the `environment` script has been
      extended to export `PYTHONPATH`, so that `orchestra` users can easily
      use our eggs.
      
      To implement Python support in `orchestra`, we now provide the source
      path to build and install stages too.
      7c27e67b
    • Andrea Gussoni's avatar
      Generate `environment` in a portable way · 68709e29
      Andrea Gussoni authored
      Removed the `prepend_path` function definition and "inlined" the path
      prepending making use of a portable shell parameter expansion mechanism.
      
      This change should make the environment script compatible with `zsh`,
      `dash`, `sh` and `bash`.
      68709e29
  4. Nov 19, 2018
  5. Nov 15, 2018
  6. Oct 30, 2018
  7. Oct 28, 2018
  8. Sep 21, 2018
  9. Sep 20, 2018
    • Pietro Fezzardi's avatar
      Patch boost to prevent GCC 8 warnings · b6f161da
      Pietro Fezzardi authored
      GCC 8 adds stricter tests for `-Wparentheses` warnings.  These warnings,
      that happen to be triggered by the boost version we employ, cause
      compilation failures when `revamb` is built with `-Werror` (like it's
      mostly common in development).
      
      I didn't want to remove or silence the warnings in `revamb`, since they
      are sometimes useful to spot real bugs, so I backported here a patch
      coming from upstream boost, which disables only this specific warning
      and only for the interesting points where the boost developers have
      already decided that it's not harmful to suppress these warnings.
      b6f161da
  10. Aug 08, 2018
  11. Jul 27, 2018
  12. Jul 10, 2018
  13. Jun 19, 2018
    • Alessandro Di Federico's avatar
      15116d90
    • Pietro Fezzardi's avatar
      Add support for s390x · 348592f3
      Pietro Fezzardi authored
      348592f3
    • Pietro Fezzardi's avatar
      Fix build for musl version >= 1.1.15 · d09d615a
      Pietro Fezzardi authored
      Since version 1.1.15 the musl buildsystem introduced a mechanism in the
      configure script for autodetecting cross-compilation and setting the
      CROSS_COMPILE environment variable accordingly if it was not set by the
      caller.
      
      This mechanism broke our build because:
      1) we do not set CROSS_COMPILE even if we're cross compiling, so the new
      musl configure sets CROSS_COMPILE automatically to the correct triple;
      2) before this commit we didn't have in the gcc install directory and
      the binutils install directory in PATH when compiling musl, so the build
      system was not able to detect the proper build tools for cross
      compilation.
      
      Now we source the environment before building musl, so that we're sure
      that the build tools with the proper cross-compilation triple are found
      in the PATH.
      d09d615a
    • Alessandro Di Federico's avatar
      Merge branch 'feature/ci' · d26d1ded
      Alessandro Di Federico authored
      d26d1ded
    • Alessandro Di Federico's avatar
      Try to fetch source archives multiple times · 843eee13
      Alessandro Di Federico authored
      We used to have the possibility to try to clone multiple times source
      repositories, in case of network problems. However, only `git clone`
      commands were retried, source tarballs fetched with `curl` were not.
      
      This commit fixes this.
      843eee13
  14. Jun 13, 2018
    • Alessandro Di Federico's avatar
      Fix GCC and libc dependencies · d6df6adb
      Alessandro Di Federico authored
      This commit tries (again) to fix dependencies issues that led to a
      non-stable loop of builds when giving multiple times the same
      command. The reason for this was that, for instance, `gcc-stage2`
      installed `gcc`, which should be fine according to the latest attempt to
      fix the problem, except for the fact that this means touching the file
      `installed-targets/toolchain/*/gcc`, making it look newer and therefore
      triggering rebuilds.
      
      The solution is to introduce more explicitly the fact that a certain
      build "provides" another build. For instance, `gcc-stage2` "provides"
      `gcc-stage1` and `libc-default` "provides" `libc-headers`. A build that
      provides another build will touch the corresponding install file, unless
      it already exists. If it already exists, the file is left untouched,
      preserving the dependencies graph in the right form.
      
      In addition, dependencies are now separated between "configure-time" and
      "install-time". Install-time are always required, while configure-time
      dependencies are required only if we're building from source.
      
      * The concept of providing another build is represented by the
        `_PROVIDES` build variable.
      * The distinction between configure-time and install-time dependencies
        is expressed by differentiating the `_CONFIGURE_DEPS` and
        `_INSTALL_DEPS` build variables.
      * For improved readibility, this commit now splits `$(calls)` onto
        multiple lines. However, when this is done, the call has to be wrapped
        in another function that strips from whitespace each argument.
      * In `toolchain.mk`, the order in which the libc and GCC components are
        generated has been changed, so that we can correctly depend on `gcc`
        being installed before building the libc and `gcc-stage2` can depend
        on libc being installed before building.
      d6df6adb
  15. Jun 12, 2018
    • Alessandro Di Federico's avatar
      Introduce automatic builds with GitLab CI · 87524148
      Alessandro Di Federico authored
      This commit does two things: introduces support for automatically
      building (and pushing to the binary-archives git-lfs repository) binary
      archives, and introduces support for installing component builds as
      binaries fetched by the above mentioned repository.
      
      * A `.gitlab-ci.yml` file has been created. It installs all the
        necessary dependencies to run revamb tests successfully within a clean
        Ubuntu 16.04 docker container.
      * This commit introduces the `BINARY_COMPONENTS` variable, which
        contains the list of components which should not be built from source,
        but should be installed from the provided binaries instead.
      * Infrastructure to commit and push automatically to
        binary-archives. The credentials have to be provided through
        environment variables.
      * Infrastructure to automatically extract and install from binary
        archives. The dependency system is changed to respect the directives
        of the `BINARY_COMPONENTS` variable.
      * A simple Python script to fetch files from git-lfs repositories has
        been imported. This avoids forcing users to install git-lfs, which is
        not generally packaged by major Linux distributions. Note that to push
        to binary-archives, a proper git-lfs installation is required.
      87524148
    • Alessandro Di Federico's avatar
      Fix coreutils build by root · 4a1b59f7
      Alessandro Di Federico authored
      4a1b59f7
  16. Jun 11, 2018