2 # spec file for package gcc-contrib
4 # Copyright (c) 2017 Tizen
5 # Please submit bugfixes or comments via http://bugs.tizen.org/
7 # we use %%{?macro: ... } as it is more compact
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
32 %define host_arch %{ARCH}-tizen-linux-gnu%{?ABI}
34 %define target_cpu %{?cross}%{!?cross:%{ARCH}}
35 %define target_abi %{?cross:%{?armv7l:eabi}}%{!?cross:%{?ABI}}
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}
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
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
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
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
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
75 Source24: macros.gcc_warning
76 Source25: extract-gcc-warning-logs
78 Source27: extract-gcov-info
80 Source29: hwasan_stub.c
81 Group: Development/Building
82 Summary: GCC related scripts
84 %{?cross:ExcludeArch: %{cross}}
88 %package -n asan-force-options
89 Summary: Scripts to enable automatic package sanitization
90 Group: System Environment
94 %description -n asan-force-options
95 Scripts for ASan instrumentation
97 %post -n asan-force-options
98 # Change mode to allow all users to run gcc-force/unforce-options
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
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
110 %%gcc_unforce_options \\
111 %%gcc_force_options %%asan_force_options -fcommon
114 # Add ASan's blacklist macro to tizen_macros
115 cat %{_rpmconfigdir}/macros.asan >> %{_rpmconfigdir}/tizen_macros
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
122 %preun -n asan-force-options
123 # Restore read-only mode
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
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
134 %package -n libhwasan-stub
135 Summary: HWASan stub library to enable cross build
136 Group: System Environment
139 %description -n libhwasan-stub
140 HWASan stub library for cross build
142 %package -n hwasan-force-options
143 Summary: Scripts to enable automatic package sanitization
144 Group: System Environment
148 %description -n hwasan-force-options
149 Scripts for HWASan instrumentation
151 %post -n hwasan-force-options
152 # Change mode to allow all users to run gcc-force/unforce-options
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
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
164 %%gcc_unforce_options \\
165 %%gcc_force_options %%hwasan_force_options -fcommon
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
173 %preun -n hwasan-force-options
174 # Restore read-only mode
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
182 %package -n ubsan-force-options
183 Summary: Scripts to enable automatic package sanitization
184 Group: System Environment
188 %description -n ubsan-force-options
189 Scripts for UBSan instrumentation
191 %post -n ubsan-force-options
192 # Change mode to allow all users to run gcc-force/unforce-options
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
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
205 %preun -n ubsan-force-options
206 # Restore read-only mode
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
213 %package -n ubsan-build-env
214 Summary: UBSan build environment
215 Group: System Environment
217 Requires: libubsan rpm
219 %description -n ubsan-build-env
220 UBSan build environment support files and scripts
222 %post -n ubsan-build-env
223 cat %{_rpmconfigdir}/macros.ubsan >> %{_rpmconfigdir}/tizen_macros
225 %package -n lsan-force-options
226 Summary: Scripts to enable automatic package sanitization
227 Group: System Environment
231 %description -n lsan-force-options
232 Scripts for LSan instrumentation
234 %post -n lsan-force-options
235 # Change mode to allow all users to run gcc-force/unforce-options
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
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
248 %preun -n lsan-force-options
249 # Restore read-only mode
251 chmod a-w %{libsubdir}
252 /usr/bin/gcc-unforce-options
254 %package -n gcov-force-options
255 Summary: Scripts to enable automatic package coverage instrumentation
256 Group: System Environment
259 %description -n gcov-force-options
260 Scripts for gcov instrumentation
262 %post -n gcov-force-options
263 # Change mode to allow all users to run gcc-force/unforce-options
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
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
276 %preun -n gcov-force-options
277 # Restore read-only mode
279 chmod a-w %{libsubdir}
280 /usr/bin/gcc-unforce-options
282 %package -n gcov-build-env
283 Summary: Gcov build environment
284 Group: System Environment
288 %description -n gcov-build-env
289 Gcov build environment support files and scripts
291 %post -n gcov-build-env
292 cat %{_rpmconfigdir}/macros.gcov >> %{_rpmconfigdir}/tizen_macros
294 %package -n tsan-force-options
295 Summary: Scripts to enable automatic package sanitization
296 Group: System Environment
300 %description -n tsan-force-options
301 Scripts for TSan instrumentation
303 %post -n tsan-force-options
304 # Change mode to allow all users to run gcc-force/unforce-options
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
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
317 %preun -n tsan-force-options
318 # Restore read-only mode
320 chmod a-w %{libsubdir}
321 /usr/bin/gcc-unforce-options
323 %package -n tsan-runtime-env
324 Summary: TSan runtime environment
325 Group: Development/Libraries
327 Requires(post): smack
329 %description -n tsan-runtime-env
330 TSan runtime environment
332 %post -n tsan-runtime-env
333 echo "%{tsan_runtime_options}" > /TSAN_OPTIONS
334 chsmack -a "_" /TSAN_OPTIONS
336 %package -n tsan-build-env
337 Summary: TSan build environment
338 Group: Development/Libraries
341 %description -n tsan-build-env
342 TSan build environment
344 %post -n tsan-build-env
345 echo "%{tsan_runtime_options}" > /TSAN_OPTIONS
347 echo ":run_under_qemu=1" >> /TSAN_OPTIONS
349 chsmack -a "_" /TSAN_OPTIONS
351 %package -n asan-build-env
352 Summary: Asan build environment
353 Group: Development/Libraries
356 %description -n asan-build-env
357 Asan build environment
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
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
370 %package -n hwasan-build-env
371 Summary: HWAsan build environment
372 Group: Development/Libraries
374 %description -n hwasan-build-env
375 HWAsan build environment
377 %package -n lsan-runtime-env
378 Summary: LSan runtime environment
379 Group: Development/Libraries
381 Requires(post): smack
383 %description -n lsan-runtime-env
384 LSan runtime environment
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
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
398 %package -n sanitizer-devel
399 Summary: Sanitizer platform-independent tools
401 Group: Development/Tools
403 Requires: binutils python
404 Requires(post): smack
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
410 %package -n asan-runtime-env
411 Summary: Asan runtime environment for target device
412 Group: Development/Libraries
415 %description -n asan-runtime-env
416 Asan runtime environment
418 %package -n asansi-runtime-env
419 Summary: ASanSI runtime for target device
420 Group: Development/Libraries
421 Requires: asan-runtime-env
423 %description -n asansi-runtime-env
424 Tool for switching interceptors state of libasan
426 %package -n hwasan-runtime-env
427 Summary: HWAsan runtime environment for target device
428 Group: Development/Libraries
430 %description -n hwasan-runtime-env
431 HWAsan runtime environment
433 %package -n ubsan-runtime-env
434 Summary: UBSan runtime environment for target device
435 Group: Development/Libraries
438 %description -n ubsan-runtime-env
439 UBSan runtime environment
441 %post -n ubsan-runtime-env
442 echo "%{ubsan_runtime_options}" > /UBSAN_OPTIONS
444 %package -n sanitizer-sources
445 Summary: Sanitizer family tools sources
447 Group: Development/Tools
450 %description -n sanitizer-sources
451 Sanitizer family tools sources for external tools.
453 %package -n gcc-warning-build-env
454 Summary: GCC warning build environment
455 Group: System Environment
459 %description -n gcc-warning-build-env
460 GCC warning build environment support files and scripts
462 %post -n gcc-warning-build-env
463 cat %{_rpmconfigdir}/macros.gcc_warning >> %{_rpmconfigdir}/tizen_macros
465 %package -n gcc-log-wrapper
466 Summary: GCC wrapper for logs saving
467 Group: Development/Tools
471 %description -n gcc-log-wrapper
472 GCC wrapper for logs saving
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} ; \
483 if [ ! -f $PATHCC1/cc1plus.orig ] ; then \
484 mv $PATHCC1/cc1plus{,.orig} ; \
486 rm $PATHCC1/cc1plus ; \
488 ln /usr/lib/gcc-log-wrapper/cc1 $PATHCC1/cc1 ; \
489 ln /usr/lib/gcc-log-wrapper/cc1 $PATHCC1/cc1plus
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,} ; \
498 if [ -f $PATHCC1/cc1plus.orig ] ; then \
499 rm -f $PATHCC1/cc1plus ; \
500 mv $PATHCC1/cc1plus{.orig,} ; \
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
518 echo "libasan.so" | tee asan-runtime-ld.so.preload
521 gcc -shared -o libhwasan.so -fPIC hwasan_stub.c
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}
530 install -m 0755 %{SOURCE15} %{buildroot}%{_prefix}/bin/
531 install -m 0755 %{SOURCE16} %{buildroot}%{_prefix}/bin/
532 install -m 0755 %{SOURCE17} %{buildroot}%{_prefix}/bin/
534 install -m 0644 ASAN_OPTIONS %{buildroot}
535 install -m 0644 asan-runtime-ld.so.preload %{buildroot}/etc/ld.so.preload
538 mkdir -p %{buildroot}/%{_libdir}
539 install -m 755 libhwasan.so %{buildroot}/%{_libdir}
543 install -m 0644 HWASAN_OPTIONS %{buildroot}
547 install -m 0644 LSAN_OPTIONS %{buildroot}
548 install -m 0644 %{SOURCE21} %{buildroot}
552 install -m 0644 TSAN_OPTIONS %{buildroot}
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/
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/
568 mkdir -p %{buildroot}%{_prefix}/sbin
569 install -m 0755 %{SOURCE28} %{buildroot}%{_prefix}/sbin/
572 #%manifest gcc-contrib.manifest
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
581 %files -n hwasan-force-options
582 %defattr(-,root,root,-)
583 %{_prefix}/bin/gcc-force-options
584 %{_prefix}/bin/gcc-unforce-options
587 %files -n ubsan-force-options
588 %defattr(-,root,root,-)
589 %{_prefix}/bin/gcc-force-options
590 %{_prefix}/bin/gcc-unforce-options
592 %files -n gcov-force-options
593 %defattr(-,root,root,-)
594 %{_prefix}/bin/gcc-force-options
595 %{_prefix}/bin/gcc-unforce-options
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
606 %files -n tsan-force-options
607 %defattr(-,root,root,-)
608 %{_prefix}/bin/gcc-force-options
609 %{_prefix}/bin/gcc-unforce-options
612 %files -n asan-build-env
613 %defattr(-,root,root,-)
616 %files -n asan-runtime-env
617 %defattr(-,root,root,-)
621 %files -n asansi-runtime-env
622 %defattr(-,root,root,-)
623 %{_prefix}/sbin/asansictl
626 %files -n hwasan-build-env
627 %defattr(-,root,root,-)
630 %files -n hwasan-runtime-env
631 %defattr(-,root,root,-)
636 %files -n libhwasan-stub
637 %defattr(-,root,root,-)
638 %{libdir}/libhwasan.so
642 %files -n lsan-runtime-env
643 %defattr(-,root,root,-)
649 %files -n tsan-runtime-env
650 %defattr(-,root,root,-)
653 %files -n tsan-build-env
654 %defattr(-,root,root,-)
658 %files -n gcov-build-env
659 %defattr(-,root,root,-)
660 %{_rpmconfigdir}/macros.gcov
661 %{_rpmconfigdir}/tizen/extract-gcov-info
664 %files -n ubsan-build-env
665 %defattr(-,root,root,-)
667 %{_rpmconfigdir}/macros.ubsan
668 %{_rpmconfigdir}/tizen/extract-ubsan-logs
670 %files -n ubsan-runtime-env
671 %defattr(-,root,root,-)
674 %files -n sanitizer-devel
675 %defattr(-,root,root,-)
676 %{_prefix}/bin/asan_symbolize.py
678 %files -n gcc-warning-build-env
679 %defattr(-,root,root,-)
680 %{_rpmconfigdir}/macros.gcc_warning
681 %{_rpmconfigdir}/tizen/extract-gcc-warning-logs
683 %files -n gcc-log-wrapper
684 %defattr(-,root,root,-)
685 /usr/lib/gcc-log-wrapper/cc1