Browse code

add a script to contrib that builds clamav with mudflap and other checks (bb #1092) fix ac_cv usage in m4/acinclude.m4 fixes for unit_tests/

git-svn: trunk@4177

Török Edvin authored on 2008/09/16 01:23:19
Showing 6 changed files
... ...
@@ -14534,6 +14534,7 @@ fi
14534 14534
 
14535 14535
 
14536 14536
 		ac_cv_findlib_CHECK_libs=
14537
+		ac_cv_findlib_CHECK_ltlibs=
14537 14538
 		ac_cv_findlib_CHECK_inc=
14538 14539
 		if test "$have_header" = "yes"; then
14539 14540
 
... ...
@@ -14575,6 +14576,7 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
14575 14575
        $as_test_x conftest$ac_exeext; then
14576 14576
 
14577 14577
 					ac_cv_findlib_CHECK_libs="$LIBCHECK"
14578
+					ac_cv_findlib_CHECK_ltlibs="$LTLIBCHECK"
14578 14579
 					ac_cv_findlib_CHECK_inc="$INCCHECK"
14579 14580
 
14580 14581
 else
... ...
@@ -14612,6 +14614,9 @@ cat >>confdefs.h <<\_ACEOF
14612 14612
 _ACEOF
14613 14613
 
14614 14614
 			HAVE_LIBCHECK=yes
14615
+			LIBCHECK="$ac_cv_findlib_CHECK_libs"
14616
+			LTLIBCHECK="$ac_cv_findlib_CHECK_ltlibs"
14617
+			INCCHECK="$ac_cv_findlib_CHECK_libs"
14615 14618
 			CHECK_CPPFLAGS="$INCCHECK"; CHECK_LIBS="$LTLIBCHECK"
14616 14619
 
14617 14620
 fi
14618 14621
new file mode 100755
... ...
@@ -0,0 +1,30 @@
0
+#!/bin/sh
1
+CC=`which gcc`
2
+CFLAGS="-fstack-protector-all -D_FORTIFY_SOURCE=2 -O2 -Wformat -Wformat-security"
3
+LDFLAGS="-Wl,-z,relro"
4
+MAKEFLAGS="-j4"
5
+# disable valgrind & friends, we are testing with mudflap
6
+VALGRIND=
7
+LIBEFENCE=no
8
+LIBDUMA=no
9
+test -x "$CC" || { echo "these checks need gcc"; exit 1; }
10
+if test "X$NOMUDFLAP" != "X1"; then
11
+	# You can disable mudflap by setting NOMUDFLAP=1
12
+	CFLAGS="$CFLAGS -fmudflapth -pthread"
13
+	LDFLAGS="$LDFLAGS -lmudflapth"
14
+fi
15
+if test "X$NOPIE" != "X1"; then
16
+	# You can disable PIE by NOPIE = 1
17
+	CFLAGS="$CFLAGS -fPIE"
18
+	LDFLAGS="$LDFLAGS -pie"
19
+	CONF_FLAGS="ac_cv_findlib_CHECK_libs=-lcheck_pic ac_cv_findlib_CHECK_ltlibs=-lcheck_pic"
20
+fi
21
+
22
+rm -rf _build
23
+mkdir _build
24
+export CC CFLAGS LDFLAGS MAKEFLAGS VALGRIND LIBEFENCE LIBDUMA
25
+(cd _build &&
26
+../../../configure --disable-static --disable-clamav --enable-check $CONF_FLAGS &&
27
+make &&
28
+make check) &&
29
+rm -rf _build
... ...
@@ -711,12 +711,14 @@ AC_DEFUN([AC_LIB_FIND],
711 711
 		CPPFLAGS="$CPPFLAGS $INC[]NAME"
712 712
 		AC_CHECK_HEADER([$2], [have_header=yes],[have_header=no])
713 713
 		ac_cv_findlib_[]NAME[]_libs=
714
+		ac_cv_findlib_[]NAME[]_ltlibs=
714 715
 		ac_cv_findlib_[]NAME[]_inc=
715 716
 		AS_IF([test "$have_header" = "yes"],[
716 717
 				LIBS="$LIBS $LIB[]NAME"
717 718
 				AC_MSG_CHECKING([linking with $1])
718 719
 				AC_LINK_IFELSE([$3],[
719 720
 					ac_cv_findlib_[]NAME[]_libs="$LIB[]NAME"
721
+					ac_cv_findlib_[]NAME[]_ltlibs="$LTLIB[]NAME"
720 722
 					ac_cv_findlib_[]NAME[]_inc="$INC[]NAME"
721 723
 				])
722 724
 		])
... ...
@@ -731,6 +733,9 @@ AC_DEFUN([AC_LIB_FIND],
731 731
 			AC_MSG_NOTICE([Compiling and linking with $1 by using $ac_cv_findlib_[]NAME[]_inc $ac_cv_findlib_[]NAME[]_libs])
732 732
 			AC_DEFINE([HAVE_LIB]NAME,1,[Define to '1' if you have the $2 library])
733 733
 			HAVE_LIB[]NAME=yes
734
+			LIB[]NAME="$ac_cv_findlib_[]NAME[]_libs"
735
+			LTLIB[]NAME="$ac_cv_findlib_[]NAME[]_ltlibs"
736
+			INC[]NAME="$ac_cv_findlib_[]NAME[]_libs"
734 737
 			$4
735 738
 	])
736 739
 	undefine([NAME])	
... ...
@@ -13,7 +13,7 @@ killclamd() {
13 13
 	timeout=10
14 14
 	(sleep $timeout && kill -0 $pid 2>/dev/null && kill -KILL $pid) &
15 15
 	sleeperpid=$!
16
-	wait $pid
16
+	kill -0 $pid 2>/dev/null && wait $pid
17 17
 	kill $sleeperpid 2>/dev/null
18 18
 	rm -f /tmp/clamd-test.pid
19 19
 }
... ...
@@ -1,11 +1,13 @@
1 1
 #!/bin/sh
2 2
 # Run under duma
3
-for i in $LIBDUMA /usr/lib/libduma.so /usr/local/lib/libduma.so; do
4
-	if test -f "$i"; then
5
-		LIBDUMA="$i"
6
-		break;
7
-	fi
8
-done
3
+if test -z "$LIBDUMA"; then
4
+	for i in /usr/lib/libduma.so /usr/local/lib/libduma.so; do
5
+		if test -f "$i"; then
6
+			LIBDUMA="$i"
7
+			break;
8
+		fi
9
+	done
10
+fi
9 11
 test -f "$LIBDUMA" || { echo "*** duma not found, skipping test"; exit 77;}
10 12
 DUMA_FILL=90
11 13
 DUMA_MALLOC_0_STRATEGY=1
... ...
@@ -1,16 +1,19 @@
1 1
 #!/bin/sh
2 2
 # Run under electric-fence
3
-for i in $LIBEFENCE /usr/lib/libefence.so /usr/local/lib/libefence.so /opt/csw/lib/libefence.so; do
4
-	if test -f "$i"; then
5
-		LIBEFENCE="$i"
6
-		break;
7
-	fi
8
-done
3
+if test -z "$LIBEFENCE"; then
4
+	for i in /usr/lib/libefence.so /usr/local/lib/libefence.so /opt/csw/lib/libefence.so; do
5
+		if test -f "$i"; then
6
+			LIBEFENCE="$i"
7
+			break;
8
+		fi
9
+	done
10
+fi
9 11
 test -f "$LIBEFENCE" || { echo "*** electric-fence not found, skipping test"; exit 77;}
10 12
 
13
+EF_DISABLE_BANNER=1
11 14
 EF_FREE_WIPES=1
12 15
 LIBPRELOAD="$LIBEFENCE"
13
-export EF_FREE_WIPES LIBPRELOAD
16
+export EF_FREE_WIPES LIBPRELOAD EF_DISABLE_BANNER
14 17
 VALGRIND=`which ${VALGRIND-valgrind}`
15 18
 if test ! -n "$VALGRIND" -o ! -x "$VALGRIND"; then
16 19
 	# run check_clamav under efence only if we don't have valgrind installed