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

Contents of /trunk/configure.ac

Parent Directory Parent Directory | Revision Log Revision Log


Revision 216 - (show annotations) (download)
Mon Dec 5 09:28:34 2005 UTC (9 years ago) by azarah
File size: 3957 byte(s)
Rename sandbox_futils.c to sandbox_utils.c.  Add gstrndup() and gbasename()
to sandbox_utils.c.  Add check for glibc, and fixup things to not need glibc
only extensions if not needed for versioned symbols.

1 AC_PREREQ([2.59])
2 AC_INIT([sandbox], [1.2.16], [sandbox@gentoo.org])
3 AM_INIT_AUTOMAKE
4 AC_CONFIG_HEADER([config.h])
5
6 dnl Checks for programs.
7 AC_PROG_CC
8 AC_ISC_POSIX
9 AC_PROG_INSTALL
10 AC_PROG_MAKE_SET
11 AC_PROG_AWK
12 AC_CHECK_PROGS([READELF], [readelf], [false])
13
14 AC_ENABLE_SHARED
15 AC_DISABLE_STATIC
16 dnl Next four lines is a hack to prevent libtool checking for CXX/F77
17 m4_undefine([AC_PROG_CXX])
18 m4_defun([AC_PROG_CXX],[])
19 m4_undefine([AC_PROG_F77])
20 m4_defun([AC_PROG_F77],[])
21 AC_PROG_LIBTOOL
22
23 AC_PREFIX_DEFAULT([/usr])
24
25 dnl Checks for libraries.
26 dnl Checks for header files.
27 AC_FUNC_ALLOCA
28 AC_HEADER_DIRENT
29 AC_HEADER_STDC
30 AC_HEADER_SYS_WAIT
31 AC_CHECK_HEADERS([ \
32 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 ])
36
37 dnl Checks for typedefs, structures, and compiler characteristics.
38 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 dnl Checks for library functions.
45 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 AC_CHECK_FUNCS([ \
52 bzero ftruncate getcwd lchown memmove \
53 mempcpy memset mkdir pathconf realpath \
54 rmdir setenv strcasecmp strchr strdup \
55 strerror strndup strrchr strspn strstr \
56 ])
57
58 dnl uClibc doesn't currently provide dlvsym() so lets
59 dnl verify the toolchain supports it
60 AC_CHECK_LIB(dl, dlvsym,
61 [AC_DEFINE([HAVE_DLVSYM], [1], [libdl supports dlvsym])],
62 [AC_DEFINE([HAVE_DLVSYM], [0], [libdl does not support dlvsym])]
63 )
64
65 dnl when using libc5, (f)trucate's offset argument type is size_t with
66 dnl libc5, but it's off_t with libc6 (glibc2).
67 AC_MSG_CHECKING([truncate argument type])
68 TRUNC_ARG_TYPE=`echo '#include <unistd.h>' | $CC -E - | grep -q 'truncate.*size_t'`
69 if test "$TRUNC_ARG_TYPE"x != x ; then
70 AC_MSG_RESULT([size_t])
71 AC_DEFINE([TRUNCATE_T], [size_t], [truncate arg type])
72 else
73 AC_MSG_RESULT([off_t])
74 AC_DEFINE([TRUNCATE_T], [off_t], [truncate arg type])
75 fi
76
77 dnl Check if we have glibc or clone
78 AC_MSG_CHECKING([for glibc])
79 AC_TRY_COMPILE([
80 #include <features.h>
81 ], [
82 #if !defined(__GLIBC__)
83 # error no glibc
84 #endif
85
86 int main (void)
87 {
88 return 0;
89 }
90 ], [have_glibc="yes"], [have_glibc="no"])
91 if test x"$have_glibc" = xyes ; then
92 AC_MSG_RESULT([yes])
93 else
94 AC_MSG_RESULT([no])
95 fi
96 AM_CONDITIONAL([HAVE_GLIBC], [test x"$have_glibc" = xyes])
97
98 dnl we need to handle symbols differently based upon their version,
99 dnl but we have to know which symbols the libc supports first
100 AC_MSG_CHECKING([libc path])
101 echo "int main(void) { return 0; }" > libctest.c
102 $CC -Wall -o libctest libctest.c
103 LIBC_PATH=`$CC $CFLAGS -Wl,-verbose -o libctest libctest.c 2>&1 | \
104 $AWK '/attempt to open/ { if (($4 ~ /libc\.so/) && ($5 == "succeeded")) LIBC = $4; }; END {print LIBC}'`
105 rm -f libctest.c
106 if test "$LIBC_PATH"x = x || ! test -r "$LIBC_PATH"; then
107 AC_MSG_ERROR([Unable to determine LIBC PATH])
108 fi
109 AC_MSG_RESULT([$LIBC_PATH])
110 AC_SUBST([LIBC_PATH])
111
112 dnl when intercepting libc calls, we have to know the name of the
113 dnl libc to load and search with dl*() calls
114 AC_MSG_CHECKING([libc version])
115 dnl the sed script at the end here looks funny but it's ok ...
116 dnl they're m4 escape sequences for left and right brackets
117 LIBC_VERSION=`readelf -d libctest | grep NEEDED.*libc\\.so | $AWK '{print $NF}' | sed -e 's:\@<:@::' -e 's:\@:>@::'`
118 if test "$LIBC_VERSION"x = x ; then
119 AC_MSG_ERROR([Unable to determine LIBC VERSION])
120 fi
121 rm -f libctest
122 AC_MSG_RESULT([$LIBC_VERSION])
123 AC_DEFINE_UNQUOTED([LIBC_VERSION], ["$LIBC_VERSION"], [name of libc to hook into])
124
125 dnl check if we have 32bit or 64bit output
126 AC_ARG_ENABLE([multilib],
127 AS_HELP_STRING([--enable-multilib],
128 [enable building for multilib setups (default=disabled)]),
129 [enable_multilib="$enableval"],
130 [enable_multilib="no"]
131 )
132
133 if test x"$enable_multilib" != xno ; then
134 AC_DEFINE_UNQUOTED([SB_HAVE_MULTILIB], [1], [have multilib enabled system])
135 fi
136
137 AC_OUTPUT([
138 Makefile
139 scripts/Makefile
140 data/Makefile
141 src/Makefile
142 ])

Properties

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

  ViewVC Help
Powered by ViewVC 1.1.20