@@ -39,143 +39,164 @@ jobs:
3939 runs-on : ${{ matrix.os }}
4040 # Set environment variables from matrix parameters
4141 env :
42+ BASE : " 7.0"
4243 CMP : ${{ matrix.cmp }}
4344 BCFG : ${{ matrix.configuration }}
44- BASE : ${{ matrix.base }}
45- WINE : ${{ matrix.wine }}
46- RTEMS : ${{ matrix.rtems }}
47- RTEMS_TARGET : ${{ matrix.rtems_target }}
45+ CI_CROSS_TARGETS : ${{ matrix.cross }}
4846 EXTRA : ${{ matrix.extra }}
4947 TEST : ${{ matrix.test }}
5048 strategy :
5149 fail-fast : false
5250 matrix :
5351 # Job names also name artifacts, character limitations apply
5452 include :
55- - os : ubuntu-latest
53+ - os : ubuntu-22.04
54+ cmp : gcc-12
55+ name : " Ub-22 gcc-12 c++20 Werror"
56+ # Turn all warnings into errors,
57+ # except for those we could not fix (yet).
58+ # Remove respective -Wno-error=... flag once it is fixed.
59+ extra : " CMD_CXXFLAGS=-std=c++20
60+ CMD_CPPFLAGS='-fdiagnostics-color
61+ -fstack-protector-strong
62+ -Wformat
63+ -Werror
64+ -Werror=format-security
65+ -Wno-error=deprecated-declarations
66+ -Wno-error=stringop-truncation
67+ -Wno-error=restrict
68+ -Wno-error=sizeof-pointer-memaccess
69+ -Wno-error=nonnull
70+ -Wno-error=dangling-pointer
71+ -Wno-error=format-overflow
72+ -Wno-error=stringop-overread
73+ -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3'
74+ CMD_LDFLAGS=-Wl,-z,relro"
75+
76+ - os : ubuntu-20.04
5677 cmp : gcc
5778 configuration : default
58- base : " 7.0"
59- wine : " 64"
60- name : " Ub-20 gcc-9 + MinGW"
79+ cross : " windows-x64-mingw"
80+ name : " Ub-20 gcc + MinGW"
6181
62- - os : ubuntu-latest
82+ - os : ubuntu-20.04
6383 cmp : gcc
6484 configuration : static
65- base : " 7.0"
66- wine : " 64"
67- name : " Ub-20 gcc-9 + MinGW, static"
85+ cross : " windows-x64-mingw"
86+ name : " Ub-20 gcc + MinGW, static"
6887
69- - os : ubuntu-latest
88+ - os : ubuntu-20.04
7089 cmp : gcc
7190 configuration : static
72- base : " 7.0"
7391 extra : " CMD_CXXFLAGS=-std=c++11"
74- name : " Ub-20 gcc-9 C++11, static"
92+ name : " Ub-20 gcc C++11, static"
7593
76- - os : ubuntu-latest
94+ - os : ubuntu-20.04
95+ cmp : gcc
96+ configuration : static
97+ extra : " CMD_CFLAGS=-funsigned-char CMD_CXXFLAGS=-funsigned-char"
98+ name : " Ub-20 gcc unsigned char"
99+
100+ - os : ubuntu-20.04
77101 cmp : clang
78102 configuration : default
79- base : " 7.0"
80- name : " Ub-20 clang-10"
103+ name : " Ub-20 clang"
81104
82- - os : ubuntu-latest
105+ - os : ubuntu-20.04
83106 cmp : clang
84107 configuration : default
85- base : " 7.0"
86108 extra : " CMD_CXXFLAGS=-std=c++11"
87- name : " Ub-20 clang-10 C++11"
109+ name : " Ub-20 clang C++11"
88110
89111 - os : ubuntu-20.04
90112 cmp : gcc
91113 configuration : default
92- base : " 7.0"
93- rtems : " 5"
94- rtems_target : RTEMS-pc686-qemu
95- name : " Ub-20 gcc-9 + RT-5.1 pc686"
114+ cross : " RTEMS-pc686-qemu@5"
115+ name : " Ub-20 gcc + RT-5.1 pc686"
96116
97117 - os : ubuntu-20.04
98118 cmp : gcc
99119 configuration : default
100- base : " 7.0"
101- rtems : " 5"
102- rtems_target : RTEMS-beatnik
120+ cross : " RTEMS-beatnik@5"
103121 test : NO
104- name : " Ub-20 gcc-9 + RT-5.1 beatnik"
122+ name : " Ub-20 gcc + RT-5.1 beatnik"
105123
106124 - os : ubuntu-20.04
107125 cmp : gcc
108126 configuration : default
109- base : " 7.0"
110- rtems : " 5"
111- rtems_target : RTEMS-xilinx_zynq_a9_qemu
127+ cross : " RTEMS-xilinx_zynq_a9_qemu@5"
112128 test : NO
113- name : " Ub-20 gcc-9 + RT-5.1 xilinx_zynq_a9_qemu"
129+ name : " Ub-20 gcc + RT-5.1 xilinx_zynq_a9_qemu"
114130
115131 - os : ubuntu-20.04
116132 cmp : gcc
117133 configuration : default
118- base : " 7.0"
119- rtems : " 5"
120- rtems_target : RTEMS-uC5282
134+ cross : " RTEMS-uC5282@5"
121135 test : NO
122- name : " Ub-20 gcc-9 + RT-5.1 uC5282"
136+ name : " Ub-20 gcc + RT-5.1 uC5282"
123137
124138 - os : ubuntu-20.04
125139 cmp : gcc
126140 configuration : default
127- base : " 7.0"
128- rtems : " 4.10"
129- name : " Ub-20 gcc-9 + RT-4.10"
130- rtems_target : RTEMS-pc386-qemu
141+ name : " Ub-20 gcc + RT-4.10"
142+ cross : " RTEMS-pc386-qemu@4.10"
131143 test : NO
132144
133145 - os : ubuntu-20.04
134146 cmp : gcc
135147 configuration : default
136- base : " 7.0"
137- rtems : " 4.9"
138- name : " Ub-20 gcc-9 + RT-4.9"
139- rtems_target : RTEMS-pc386-qemu
140-
141- - os : ubuntu-20.04
142- cmp : gcc
143- configuration : default
144- base : " 3.15"
145- name : " Ub-20 3.15"
148+ name : " Ub-20 gcc + RT-4.9"
149+ cross : " RTEMS-pc386-qemu@4.9"
146150
147151 - os : macos-latest
148152 cmp : clang
149153 configuration : default
150- base : " 7.0"
151- name : " MacOS clang-12"
154+ name : " MacOS clang"
152155
153156 - os : windows-2019
154157 cmp : vs2019
155- configuration : default
156- base : " 7.0"
158+ configuration : debug
157159 name : " Win2019 MSC-19"
160+ extra : " CMD_CXXFLAGS=-analysis"
158161
159162 - os : windows-2019
160163 cmp : vs2019
161- configuration : static
162- base : " 7.0"
164+ configuration : static-debug
163165 name : " Win2019 MSC-19, static"
166+ extra : " CMD_CXXFLAGS=-analysis"
164167
165168 - os : windows-2019
166169 cmp : vs2019
167170 configuration : debug
168- base : " 7.0"
169171 name : " Win2019 MSC-19, debug"
170172
171173 - os : windows-2019
172174 cmp : gcc
173175 configuration : default
174- base : " 7.0"
175176 name : " Win2019 mingw"
176177
178+ # Linux cross builds
179+
180+ - os : ubuntu-latest
181+ cmp : gcc
182+ configuration : default
183+ name : " Cross linux-aarch64"
184+ cross : linux-aarch64
185+
186+ - os : ubuntu-latest
187+ cmp : gcc
188+ configuration : default
189+ name : " Cross linux-arm gnueabi"
190+ cross : linux-arm@arm-linux-gnueabi
191+
192+ - os : ubuntu-latest
193+ cmp : gcc
194+ configuration : default
195+ name : " Cross linux-arm gnueabihf"
196+ cross : linux-arm@arm-linux-gnueabihf
197+
177198 steps :
178- - uses : actions/checkout@v3
199+ - uses : actions/checkout@v4
179200 with :
180201 submodules : true
181202 - name : Automatic core dumper analysis
@@ -209,45 +230,30 @@ jobs:
209230 image : ${{ matrix.image }}
210231 # Set environment variables from matrix parameters
211232 env :
233+ BASE : " 7.0"
212234 CMP : ${{ matrix.cmp }}
213235 BCFG : ${{ matrix.configuration }}
214- BASE : ${{ matrix.base }}
215236 EXTRA : ${{ matrix.extra }}
216237 TEST : ${{ matrix.test }}
217238 strategy :
218239 fail-fast : false
219240 matrix :
220241 # Job names also name artifacts, character limitations apply
221242 include :
222- - name : " CentOS-7 3.16"
223- image : centos:7
224- cmp : gcc
225- configuration : default
226- base : " 3.16"
227-
228- - name : " CentOS-7 3.15"
229- image : centos:7
230- cmp : gcc
231- configuration : default
232- base : " 3.15"
233-
234- - name : " CentOS-7"
235- image : centos:7
236- cmp : gcc
237- configuration : default
238- base : " 7.0"
243+ # - name: "CentOS-7"
244+ # image: centos:7
245+ # cmp: gcc
246+ # configuration: default
239247
240248 - name : " Fedora-33"
241249 image : fedora:33
242250 cmp : gcc
243251 configuration : default
244- base : " 7.0"
245252
246253 - name : " Fedora-latest"
247254 image : fedora:latest
248255 cmp : gcc
249256 configuration : default
250- base : " 7.0"
251257
252258 steps :
253259 - name : " Build newer Git"
@@ -276,11 +282,15 @@ jobs:
276282 # people would rather just break all existing scripts...
277283 [ -e /usr/bin/python ] || ln -sf python3 /usr/bin/python
278284 python --version
279- - uses : actions/checkout@v3
285+ - uses : actions/checkout@v4
280286 with :
281287 submodules : true
282288 - name : Automatic core dumper analysis
283289 uses : mdavidsaver/ci-core-dumper@master
290+ if : matrix.image!='centos:7'
291+ - name : Automatic core dumper analysis
292+ uses : mdavidsaver/ci-core-dumper@node16
293+ if : matrix.image=='centos:7'
284294 - name : Prepare and compile dependencies
285295 run : python .ci/cue.py prepare
286296 - name : Build main module
0 commit comments