fa326e4f3aebbbac5d9e276b555ff35255aa4847
[platform/upstream/gcc-contrib.git] / packaging / gcc-contrib.spec
1 #
2 # spec file for package gcc-contrib
3 #
4 # Copyright (c) 2017 Tizen
5 # Please submit bugfixes or comments via http://bugs.tizen.org/
6 #
7 # we use %%{?macro: ... } as it is more compact
8
9 %define quadmath_arch %ix86 x86_64 ia64
10 %define tsan_arch x86_64 aarch64
11 %define asan_arch x86_64 %ix86 ppc ppc64 %sparc %arm aarch64
12 %define hwasan_arch aarch64
13 %define itm_arch x86_64 %ix86 %arm ppc ppc64 ppc64le s390 s390x %sparc aarch64
14 %define atomic_arch x86_64 %ix86 %arm aarch64 ppc ppc64 ppc64le s390 s390x %sparc m68k
15 %define lsan_arch x86_64 %ix86 armv7l aarch64
16 %define ubsan_arch x86_64 %ix86 ppc ppc64 %arm aarch64
17 %define cilkrts_arch x86_64 %ix86
18
19 %ifarch armv7l
20 %define ARCH armv7l
21 %define ABI eabi
22 %endif
23 %ifarch %ix86
24 %define ARCH i586
25 %endif
26 %ifarch x86_64
27 %define ARCH x86_64
28 %endif
29 %ifarch aarch64
30 %define ARCH aarch64
31 %endif
32 %define host_arch %{ARCH}-tizen-linux-gnu%{?ABI}
33
34 %define target_cpu %{?cross}%{!?cross:%{ARCH}}
35 %define target_abi %{?cross:%{?armv7l:eabi}}%{!?cross:%{?ABI}}
36
37 %define target_arch %{target_cpu}-tizen-linux-gnu%{?target_abi}
38 %define libdir %{!?cross:%{_libdir}}%{?cross:%{_prefix}/lib%{?aarch64:64}}
39 %define libsubdir %{libdir}/gcc/%{target_arch}/%{version}
40
41 %ifarch armv7l
42 %define asan_force_options -fsanitize-recover=address -fsanitize=address -mthumb -Wa,-mimplicit-it=thumb -mthumb-fp -fno-omit-frame-pointer -Wp,-U_FORTIFY_SOURCE -Wl,--as-needed -ldl -lpthread
43 %define lsan_force_options -fsanitize=leak -mthumb -Wa,-mimplicit-it=thumb -mthumb-fp -fno-omit-frame-pointer -Wp,-U_FORTIFY_SOURCE -Wl,--as-needed -ldl -lpthread
44 %else
45 %define asan_force_options -fsanitize-recover=address -fsanitize=address -fno-omit-frame-pointer -Wp,-U_FORTIFY_SOURCE -Wl,--as-needed -ldl -lpthread
46 %define lsan_force_options -fsanitize=leak -fno-omit-frame-pointer -Wp,-U_FORTIFY_SOURCE -Wl,--as-needed -ldl -lpthread
47 %endif
48 %define ubsan_force_options -fsanitize=undefined,bounds-strict,float-divide-by-zero,float-cast-overflow
49 %define tsan_force_options -fsanitize=thread -fno-omit-frame-pointer -Wp,-U_FORTIFY_SOURCE -Wl,--as-needed -ldl -lpthread
50 %define gcov_force_options -fprofile-arcs -ftest-coverage
51 %define asan_runtime_options halt_on_error=false:start_deactivated=true:print_cmdline=true:quarantine_size_mb=1:detect_leaks=0:full_address_space=true:handle_segv=0:log_path=/tmp/asan.log:log_exe_name=1:fast_unwind_on_fatal=1:allocator_may_return_null=1:exitcode=0
52 %define ubsan_runtime_options print_cmdline=true:log_path=/tmp/ubsan.log
53 %define lsan_runtime_options print_cmdline=true:detect_leaks=1:log_path=/tmp/lsan.log:log_exe_name=1:fast_unwind_on_malloc=false:malloc_context_size=5:suppressions=/lsan.supp:print_suppressions=false
54 %define tsan_runtime_options print_cmdline=true:log_path=/tmp/tsan.log:detect_deadlocks=1:second_deadlock_stack=1
55 %define hwasan_force_options -fsanitize=hwaddress -fsanitize-recover=hwaddress -Wp,-U_FORTIFY_SOURCE -Wl,--as-needed -ldl -lpthread
56 %define hwasan_runtime_options halt_on_error=false:print_cmdline=true:handle_segv=0:log_path=/tmp/hwasan.log:log_exe_name=1:exitcode=0
57
58 Name:         gcc-contrib%{?cross:-%{cross}}
59 # With generated files in src we could drop the following
60 ## until here, but at least renaming and patching info files breaks this
61 %{?cross:BuildRequires: binutils-%{cross}}
62 # here we use %%if because OBS spec parser cannot expand
63 # %%{?macro:...} correctly
64 Version:       9.2.0
65 Release:       0
66 Source15: gcc-force-options
67 Source16: gcc-unforce-options
68 Source17: asan_symbolize.py
69 Source18: gcc-contrib.manifest
70 Source19: macros.ubsan
71 Source20: extract-ubsan-logs
72 Source21: lsan.supp
73 Source22: macros.asan
74 Source23: cc1
75 Source24: macros.gcc_warning
76 Source25: extract-gcc-warning-logs
77 Source26: macros.gcov
78 Source27: extract-gcov-info
79 Source28: asansictl
80 Source29: hwasan_stub.c
81 Group:         Development/Building
82 Summary:       GCC related scripts
83 License:       MIT
84 %{?cross:ExcludeArch: %{cross}}
85 %description
86 GCC related scripts
87
88 %package -n asan-force-options
89 Summary:    Scripts to enable automatic package sanitization
90 Group:      System Environment
91 Requires:   gcc rpm
92 Requires:   libasan
93
94 %description -n asan-force-options
95 Scripts for ASan instrumentation
96
97 %post -n asan-force-options
98 # Change mode to allow all users to run gcc-force/unforce-options
99 chmod a+w /usr/bin
100 chmod a+w %{libsubdir}
101 /usr/bin/gcc-force-options %asan_force_options -fno-common
102 # Add ASan-related macros
103 cat >> /usr/lib/rpm/tizen_macros << EOF
104
105 %%asan_force_options %{asan_force_options}
106 %%gcc_unforce_options %%{lua: rpm.define("asan_unforced 1"); print("/usr/bin/gcc-unforce-options")}
107 %%gcc_force_options /usr/bin/gcc-force-options
108 %%gcc_force_default_options %%gcc_force_options %%asan_force_options -fno-common
109 %%restore_fcommon \\
110   %%gcc_unforce_options \\
111   %%gcc_force_options %%asan_force_options -fcommon
112 EOF
113
114 # Add ASan's blacklist macro to tizen_macros
115 cat %{_rpmconfigdir}/macros.asan >> %{_rpmconfigdir}/tizen_macros
116
117 # ASan needs a whole shadow address space
118 # Using ulimit can only set the value for current user so we need to set /etc/security/limits.conf directly.
119 [ -e /etc/security/limits.conf ] && \
120     sed '/End of file/i\abuild\tsoft\tas\t-1\nabuild\thard\tas\t-1' -i /etc/security/limits.conf
121
122 %preun -n asan-force-options
123 # Restore read-only mode
124 chmod a-w /usr/bin
125 chmod a-w %{libsubdir}
126 /usr/bin/gcc-unforce-options
127 # Restore limit configurations set for ASan
128 [ -e /etc/security/limits.conf ] && \
129     sed '/abuild/d' -i /etc/security/limits.conf
130
131 # Remove additional macros from config
132 sed -e '\|^\# /etc/rpm/macros.asan$|,\|^\# /etc/rpm/macros.asan ends here|d' -i /usr/lib/rpm/tizen_macros
133
134 %package -n libhwasan-stub
135 Summary:    HWASan stub library to enable cross build
136 Group:      System Environment
137 Requires:   rpm
138
139 %description -n libhwasan-stub
140 HWASan stub library for cross build
141
142 %package -n hwasan-force-options
143 Summary:    Scripts to enable automatic package sanitization
144 Group:      System Environment
145 Requires:   gcc rpm
146 Requires:   libhwasan
147
148 %description -n hwasan-force-options
149 Scripts for HWASan instrumentation
150
151 %post -n hwasan-force-options
152 # Change mode to allow all users to run gcc-force/unforce-options
153 chmod a+w /usr/bin
154 chmod a+w %{libsubdir}
155 /usr/bin/gcc-force-options %hwasan_force_options -fno-common
156 # Add ASan-related macros
157 cat >> /usr/lib/rpm/tizen_macros << EOF
158
159 %%hwasan_force_options %{hwasan_force_options}
160 %%gcc_unforce_options %%{lua: rpm.define("hwasan_unforced 1"); print("/usr/bin/gcc-unforce-options")}
161 %%gcc_force_options /usr/bin/gcc-force-options
162 %%gcc_force_default_options %%gcc_force_options %%hwasan_force_options -fno-common
163 %%restore_fcommon \\
164   %%gcc_unforce_options \\
165   %%gcc_force_options %%hwasan_force_options -fcommon
166 EOF
167
168 # HWASan needs a whole shadow address space
169 # Using ulimit can only set the value for current user so we need to set /etc/security/limits.conf directly.
170 [ -e /etc/security/limits.conf ] && \
171     sed '/End of file/i\abuild\tsoft\tas\t-1\nabuild\thard\tas\t-1' -i /etc/security/limits.conf
172
173 %preun -n hwasan-force-options
174 # Restore read-only mode
175 chmod a-w /usr/bin
176 chmod a-w %{libsubdir}
177 /usr/bin/gcc-unforce-options
178 # Restore limit configurations set for HWASan
179 [ -e /etc/security/limits.conf ] && \
180     sed '/abuild/d' -i /etc/security/limits.conf
181
182 %package -n ubsan-force-options
183 Summary:    Scripts to enable automatic package sanitization
184 Group:      System Environment
185 Requires:   gcc
186 Requires:   libubsan
187
188 %description -n ubsan-force-options
189 Scripts for UBSan instrumentation
190
191 %post -n ubsan-force-options
192 # Change mode to allow all users to run gcc-force/unforce-options
193 chmod a+w /usr/bin
194 chmod a+w %{libsubdir}
195 /usr/bin/gcc-force-options %ubsan_force_options
196 # Add UBSan-related macros
197 cat >> /usr/lib/rpm/tizen_macros << EOF
198
199 %%ubsan_force_options %{ubsan_force_options}
200 %%gcc_unforce_options %%{lua: rpm.define("ubsan_unforced 1"); print("/usr/bin/gcc-unforce-options")}
201 %%gcc_force_options /usr/bin/gcc-force-options
202 %%gcc_force_default_options %%gcc_force_options %%ubsan_force_options
203 EOF
204
205 %preun -n ubsan-force-options
206 # Restore read-only mode
207 chmod a-w /usr/bin
208 chmod a-w %{libsubdir}
209 /usr/bin/gcc-unforce-options
210 # Remove additional macros from config
211 sed -e '\|^\# /etc/rpm/macros.ubsan$|,\|^\# /etc/rpm/macros.ubsan ends here|d' -i /usr/lib/rpm/tizen_macros
212
213 %package -n ubsan-build-env
214 Summary:    UBSan build environment
215 Group:      System Environment
216 Requires:   gcc
217 Requires:   libubsan rpm
218
219 %description -n ubsan-build-env
220 UBSan build environment support files and scripts
221
222 %post -n ubsan-build-env
223 cat %{_rpmconfigdir}/macros.ubsan >> %{_rpmconfigdir}/tizen_macros
224
225 %package -n lsan-force-options
226 Summary:    Scripts to enable automatic package sanitization
227 Group:      System Environment
228 Requires:   gcc
229 Requires:   liblsan
230
231 %description -n lsan-force-options
232 Scripts for LSan instrumentation
233
234 %post -n lsan-force-options
235 # Change mode to allow all users to run gcc-force/unforce-options
236 chmod a+w /usr/bin
237 chmod a+w %{libsubdir}
238 /usr/bin/gcc-force-options %lsan_force_options
239 # Add LSan-related macros
240 cat >> /usr/lib/rpm/tizen_macros << EOF
241
242 %%lsan_force_options %{lsan_force_options}
243 %%gcc_unforce_options /usr/bin/gcc-unforce-options
244 %%gcc_force_options /usr/bin/gcc-force-options
245 %%gcc_force_default_options %%gcc_force_options %%lsan_force_options
246 EOF
247
248 %preun -n lsan-force-options
249 # Restore read-only mode
250 chmod a-w /usr/bin
251 chmod a-w %{libsubdir}
252 /usr/bin/gcc-unforce-options
253
254 %package -n gcov-force-options
255 Summary:    Scripts to enable automatic package coverage instrumentation
256 Group:      System Environment
257 Requires:   gcc
258
259 %description -n gcov-force-options
260 Scripts for gcov instrumentation
261
262 %post -n gcov-force-options
263 # Change mode to allow all users to run gcc-force/unforce-options
264 chmod a+w /usr/bin
265 chmod a+w %{libsubdir}
266 /usr/bin/gcc-force-options %gcov_force_options
267 # Add gcov-related macros
268 cat >> /usr/lib/rpm/tizen_macros << EOF
269
270 %%gcov_force_options %{gcov_force_options}
271 %%gcc_unforce_options /usr/bin/gcc-unforce-options
272 %%gcc_force_options /usr/bin/gcc-force-options
273 %%gcc_force_default_options %%gcc_force_options %%gcov_force_options
274 EOF
275
276 %preun -n gcov-force-options
277 # Restore read-only mode
278 chmod a-w /usr/bin
279 chmod a-w %{libsubdir}
280 /usr/bin/gcc-unforce-options
281
282 %package -n gcov-build-env
283 Summary:    Gcov build environment
284 Group:      System Environment
285 Requires:   gcc
286 Requires:   rpm
287
288 %description -n gcov-build-env
289 Gcov build environment support files and scripts
290
291 %post -n gcov-build-env
292 cat %{_rpmconfigdir}/macros.gcov >> %{_rpmconfigdir}/tizen_macros
293
294 %package -n tsan-force-options
295 Summary:    Scripts to enable automatic package sanitization
296 Group:      System Environment
297 Requires:   gcc
298 Requires:   libtsan
299
300 %description -n tsan-force-options
301 Scripts for TSan instrumentation
302
303 %post -n tsan-force-options
304 # Change mode to allow all users to run gcc-force/unforce-options
305 chmod a+w /usr/bin
306 chmod a+w %{libsubdir}
307 /usr/bin/gcc-force-options %tsan_force_options
308 # Add TSan-related macros
309 cat >> /usr/lib/rpm/tizen_macros << EOF
310
311 %%tsan_force_options %{tsan_force_options}
312 %%gcc_unforce_options /usr/bin/gcc-unforce-options
313 %%gcc_force_options /usr/bin/gcc-force-options
314 %%gcc_force_default_options %%gcc_force_options %%tsan_force_options
315 EOF
316
317 %preun -n tsan-force-options
318 # Restore read-only mode
319 chmod a-w /usr/bin
320 chmod a-w %{libsubdir}
321 /usr/bin/gcc-unforce-options
322
323 %package -n tsan-runtime-env
324 Summary:    TSan runtime environment
325 Group:      Development/Libraries
326 Requires:   libtsan
327 Requires(post): smack
328
329 %description -n tsan-runtime-env
330 TSan runtime environment
331
332 %post -n tsan-runtime-env
333 echo "%{tsan_runtime_options}" > /TSAN_OPTIONS
334 chsmack -a "_" /TSAN_OPTIONS
335
336 %package -n tsan-build-env
337 Summary:    TSan build environment
338 Group:      Development/Libraries
339 Requires:   libtsan
340
341 %description -n tsan-build-env
342 TSan build environment
343
344 %post -n tsan-build-env
345 echo "%{tsan_runtime_options}" > /TSAN_OPTIONS
346 %ifarch aarch64
347 echo ":run_under_qemu=1" >> /TSAN_OPTIONS
348 %endif
349 chsmack -a "_" /TSAN_OPTIONS
350
351 %package -n asan-build-env
352 Summary:    Asan build environment
353 Group:      Development/Libraries
354 Requires:   libasan
355
356 %description -n asan-build-env
357 Asan build environment
358
359 %post -n asan-build-env
360 # Add /usr/lib/libasan.so to /etc/ld.so.preload
361 [ -f /etc/ld.so.preload ] && mv -v /etc/ld.so.preload /etc/ld.so.preload.orig
362 echo "%{_libdir}/libasan.so" > /etc/ld.so.preload
363 echo "%{_libdir}/libcrypt-2.30.so" >> /etc/ld.so.preload
364 [ -f /etc/ld.so.preload.orig ] && cat /etc/ld.so.preload.orig >> /etc/ld.so.preload
365
366 %preun -n asan-build-env
367 # Restore /etc/ld.so.preload
368 [ -f /etc/ld.so.preload.orig ] && mv -v /etc/ld.so.preload.orig /etc/ld.so.preload
369
370 %package -n hwasan-build-env
371 Summary:    HWAsan build environment
372 Group:      Development/Libraries
373
374 %description -n hwasan-build-env
375 HWAsan build environment
376
377 %package -n lsan-runtime-env
378 Summary:    LSan runtime environment
379 Group:      Development/Libraries
380 Requires:   liblsan
381 Requires(post): smack
382
383 %description -n lsan-runtime-env
384 LSan runtime environment
385
386 %post -n lsan-runtime-env
387 # Add /usr/lib64/liblsan.so to /etc/ld.so.preload
388 [ -f /etc/ld.so.preload ] && mv -v /etc/ld.so.preload /etc/ld.so.preload.orig
389 echo "%{libdir}/liblsan.so" > /etc/ld.so.preload
390 [ -f /etc/ld.so.preload.orig ] && cat /etc/ld.so.preload.orig >> /etc/ld.so.preload
391 echo "%{lsan_runtime_options}" > /LSAN_OPTIONS
392 chsmack -a "_" /etc/ld.so.preload /LSAN_OPTIONS /lsan.supp
393
394 %preun -n lsan-runtime-env
395 # Restore /etc/ld.so.preload
396 [ -f /etc/ld.so.preload.orig ] && mv -v /etc/ld.so.preload.orig /etc/ld.so.preload
397
398 %package -n sanitizer-devel
399 Summary:    Sanitizer platform-independent tools
400 License:       MIT
401 Group:      Development/Tools
402 BuildArch:  noarch
403 Requires:   binutils python
404 Requires(post): smack
405
406 %description -n sanitizer-devel
407 The package contatins platform-independent tools for sanitization:
408 - asan_symbolize.py: script for offline symbolization of asan logs
409
410 %package -n asan-runtime-env
411 Summary:    Asan runtime environment for target device
412 Group:      Development/Libraries
413 Requires:   libasan
414
415 %description -n asan-runtime-env
416 Asan runtime environment
417
418 %package -n asansi-runtime-env
419 Summary:    ASanSI runtime for target device
420 Group:      Development/Libraries
421 Requires:   asan-runtime-env
422
423 %description -n asansi-runtime-env
424 Tool for switching interceptors state of libasan
425
426 %package -n hwasan-runtime-env
427 Summary:    HWAsan runtime environment for target device
428 Group:      Development/Libraries
429
430 %description -n hwasan-runtime-env
431 HWAsan runtime environment
432
433 %package -n ubsan-runtime-env
434 Summary:    UBSan runtime environment for target device
435 Group:      Development/Libraries
436 Requires:   libubsan
437
438 %description -n ubsan-runtime-env
439 UBSan runtime environment
440
441 %post -n ubsan-runtime-env
442 echo "%{ubsan_runtime_options}" > /UBSAN_OPTIONS
443
444 %package -n sanitizer-sources
445 Summary:    Sanitizer family tools sources
446 License:       MIT
447 Group:      Development/Tools
448 BuildArch:  noarch
449
450 %description -n sanitizer-sources
451 Sanitizer family tools sources for external tools.
452
453 %package -n gcc-warning-build-env
454 Summary:    GCC warning build environment
455 Group:      System Environment
456 BuildArch:  noarch
457 Requires:   gcc rpm
458
459 %description -n gcc-warning-build-env
460 GCC warning build environment support files and scripts
461
462 %post -n gcc-warning-build-env
463 cat %{_rpmconfigdir}/macros.gcc_warning >> %{_rpmconfigdir}/tizen_macros
464
465 %package -n gcc-log-wrapper
466 Summary:    GCC wrapper for logs saving
467 Group:      Development/Tools
468 BuildArch:  noarch
469 Requires:   gcc
470
471 %description -n gcc-log-wrapper
472 GCC wrapper for logs saving
473
474 %post -n gcc-log-wrapper
475 # Warning: below for SVACE tool - it can't capture the data if a wrapper is symlink
476 PATHCC1=$(gcc -v 2>&1|grep COLLECT_LTO_WRAPPER|sed 's/COLLECT_LTO_WRAPPER=//') ; \
477 PATHCC1=$(dirname $PATHCC1) ; \
478 if [ ! -f $PATHCC1/cc1.orig ] ; then \
479   mv $PATHCC1/cc1{,.orig} ; \
480 else \
481   rm $PATHCC1/cc1 ; \
482 fi ; \
483 if [ ! -f $PATHCC1/cc1plus.orig ] ; then \
484   mv $PATHCC1/cc1plus{,.orig} ; \
485 else \
486   rm $PATHCC1/cc1plus ; \
487 fi ; \
488 ln /usr/lib/gcc-log-wrapper/cc1 $PATHCC1/cc1 ; \
489 ln /usr/lib/gcc-log-wrapper/cc1 $PATHCC1/cc1plus
490
491 %preun -n gcc-log-wrapper
492 PATHCC1=$(gcc -v 2>&1|grep COLLECT_LTO_WRAPPER|sed 's/COLLECT_LTO_WRAPPER=//') ; \
493 PATHCC1=$(dirname $PATHCC1) ; \
494 if [ -f $PATHCC1/cc1.orig ] ; then \
495   rm -f $PATHCC1/cc1 ; \
496   mv $PATHCC1/cc1{.orig,} ; \
497 fi ; \
498 if [ -f $PATHCC1/cc1plus.orig ] ; then \
499   rm -f $PATHCC1/cc1plus ; \
500   mv $PATHCC1/cc1plus{.orig,} ; \
501 fi
502
503
504 %prep
505
506 %ifarch x86_64
507 cp %{SOURCE29} .
508 %endif
509
510 %build
511 # Generate runtime options for sanitizers
512 echo "%{asan_runtime_options}"   | tee ASAN_OPTIONS
513 echo "%{hwasan_runtime_options}" | tee HWASAN_OPTIONS
514 echo "%{lsan_runtime_options}"  | tee LSAN_OPTIONS
515 echo "%{tsan_runtime_options}"  | tee TSAN_OPTIONS
516 echo "%{ubsan_runtime_options}" | tee UBSAN_OPTIONS
517
518 echo "libasan.so" | tee asan-runtime-ld.so.preload
519
520 %ifarch x86_64
521 gcc -shared -o libhwasan.so -fPIC hwasan_stub.c
522 %endif
523
524 %install
525 mkdir -p %buildroot%_prefix
526 mkdir -p %buildroot%_prefix/bin
527 mkdir -p %{buildroot}/etc/
528 sed -e 's|GCC_LIBSUBDIR|%{libsubdir}|' -i %{SOURCE15}
529
530 install -m 0755 %{SOURCE15} %{buildroot}%{_prefix}/bin/
531 install -m 0755 %{SOURCE16} %{buildroot}%{_prefix}/bin/
532 install -m 0755 %{SOURCE17} %{buildroot}%{_prefix}/bin/
533
534 install -m 0644 ASAN_OPTIONS %{buildroot}
535 install -m 0644 asan-runtime-ld.so.preload %{buildroot}/etc/ld.so.preload
536
537 %ifarch x86_64
538 mkdir -p %{buildroot}/%{_libdir}
539 install -m 755 libhwasan.so %{buildroot}/%{_libdir}
540 %endif
541
542 %ifarch %hwasan_arch
543 install -m 0644 HWASAN_OPTIONS %{buildroot}
544 %endif
545
546 %ifarch %lsan_arch
547 install -m 0644 LSAN_OPTIONS %{buildroot}
548 install -m 0644 %{SOURCE21} %{buildroot}
549 %endif
550
551 %ifarch %tsan_arch
552 install -m 0644 TSAN_OPTIONS %{buildroot}
553 %endif
554
555 mkdir -p %{buildroot}/%{_rpmconfigdir}/tizen/
556 install -m 0644 UBSAN_OPTIONS %{buildroot}/
557 install -m 0644 %{SOURCE19} %{buildroot}/%{_rpmconfigdir}/
558 install -m 0644 %{SOURCE22} %{buildroot}/%{_rpmconfigdir}/
559 install -m 0755 %{SOURCE20} %{buildroot}/%{_rpmconfigdir}/tizen/
560
561 mkdir -p %{buildroot}/usr/lib/gcc-log-wrapper
562 install -m 0755 %{SOURCE23} %{buildroot}/usr/lib/gcc-log-wrapper/
563 install -m 0644 %{SOURCE24} %{buildroot}/%{_rpmconfigdir}/
564 install -m 0755 %{SOURCE25} %{buildroot}/%{_rpmconfigdir}/tizen/
565 install -m 0644 %{SOURCE26} %{buildroot}/%{_rpmconfigdir}/
566 install -m 0755 %{SOURCE27} %{buildroot}/%{_rpmconfigdir}/tizen/
567
568 mkdir -p %{buildroot}%{_prefix}/sbin
569 install -m 0755 %{SOURCE28} %{buildroot}%{_prefix}/sbin/
570
571 %files
572 #%manifest gcc-contrib.manifest
573
574 %files -n asan-force-options
575 %defattr(-,root,root,-)
576 %{_prefix}/bin/gcc-force-options
577 %{_prefix}/bin/gcc-unforce-options
578 %{_rpmconfigdir}/macros.asan
579
580 %ifarch %hwasan_arch
581 %files -n hwasan-force-options
582 %defattr(-,root,root,-)
583 %{_prefix}/bin/gcc-force-options
584 %{_prefix}/bin/gcc-unforce-options
585 %endif
586
587 %files -n ubsan-force-options
588 %defattr(-,root,root,-)
589 %{_prefix}/bin/gcc-force-options
590 %{_prefix}/bin/gcc-unforce-options
591
592 %files -n gcov-force-options
593 %defattr(-,root,root,-)
594 %{_prefix}/bin/gcc-force-options
595 %{_prefix}/bin/gcc-unforce-options
596
597 %ifarch %lsan_arch
598 %files -n lsan-force-options
599 #%manifest gcc-contrib.manifest
600 %defattr(-,root,root,-)
601 %{_prefix}/bin/gcc-force-options
602 %{_prefix}/bin/gcc-unforce-options
603 %endif
604
605 %ifarch %tsan_arch
606 %files -n tsan-force-options
607 %defattr(-,root,root,-)
608 %{_prefix}/bin/gcc-force-options
609 %{_prefix}/bin/gcc-unforce-options
610 %endif
611
612 %files -n asan-build-env
613 %defattr(-,root,root,-)
614 /ASAN_OPTIONS
615
616 %files -n asan-runtime-env
617 %defattr(-,root,root,-)
618 /ASAN_OPTIONS
619 /etc/ld.so.preload
620
621 %files -n asansi-runtime-env
622 %defattr(-,root,root,-)
623 %{_prefix}/sbin/asansictl
624
625 %ifarch %hwasan_arch
626 %files -n hwasan-build-env
627 %defattr(-,root,root,-)
628 /HWASAN_OPTIONS
629
630 %files -n hwasan-runtime-env
631 %defattr(-,root,root,-)
632 /HWASAN_OPTIONS
633 %endif
634
635 %ifarch x86_64
636 %files -n libhwasan-stub
637 %defattr(-,root,root,-)
638 %{libdir}/libhwasan.so
639 %endif
640
641 %ifarch %lsan_arch
642 %files -n lsan-runtime-env
643 %defattr(-,root,root,-)
644 /LSAN_OPTIONS
645 /lsan.supp
646 %endif
647
648 %ifarch %tsan_arch
649 %files -n tsan-runtime-env
650 %defattr(-,root,root,-)
651 /TSAN_OPTIONS
652
653 %files -n tsan-build-env
654 %defattr(-,root,root,-)
655 /TSAN_OPTIONS
656 %endif
657
658 %files -n gcov-build-env
659 %defattr(-,root,root,-)
660 %{_rpmconfigdir}/macros.gcov
661 %{_rpmconfigdir}/tizen/extract-gcov-info
662
663 %ifarch %ubsan_arch
664 %files -n ubsan-build-env
665 %defattr(-,root,root,-)
666 /UBSAN_OPTIONS
667 %{_rpmconfigdir}/macros.ubsan
668 %{_rpmconfigdir}/tizen/extract-ubsan-logs
669
670 %files -n ubsan-runtime-env
671 %defattr(-,root,root,-)
672 %endif
673
674 %files -n sanitizer-devel
675 %defattr(-,root,root,-)
676 %{_prefix}/bin/asan_symbolize.py
677
678 %files -n gcc-warning-build-env
679 %defattr(-,root,root,-)
680 %{_rpmconfigdir}/macros.gcc_warning
681 %{_rpmconfigdir}/tizen/extract-gcc-warning-logs
682
683 %files -n gcc-log-wrapper
684 %defattr(-,root,root,-)
685 /usr/lib/gcc-log-wrapper/cc1
686
687 %changelog