Additioanl libelf package without of ASan 43/171343/4 submit/tizen_base/20180308.000829
authorDmitriy Evgenevich Gonzha <d.gonzha@samsung.com>
Wed, 28 Feb 2018 17:18:57 +0000 (20:18 +0300)
committerDmitriy Evgenevich Gonzha <d.gonzha@samsung.com>
Wed, 7 Mar 2018 19:14:16 +0000 (22:14 +0300)
Additional package with libelf static library without of ASan
- libelf0-noasan-static.  Such library is required for
dependent package static builds in full ASan sanitizen
environment: currently gcc Address Sanitizer do not provide
support for sanitized static builds.

For generic libelf package asan was turned back on.

Change-Id: I55eccf3db554872b4f17af11304bff2c58b1c52c

packaging/libelf0.spec

index 6df46c4..1f0ab24 100644 (file)
@@ -27,19 +27,39 @@ Conflicts:      libelf1-devel
 This package contains all necessary include files and libraries needed
 to develop applications that require these.
 
+%if %{asan}
+%package noasan-static
+Summary:       An ELF Object File Access Library (static library build without of ASan)
+Group:          Development/Libraries/C and C++
+Requires:       glibc-devel,
+Conflicts:      libelf1-devel
+
+%description noasan-static
+This package contains static library built without of ASan.
+It is required for static builds in full ASan sanitized environment.
+%endif
+
 %prep
 %setup -q -n libelf-%{version}
 cp %{SOURCE1001} .
 
 %build
-%{?asan:/usr/bin/gcc-unforce-options}
-
 export LDFLAGS+=" -z relro"
 %configure --disable-nls
 make %{?_smp_mflags}
 
+%if %{asan}
+/usr/bin/gcc-unforce-options
+mkdir noasan
+cd noasan
+../configure --disable-nls --disable-shared
+make %{?_smp_mflags} all
+cd ..
+%endif
+
 %install
 make install instroot=%{buildroot}
+%{?asan:cp ./noasan/lib/libelf.a %{buildroot}%{_libdir}/libelf-noasan.a}
 # remove the wrapper includes
 rm -f %{buildroot}%{_includedir}/*.h
 # remove unneeded *.la and *.a files
@@ -63,4 +83,11 @@ rm -f %{buildroot}%{_libdir}/*.la
 %{_libdir}/pkgconfig/libelf.pc
 %{_includedir}/libelf
 
+%if %{asan}
+%files noasan-static
+%manifest %{name}.manifest
+%defattr(-,root,root)
+%{_libdir}/libelf-noasan.a
+%endif
+
 %changelog