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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
|
--- configure.in Tue May 15 13:48:04 2007
+++ configure.in Fri Jul 27 18:43:56 2007
@@ -475,14 +475,25 @@
dnl # On Some systems, we need extra pre-processor flags, to get them to
dnl # to do the threading properly.
dnl #
- AC_CHECK_LIB(pthread, pthread_create,
- [ CFLAGS="$CFLAGS -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS"
- LIBS="$LIBS -lpthread" ],
- AC_CHECK_LIB(c_r, pthread_create,
- [ CFLAGS="$CFLAGS -pthread -D_THREAD_SAFE" ],
- [ WITH_THREADS="no" ]
- )
- )
+dnl # On FreeBSD, check the pthread_create function with -pthread in $CFLAGS
+dnl # but WITHOUT -lpthread (see FreeBSD Porter's Handbook, section 12.12
+dnl # at http://tinyurl.com/34cya8 )
+ case "$host" in
+ *-freebsd*)
+ CFLAGS="$CFLAGS -pthread"
+ AC_CHECK_FUNC(pthread_create, , [ WITH_THREADS="no" ])
+ ;;
+ *)
+ AC_CHECK_LIB(pthread, pthread_create,
+ [ CFLAGS="$CFLAGS -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS"
+ LIBS="$LIBS -lpthread" ],
+ AC_CHECK_LIB(c_r, pthread_create,
+ [ CFLAGS="$CFLAGS -pthread -D_THREAD_SAFE" ],
+ [ WITH_THREADS="no" ]
+ )
+ )
+ ;;
+ esac
fi
dnl #
--- src/modules/rlm_ldap/configure.in Fri Jul 27 17:51:33 2007
+++ src/modules/rlm_ldap/configure.in Fri Jul 27 18:10:51 2007
@@ -77,14 +77,27 @@
dnl pthread stuff is usually in -lpthread
dnl or in -lc_r, on *BSD
+ dnl FreeBSD uses -pthread
if test "x$rlm_ldap_with_threads" = "xyes"; then
- AC_CHECK_LIB(pthread, pthread_create,
- [ LIBS="-lpthread $LIBS" ],
- AC_CHECK_LIB(c_r, pthread_create,
- [ LIBS="-lc_r $LIBS" ],
- [ rlm_ldap_with_threads="no" ]
- )
- )
+ case "$host" in
+ *-freebsd*)
+ old_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS -pthread"
+ AC_CHECK_FUNC(pthread_create, , [ rlm_ldap_with_threads="no" ])
+ if test "x$rlm_ldap_with_threads" = "xno"; then
+ CFLAGS=$old_CFLAGS
+ fi
+ ;;
+ *)
+ AC_CHECK_LIB(pthread, pthread_create,
+ [ LIBS="-lpthread $LIBS" ],
+ AC_CHECK_LIB(c_r, pthread_create,
+ [ LIBS="-lc_r $LIBS" ],
+ [ rlm_ldap_with_threads="no" ]
+ )
+ )
+ ;;
+ esac
fi
dnl Try only "-lldap_r" or "-lldap"
--- src/modules/rlm_sql/drivers/rlm_sql_mysql/configure.in Fri Nov 25 20:31:54 2005
+++ src/modules/rlm_sql/drivers/rlm_sql_mysql/configure.in Fri Jul 27 19:11:33 2007
@@ -61,14 +61,27 @@
dnl pthread stuff is usually in -lpthread
dnl or in -lc_r, on *BSD
+ dnl FreeBSD uses -pthread
if test "x$mysql_with_threads" = "xyes"; then
- AC_CHECK_LIB(pthread, pthread_create,
- [ LIBS="-lpthread $LIBS" ],
- AC_CHECK_LIB(c_r, pthread_create,
- [ LIBS="-lc_r $LIBS" ],
- [ mysql_with_threads=no ]
- )
- )
+ case "$host" in
+ *-freebsd*)
+ old_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS -pthread"
+ AC_CHECK_FUNC(pthread_create, , [ mysql_with_threads="no" ])
+ if test "x$mysql_with_threads" = "xno"; then
+ CFLAGS=$old_CFLAGS
+ fi
+ ;;
+ *)
+ AC_CHECK_LIB(pthread, pthread_create,
+ [ LIBS="-lpthread $LIBS" ],
+ AC_CHECK_LIB(c_r, pthread_create,
+ [ LIBS="-lc_r $LIBS" ],
+ [ mysql_with_threads=no ]
+ )
+ )
+ ;;
+ esac
fi
if test "x$mysql_with_threads" = "xyes"; then
--- src/modules/rlm_python/configure.in Thu May 15 15:52:02 2003
+++ src/modules/rlm_python/configure.in Thu Aug 2 12:43:47 2007
@@ -84,6 +84,44 @@
AC_SMART_CHECK_LIB(python${PY_VERSION}, Py_Initialize)
LIBS=$old_LIBS
+dnl # If that check fails, try it again having identified threading libraries
+dnl # in case libpython is threaded
+
+ if test "x$smart_lib" = "x"; then
+ AC_MSG_NOTICE([Checking to see if libpython may be threaded.])
+ dnl pthread stuff is usually in -lpthread
+ dnl or in -lc_r, on *BSD
+ dnl FreeBSD uses -pthread
+ libpython_with_threads="yes"
+ case "$host" in
+ *-freebsd*)
+ old_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS -pthread"
+ AC_CHECK_FUNC(pthread_create, , [ libpython_with_threads="no" ])
+ if test "x$libpython_with_threads" = "xno"; then
+ CFLAGS=$old_CFLAGS
+ fi
+ ;;
+ *)
+ AC_CHECK_LIB(pthread, pthread_create,
+ [ LIBS="-lpthread $LIBS" ],
+ AC_CHECK_LIB(c_r, pthread_create,
+ [ LIBS="-lc_r $LIBS" ],
+ [ libpython_with_threads="no" ]
+ )
+ )
+ ;;
+ esac
+
+ if test "x$libpython_with_threads" = "xyes"; then
+ old_LIBS=$LIBS
+ LIBS="$LIBS $PY_LIB_LOC $PY_EXTRA_LIBS -lm"
+ smart_try_dir=$PY_LIB_DIR
+ AC_SMART_CHECK_LIB(python${PY_VERSION}, Py_Initialize)
+ LIBS=$old_LIBS
+ fi
+ fi
+
eval t=\${ac_cv_lib_${sm_lib_safe}_${sm_func_safe}}
if test "x$t" = "xyes"; then
python_ldflags="$PY_LIB_LOC $PY_EXTRA_LIBS -lpython${PY_VERSION} -lm"
|