bit more on TRAP handling (preparing priv instruction)
[soc.git] / .gitlab-ci.yml
1 image: debian:10
2
3 cache:
4 paths:
5 - ccache
6 - .cache/pip
7 - apt-cache
8
9 variables:
10 PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"
11 GIT_SUBMODULE_STRATEGY: recursive
12
13 build:
14 stage: build
15 before_script:
16 - mkdir -p apt-cache
17 - apt-get -o dir::cache::archives="$(pwd)/apt-cache" update
18 - >-
19 apt-get -o dir::cache::archives="$(pwd)/apt-cache" -y install
20 build-essential git python3-dev python3-pip
21 python3-setuptools python3-wheel pkg-config tcl-dev
22 libreadline-dev bison flex libffi-dev ccache python3-venv
23 binutils-powerpc64-linux-gnu binutils-powerpc64le-linux-gnu
24 autoconf gperf libgmp-dev libmpfr-dev
25 - export PATH="/usr/lib/ccache:$PATH"
26 - export CCACHE_BASEDIR="$PWD"
27 - export CCACHE_DIR="$PWD/ccache"
28 - export CCACHE_COMPILERCHECK=content
29 - ccache --zero-stats || true
30 - ccache --show-stats || true
31 after_script:
32 - export CCACHE_DIR="$PWD/ccache"
33 - ccache --show-stats
34 script:
35 - python3 -m venv .env
36 - . .env/bin/activate
37 - pip install nose
38
39 - git clone --depth 1 https://github.com/SRI-CSL/yices2.git yices2
40 - pushd yices2
41 - autoconf
42 - ./configure
43 - make -j$(nproc)
44 - make install
45 - popd
46
47 - git clone --depth 1 https://github.com/YosysHQ/yosys.git yosys
48 - pushd yosys
49 - make config-gcc
50 - make -j$(nproc)
51 - make install
52 - popd
53 - yosys -V
54
55 - git clone --depth 1 https://github.com/YosysHQ/SymbiYosys.git SymbiYosys
56 - pushd SymbiYosys
57 - make install
58 - popd
59
60 - git clone --depth 1 https://github.com/nmigen/nmigen.git nmigen
61 - pushd nmigen
62 - python setup.py develop
63 - popd
64
65 - git clone --depth 1 git://git.libre-riscv.org/nmutil.git nmutil
66 - pushd nmutil
67 - python setup.py develop
68 - popd
69
70 - git clone --depth 1 git://git.libre-riscv.org/ieee754fpu.git ieee754fpu
71 - pushd ieee754fpu
72 - python setup.py develop
73 - popd
74
75 - IEEE754FPU_PATH="$(pwd)"/ieee754fpu
76 - git clone --depth 1 --recursive https://github.com/billzorn/sfpy.git sfpy
77 - pushd sfpy
78 - pushd berkeley-softfloat-3
79 - git apply "$IEEE754FPU_PATH"/berkeley-softfloat.patch
80 - popd
81 - pushd SoftPosit
82 - git apply ../softposit_sfpy_build.patch
83 - git apply "$IEEE754FPU_PATH"/SoftPosit.patch
84 - popd
85 - pip install --upgrade -r requirements.txt
86 - make lib -j$(nproc)
87 - make cython -j$(nproc)
88 - make wheel -j$(nproc)
89 - pip install dist/sfpy*.whl
90 - popd
91
92 - python setup.py develop
93 - python src/soc/decoder/pseudo/pywriter.py
94 - nosetests -v --processes=-1 --process-timeout=120