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

Contents of /trunk/configure.ac

Parent Directory Parent Directory | Revision Log Revision Log


Revision 216 - (hide annotations) (download)
Mon Dec 5 09:28:34 2005 UTC (8 years, 9 months 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 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 vapier 62 dnl uClibc doesn't currently provide dlvsym() so lets
59     dnl verify the toolchain supports it
60     AC_CHECK_LIB(dl, dlvsym,
61 azarah 180 [AC_DEFINE([HAVE_DLVSYM], [1], [libdl supports dlvsym])],
62     [AC_DEFINE([HAVE_DLVSYM], [0], [libdl does not support dlvsym])]
63 vapier 62 )
64    
65 vapier 23 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 azarah 180 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 vapier 23 else
73 azarah 180 AC_MSG_RESULT([off_t])
74     AC_DEFINE([TRUNCATE_T], [off_t], [truncate arg type])
75 vapier 23 fi
76    
77 azarah 216 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 vapier 53 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 azarah 180 AC_MSG_CHECKING([libc path])
101 vapier 23 echo "int main(void) { return 0; }" > libctest.c
102 vapier 53 $CC -Wall -o libctest libctest.c
103     LIBC_PATH=`$CC $CFLAGS -Wl,-verbose -o libctest libctest.c 2>&1 | \
104 vapier 55 $AWK '/attempt to open/ { if (($4 ~ /libc\.so/) && ($5 == "succeeded")) LIBC = $4; }; END {print LIBC}'`
105 azarah 75 rm -f libctest.c
106 azarah 215 if test "$LIBC_PATH"x = x || ! test -r "$LIBC_PATH"; then
107 azarah 180 AC_MSG_ERROR([Unable to determine LIBC PATH])
108 vapier 53 fi
109 azarah 180 AC_MSG_RESULT([$LIBC_PATH])
110     AC_SUBST([LIBC_PATH])
111 vapier 23
112 vapier 53 dnl when intercepting libc calls, we have to know the name of the
113     dnl libc to load and search with dl*() calls
114 azarah 180 AC_MSG_CHECKING([libc version])
115 vapier 53 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 azarah 180 AC_MSG_ERROR([Unable to determine LIBC VERSION])
120 vapier 53 fi
121 azarah 181 rm -f libctest
122 azarah 180 AC_MSG_RESULT([$LIBC_VERSION])
123     AC_DEFINE_UNQUOTED([LIBC_VERSION], ["$LIBC_VERSION"], [name of libc to hook into])
124 vapier 53
125 azarah 179 dnl check if we have 32bit or 64bit output
126 azarah 181 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 azarah 216 if test x"$enable_multilib" != xno ; then
134 azarah 181 AC_DEFINE_UNQUOTED([SB_HAVE_MULTILIB], [1], [have multilib enabled system])
135 azarah 179 fi
136    
137 azarah 183 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