--- /dev/null
+#!/bin/sh
+
+# /usr/lib/rpm/tizen/extract-gcc-warning-logs
+
+# If using normal root, avoid changing anything.
+if [ -z "$RPM_BUILD_ROOT" -o "$RPM_BUILD_ROOT" = "/" ]; then
+ exit 0
+fi
+
+GCC_WARNING_LOG_DIR="/usr/share/gcc-warnings"
+
+mkdir -p "$RPM_BUILD_ROOT$GCC_WARNING_LOG_DIR"
+find "/tmp/" -name 'cc1*.log' -size 0 -exec rm {} +
+find "/tmp/" -name 'cc1*.log' | xargs -I {} mv {} "$RPM_BUILD_ROOT$GCC_WARNING_LOG_DIR/"
+find "$RPM_BUILD_ROOT$GCC_WARNING_LOG_DIR/" -name 'cc1*.log' | xargs -I {} sed -e "s#/.*rpmbuild/##" -i {}
+find "$RPM_BUILD_ROOT$GCC_WARNING_LOG_DIR/" -name 'cc1*.log' -exec rename cc1 ${RPM_PACKAGE_NAME}-cc1 {} \;
+
+# Avoid empty resulting RPMs: create a placeholder if there's no logs in directory.
+(find "$RPM_BUILD_ROOT$GCC_WARNING_LOG_DIR/" -mindepth 1 -print -quit | grep -q .) || \
+ touch "$RPM_BUILD_ROOT$GCC_WARNING_LOG_DIR/${RPM_PACKAGE_NAME}-cc1.empty.log"
Source26: macros.asan
Source27: ESAN_OPTIONS
Source28: cc1
+Source29: macros.gcc_warning
+Source30: extract-gcc-warning-logs
Group: Development/Building
Summary: GCC related scripts
License: MIT
%description -n sanitizer-sources
Sanitizer family tools sources for external tools.
+%package -n gcc-warning-build-env
+Summary: GCC warning build environment
+Group: System Environment
+BuildArch: noarch
+Requires: gcc rpm
+
+%description -n gcc-warning-build-env
+GCC warning build environment support files and scripts
+
+%post -n gcc-warning-build-env
+cat %{_rpmconfigdir}/macros.gcc_warning >> %{_rpmconfigdir}/tizen_macros
+
%package -n gcc-log-wrapper
Summary: GCC wrapper for logs saving
Group: Development/Tools
mkdir -p %{buildroot}/usr/lib/gcc-log-wrapper
install -m 0755 %{SOURCE28} %{buildroot}/usr/lib/gcc-log-wrapper/
+install -m 0644 %{SOURCE29} %{buildroot}/%{_rpmconfigdir}/
+install -m 0755 %{SOURCE30} %{buildroot}/%{_rpmconfigdir}/tizen/
%files
#%manifest gcc-contrib.manifest
%defattr(-,root,root,-)
%{_prefix}/bin/asan_symbolize.py
+%files -n gcc-warning-build-env
+%defattr(-,root,root,-)
+%{_rpmconfigdir}/macros.gcc_warning
+%{_rpmconfigdir}/tizen/extract-gcc-warning-logs
+
%files -n gcc-log-wrapper
%defattr(-,root,root,-)
/usr/lib/gcc-log-wrapper/cc1
--- /dev/null
+# /etc/rpm/macros.gcc_warning
+
+%_enable_gcc_warning_packages 1
+
+%__gcc_warning_install_post %{_rpmconfigdir}/tizen/extract-gcc-warning-logs
+
+# See original macro (before expansion) and correct lines after the first one.
+# Mine is from Fedora RPM macros, YMMV.
+%__spec_install_post\
+ %{?__gcc_warning_package:%{__gcc_warning_install_post}}\
+ %{?__debug_package:%{__debug_install_post}}\
+ %{__arch_install_post}\
+ %{__os_install_post}\
+%{nil}
+
+# Same goes here, see your original macro.
+%install %{?_enable_gcc_warning_packages:%{gcc_warning_package}}\
+%{?_enable_debug_packages:%{debug_package}}\
+%%install\
+LANG=C\
+export LANG\
+unset DISPLAY\
+rm -rf %{?buildroot:%{buildroot}} \
+mkdir -p %{?buildroot:%{buildroot}} \
+%{nil}
+
+# Template for GCC warning logs sub-package.
+%gcc_warning_package \
+%global __gcc_warning_package 1\
+%package gcc-warning-logs\
+Summary: GCC warning logs for package %{name}\
+Group: Development/GCC\
+AutoReqProv: 0\
+%description gcc-warning-logs\
+This package provides GCC warning log files for package %{name}.\
+%files gcc-warning-logs\
+%defattr(-,root,root)\
+/usr/share/gcc-warnings/%{name}-cc1*.log\
+%{nil}