rpm: add "--with asan" build option

RHEL-6 does not have libasan, enabling the "--with asan" option is a
no-op there.

RHEL-7 has an earlier version of libasan, and that does not have the
__asan_init symbol. Test for __asan_report_error in confiure.as instead.

Change-Id: I6322e832c5cfbd7d750f5c32c84c28771674ced6
Updates: #492
Signed-off-by: Niels de Vos <ndevos@redhat.com>
This commit is contained in:
Niels de Vos 2018-08-10 01:32:22 +02:00 committed by Amar Tumballi
parent ee79077c0d
commit 0e399b9e46
2 changed files with 17 additions and 1 deletions

View File

@ -323,7 +323,7 @@ AC_ARG_ENABLE([asan],
[Enable Address Sanitizer support]))
if test "x$enable_asan" = "xyes"; then
BUILD_ASAN=yes
AC_CHECK_LIB([asan], [__asan_init], ,
AC_CHECK_LIB([asan], [__asan_report_error], ,
[AC_MSG_ERROR([libasan.so not found, this is required for --enable-asan])])
GF_CFLAGS="${GF_CFLAGS} -O1 -g -fsanitize=address -fno-omit-frame-pointer"
dnl -lasan always need to be the first library, otherwise libxml complains

View File

@ -9,6 +9,15 @@
## All argument definitions should be placed here and keep them sorted
##
# asan
# if you wish to compile an rpm with address sanitizer...
# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --with asan
%{?_with_asan:%global _with_asan --enable-asan}
%if ( 0%{?rhel} && 0%{?rhel} < 7 )
%global _with_asan %{nil}
%endif
# bd
# if you wish to compile an rpm without the BD map support...
# rpmbuild -ta @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz --without bd
@ -259,6 +268,9 @@ Requires: %{name}-libs%{?_isa} = %{version}-%{release}
%if ( 0%{?_with_systemd:1} )
%{?systemd_requires}
%endif
%if 0%{?_with_asan:1} && !( 0%{?rhel} && 0%{?rhel} < 7 )
BuildRequires: libasan
%endif
BuildRequires: bison flex
BuildRequires: gcc make libtool
BuildRequires: ncurses-devel readline-devel
@ -724,6 +736,7 @@ export CFLAGS
%endif
%configure \
%{?_with_asan} \
%{?_with_cmocka} \
%{?_with_debug} \
%{?_with_firewalld} \
@ -1501,6 +1514,9 @@ exit 0
%endif
%changelog
* Fri Sep 7 2018 Niels de Vos <ndevos@redhat.com>
- Add an option to build with address sanitizer (ASAN)
* Sun Jul 29 2018 Niels de Vos <ndevos@redhat.com>
- Disable building glusterfs-resource-agents on el6 (#1609551)