/[path-sandbox]/trunk/configure.ac
Gentoo

Contents of /trunk/configure.ac

Parent Directory Parent Directory | Revision Log Revision Log


Revision 218 - (hide annotations) (download)
Mon Dec 5 09:53:28 2005 UTC (9 years, 3 months ago) by azarah
File size: 4318 byte(s)
Add checks for bsd that have dlopen() in libc.
1 azarah 180 AC_PREREQ([2.59])
2 azarah 209 AC_INIT([sandbox], [1.2.16], [sandbox@gentoo.org])
3 ferringb 2 AM_INIT_AUTOMAKE
4 ferringb 16 AC_CONFIG_HEADER([config.h])
5 ferringb 2
6 vapier 61 dnl Checks for programs.
7 ferringb 2 AC_PROG_CC
8 azarah 29 AC_ISC_POSIX
9     AC_PROG_INSTALL
10     AC_PROG_MAKE_SET
11     AC_PROG_AWK
12 azarah 183 AC_CHECK_PROGS([READELF], [readelf], [false])
13 azarah 29
14 vapier 21 AC_ENABLE_SHARED
15     AC_DISABLE_STATIC
16 vapier 61 dnl Next four lines is a hack to prevent libtool checking for CXX/F77
17 azarah 56 m4_undefine([AC_PROG_CXX])
18     m4_defun([AC_PROG_CXX],[])
19     m4_undefine([AC_PROG_F77])
20     m4_defun([AC_PROG_F77],[])
21 ferringb 2 AC_PROG_LIBTOOL
22    
23     AC_PREFIX_DEFAULT([/usr])
24 azarah 29
25 vapier 61 dnl Checks for libraries.
26     dnl Checks for header files.
27 ferringb 2 AC_FUNC_ALLOCA
28     AC_HEADER_DIRENT
29     AC_HEADER_STDC
30     AC_HEADER_SYS_WAIT
31 vapier 21 AC_CHECK_HEADERS([ \
32 azarah 180 fcntl.h limits.h memory.h stddef.h \
33     stdlib.h string.h strings.h sys/file.h \
34     sys/param.h sys/time.h unistd.h utime.h \
35 vapier 21 ])
36 ferringb 2
37 vapier 61 dnl Checks for typedefs, structures, and compiler characteristics.
38 ferringb 2 AC_C_CONST
39     AC_TYPE_UID_T
40     AC_TYPE_MODE_T
41     AC_TYPE_SIZE_T
42     AC_CHECK_TYPES([ptrdiff_t])
43    
44 vapier 61 dnl Checks for library functions.
45 ferringb 2 AC_FUNC_CHOWN
46     AC_FUNC_FORK
47     AC_FUNC_LSTAT
48     AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
49     AC_TYPE_SIGNAL
50     AC_FUNC_STAT
51 vapier 21 AC_CHECK_FUNCS([ \
52 azarah 180 bzero ftruncate getcwd lchown memmove \
53     mempcpy memset mkdir pathconf realpath \
54     rmdir setenv strcasecmp strchr strdup \
55     strerror strndup strrchr strspn strstr \
56 vapier 21 ])
57 ferringb 2
58 azarah 218 dnl Some libc's like those on bsd have dlopen() in libc, and not libdl
59     AC_CHECK_LIB([dl], [dlopen],
60     [have_libdl="yes"],
61     [have_libdl="no"]
62     )
63     if test x"$have_libdl" = xyes ; then
64     LIBDL="-ldl"
65     AC_SUBST([LIBDL])
66     DL_LIB="dl"
67     else
68     DL_LIB="c"
69     AC_CHECK_LIB([c], [dlopen],
70     [],
71     [AC_MSG_ERROR([Unable to determine library providing dlopen])]
72     )
73     fi
74    
75 vapier 62 dnl uClibc doesn't currently provide dlvsym() so lets
76     dnl verify the toolchain supports it
77 azarah 218 AC_CHECK_LIB([$DL_LIB], [dlvsym],
78 azarah 180 [AC_DEFINE([HAVE_DLVSYM], [1], [libdl supports dlvsym])],
79     [AC_DEFINE([HAVE_DLVSYM], [0], [libdl does not support dlvsym])]
80 vapier 62 )
81    
82 vapier 23 dnl when using libc5, (f)trucate's offset argument type is size_t with
83     dnl libc5, but it's off_t with libc6 (glibc2).
84 azarah 180 AC_MSG_CHECKING([truncate argument type])
85     TRUNC_ARG_TYPE=`echo '#include <unistd.h>' | $CC -E - | grep -q 'truncate.*size_t'`
86     if test "$TRUNC_ARG_TYPE"x != x ; then
87     AC_MSG_RESULT([size_t])
88     AC_DEFINE([TRUNCATE_T], [size_t], [truncate arg type])
89 vapier 23 else
90 azarah 180 AC_MSG_RESULT([off_t])
91     AC_DEFINE([TRUNCATE_T], [off_t], [truncate arg type])
92 vapier 23 fi
93    
94 azarah 216 dnl Check if we have glibc or clone
95     AC_MSG_CHECKING([for glibc])
96     AC_TRY_COMPILE([
97     #include <features.h>
98     ], [
99     #if !defined(__GLIBC__)
100     # error no glibc
101     #endif
102    
103     int main (void)
104     {
105     return 0;
106     }
107 azarah 217 ],
108     [have_glibc="yes"],
109     [have_glibc="no"]
110     )
111 azarah 216 if test x"$have_glibc" = xyes ; then
112     AC_MSG_RESULT([yes])
113     else
114     AC_MSG_RESULT([no])
115     fi
116     AM_CONDITIONAL([HAVE_GLIBC], [test x"$have_glibc" = xyes])
117    
118 vapier 53 dnl we need to handle symbols differently based upon their version,
119     dnl but we have to know which symbols the libc supports first
120 azarah 180 AC_MSG_CHECKING([libc path])
121 vapier 23 echo "int main(void) { return 0; }" > libctest.c
122 vapier 53 $CC -Wall -o libctest libctest.c
123     LIBC_PATH=`$CC $CFLAGS -Wl,-verbose -o libctest libctest.c 2>&1 | \
124 vapier 55 $AWK '/attempt to open/ { if (($4 ~ /libc\.so/) && ($5 == "succeeded")) LIBC = $4; }; END {print LIBC}'`
125 azarah 75 rm -f libctest.c
126 azarah 215 if test "$LIBC_PATH"x = x || ! test -r "$LIBC_PATH"; then
127 azarah 180 AC_MSG_ERROR([Unable to determine LIBC PATH])
128 vapier 53 fi
129 azarah 180 AC_MSG_RESULT([$LIBC_PATH])
130     AC_SUBST([LIBC_PATH])
131 vapier 23
132 vapier 53 dnl when intercepting libc calls, we have to know the name of the
133     dnl libc to load and search with dl*() calls
134 azarah 180 AC_MSG_CHECKING([libc version])
135 vapier 53 dnl the sed script at the end here looks funny but it's ok ...
136     dnl they're m4 escape sequences for left and right brackets
137     LIBC_VERSION=`readelf -d libctest | grep NEEDED.*libc\\.so | $AWK '{print $NF}' | sed -e 's:\@<:@::' -e 's:\@:>@::'`
138     if test "$LIBC_VERSION"x = x ; then
139 azarah 180 AC_MSG_ERROR([Unable to determine LIBC VERSION])
140 vapier 53 fi
141 azarah 181 rm -f libctest
142 azarah 180 AC_MSG_RESULT([$LIBC_VERSION])
143     AC_DEFINE_UNQUOTED([LIBC_VERSION], ["$LIBC_VERSION"], [name of libc to hook into])
144 vapier 53
145 azarah 179 dnl check if we have 32bit or 64bit output
146 azarah 181 AC_ARG_ENABLE([multilib],
147     AS_HELP_STRING([--enable-multilib],
148     [enable building for multilib setups (default=disabled)]),
149     [enable_multilib="$enableval"],
150     [enable_multilib="no"]
151     )
152    
153 azarah 216 if test x"$enable_multilib" != xno ; then
154 azarah 181 AC_DEFINE_UNQUOTED([SB_HAVE_MULTILIB], [1], [have multilib enabled system])
155 azarah 179 fi
156    
157 azarah 183 AC_OUTPUT([
158     Makefile
159     scripts/Makefile
160     data/Makefile
161     src/Makefile
162     ])

Properties

Name Value
svn:eol-style native
svn:keywords Author Date Id Revision

  ViewVC Help
Powered by ViewVC 1.1.20