summaryrefslogtreecommitdiff
blob: 812c37e63175b79ce9f983b467b72ff5e311849a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
diff -urN8p a/configure.in b/configure.in
--- a/configure.in	2013-08-03 21:42:30.204749302 -0500
+++ b/configure.in	2013-08-03 21:45:17.496740871 -0500
@@ -929,17 +929,16 @@ if test x$UDEV_SYNC = xyes; then
 	dnl -- init pkgconfig if required
 	if  test x$PKGCONFIG_INIT != x1; then
 		pkg_config_init
 	fi
 	PKG_CHECK_MODULES(UDEV, libudev >= 143, [UDEV_PC="libudev"])
 	UDEV_STATIC_LIBS=`$PKG_CONFIG --static --libs libudev`
 	AC_DEFINE([UDEV_SYNC_SUPPORT], 1, [Define to 1 to enable synchronisation with udev processing.])
 fi
-AC_SUBST(UDEV_STATIC_LIBS)
 
 dnl -- Enable udev rules
 AC_MSG_CHECKING(whether to enable installation of udev rules required for synchronisation)
 AC_ARG_ENABLE(udev_rules,
 	      AC_HELP_STRING([--enable-udev_rules],
 			     [install rule files needed for udev synchronisation]),
 	      UDEV_RULES=$enableval, UDEV_RULES=$UDEV_SYNC)
 AC_MSG_RESULT($UDEV_RULES)
@@ -1173,29 +1172,42 @@ AC_ARG_ENABLE(selinux,
 	      SELINUX=$enableval)
 AC_MSG_RESULT($SELINUX)
 
 ################################################################################
 dnl -- Check for selinux
 if test x$SELINUX = xyes; then
 	AC_CHECK_LIB([sepol], [sepol_check_context], [
 		AC_DEFINE([HAVE_SEPOL], 1, [Define to 1 if sepol_check_context is available.])
-		SELINUX_LIBS="-lsepol"])
+		SEPOL_LIBS="-lsepol"])
 
-	AC_CHECK_LIB([selinux], [is_selinux_enabled], [
-		AC_CHECK_HEADERS([selinux/selinux.h],, hard_bailout)
-		AC_CHECK_HEADERS([selinux/label.h])
-		AC_DEFINE([HAVE_SELINUX], 1, [Define to 1 to include support for selinux.])
-		SELINUX_LIBS="-lselinux $SELINUX_LIBS"
+	dnl -- init pkgconfig if required
+	if  test x$PKGCONFIG_INIT != x1; then
+		pkg_config_init
+	fi
+	PKG_CHECK_MODULES(SELINUX, libselinux, [
 		SELINUX_PC="libselinux"
-		HAVE_SELINUX=yes ], [
-		AC_MSG_WARN(Disabling selinux)
-		SELINUX_LIBS=
-		SELINUX_PC=
-		HAVE_SELINUX=no ])
+		SELINUX_STATIC_LIBS=`$PKG_CONFIG --static --libs libselinux`
+		SELINUX_LIBS="$SELINUX_LIBS $SEPOL_LIBS"
+		AC_DEFINE([HAVE_SELINUX], 1, [Define to 1 to include support for selinux.])
+	],[
+		dnl -- old non-pkgconfig method, is buggy with static builds
+		AC_CHECK_LIB([selinux], [is_selinux_enabled], [
+			AC_CHECK_HEADERS([selinux/selinux.h],, hard_bailout)
+			AC_CHECK_HEADERS([selinux/label.h])
+			AC_DEFINE([HAVE_SELINUX], 1, [Define to 1 to include support for selinux.])
+			SELINUX_LIBS="-lselinux $SEPOL_LIBS"
+			SELINUX_STATIC_LIBS="$SELINUX_LIBS"
+			SELINUX_PC="libselinux"
+			HAVE_SELINUX=yes ], [
+			AC_MSG_WARN(Disabling selinux)
+			SELINUX_LIBS=
+			SELINUX_PC=
+			HAVE_SELINUX=no ])
+	])
 fi
 
 ################################################################################
 dnl -- Check for realtime clock support
 if test x$REALTIME = xyes; then
 	AC_CHECK_LIB(rt, clock_gettime, HAVE_REALTIME=yes, HAVE_REALTIME=no)
 
 	if test x$HAVE_REALTIME = xyes; then
@@ -1589,25 +1601,27 @@ AC_SUBST(QUORUM_LIBS)
 AC_SUBST(RAID)
 AC_SUBST(READLINE_LIBS)
 AC_SUBST(REPLICATORS)
 AC_SUBST(SACKPT_CFLAGS)
 AC_SUBST(SACKPT_LIBS)
 AC_SUBST(SALCK_CFLAGS)
 AC_SUBST(SALCK_LIBS)
 AC_SUBST(SELINUX_LIBS)
+AC_SUBST(SELINUX_STATIC_LIBS)
 AC_SUBST(SELINUX_PC)
 AC_SUBST(SNAPSHOTS)
 AC_SUBST(STATICDIR)
 AC_SUBST(STATIC_LDFLAGS)
 AC_SUBST(STATIC_LINK)
 AC_SUBST(TESTING)
 AC_SUBST(THIN)
 AC_SUBST(THIN_CHECK_CMD)
 AC_SUBST(UDEV_LIBS)
+AC_SUBST(UDEV_STATIC_LIBS)
 AC_SUBST(UDEV_PC)
 AC_SUBST(UDEV_RULES)
 AC_SUBST(UDEV_SYNC)
 AC_SUBST(UDEV_RULE_EXEC_DETECTION)
 AC_SUBST(UDEV_HAS_BUILTIN_BLKID)
 AC_SUBST(CUNIT_LIBS)
 AC_SUBST(CUNIT_CFLAGS)
 AC_SUBST(WRITE_INSTALL)
diff -urN8p a/make.tmpl.in b/make.tmpl.in
--- a/make.tmpl.in	2013-08-03 21:42:30.204749302 -0500
+++ b/make.tmpl.in	2013-08-03 22:09:52.017666556 -0500
@@ -27,31 +27,32 @@ GENHTML = @GENHTML@
 LN_S = @LN_S@
 SED = @SED@
 CFLOW_CMD = @CFLOW_CMD@
 AWK = @AWK@
 PYTHON = @PYTHON@
 
 LIBS = @LIBS@
 # Extra libraries always linked with static binaries
-STATIC_LIBS = $(SELINUX_LIBS) $(UDEV_STATIC_LIBS)
+STATIC_LIBS = $(SELINUX_STATIC_LIBS) $(UDEV_STATIC_LIBS)
 DEFS += @DEFS@
 # FIXME set this only where it's needed, not globally?
 CFLAGS += @CFLAGS@ @UDEV_CFLAGS@
 CLDFLAGS += @CLDFLAGS@
 ELDFLAGS += @ELDFLAGS@
 LDDEPS += @LDDEPS@
 LDFLAGS += @LDFLAGS@
 STATIC_LDFLAGS += @STATIC_LDFLAGS@
 LIB_SUFFIX = @LIB_SUFFIX@
 LVMINTERNAL_LIBS = -llvm-internal $(DAEMON_LIBS) $(UDEV_LIBS) $(DL_LIBS)
 DL_LIBS = @DL_LIBS@
 PTHREAD_LIBS = @PTHREAD_LIBS@
 READLINE_LIBS = @READLINE_LIBS@
 SELINUX_LIBS = @SELINUX_LIBS@
+SELINUX_STATIC_LIBS = @SELINUX_STATIC_LIBS@
 UDEV_LIBS = @UDEV_LIBS@
 UDEV_STATIC_LIBS = @UDEV_STATIC_LIBS@
 TESTING = @TESTING@
 
 # Setup directory variables
 prefix = @prefix@
 exec_prefix = @exec_prefix@
 udev_prefix = @udev_prefix@