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

Diff of /trunk/configure.ac

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 232 Revision 235
27AC_FUNC_ALLOCA 27AC_FUNC_ALLOCA
28AC_HEADER_DIRENT 28AC_HEADER_DIRENT
29AC_HEADER_STDC 29AC_HEADER_STDC
30AC_HEADER_SYS_WAIT 30AC_HEADER_SYS_WAIT
31AC_CHECK_HEADERS([ \ 31AC_CHECK_HEADERS([ \
32 fcntl.h limits.h memory.h stddef.h \ 32 fcntl.h limits.h memory.h stddef.h \
33 stdlib.h string.h strings.h sys/file.h \ 33 stdlib.h string.h strings.h sys/file.h \
34 sys/param.h sys/time.h unistd.h utime.h \ 34 sys/param.h sys/time.h unistd.h utime.h \
35]) 35])
36 36
37dnl Checks for typedefs, structures, and compiler characteristics. 37dnl Checks for typedefs, structures, and compiler characteristics.
38AC_C_CONST 38AC_C_CONST
39AC_TYPE_UID_T 39AC_TYPE_UID_T
47AC_FUNC_LSTAT 47AC_FUNC_LSTAT
48AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK 48AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
49AC_TYPE_SIGNAL 49AC_TYPE_SIGNAL
50AC_FUNC_STAT 50AC_FUNC_STAT
51AC_CHECK_FUNCS([ \ 51AC_CHECK_FUNCS([ \
52 bzero ftruncate getcwd lchown memmove \ 52 bzero ftruncate getcwd lchown memmove \
53 memcpy memset mkdir pathconf realpath \ 53 memcpy memset mkdir pathconf realpath \
54 rmdir setenv strcasecmp strchr strdup \ 54 rmdir setenv strcasecmp strchr strdup \
55 strerror strndup strrchr strspn strstr \ 55 strerror strndup strrchr strspn strstr \
56 strtok_r \
56]) 57])
57 58
58dnl Some libc's like those on bsd have dlopen() in libc, and not libdl 59dnl Some libc's like those on bsd have dlopen() in libc, and not libdl
59AC_CHECK_LIB([dl], [dlopen], 60AC_CHECK_LIB([dl], [dlopen],
60 [have_libdl="yes"], 61 [have_libdl="yes"],
61 [have_libdl="no"] 62 [have_libdl="no"]
62) 63)
63if test x"$have_libdl" = xyes ; then 64if test x"$have_libdl" = xyes ; then
64 LIBDL="-ldl" 65 LIBDL="-ldl"
65 AC_SUBST([LIBDL]) 66 AC_SUBST([LIBDL])
66 DL_LIB="dl" 67 DL_LIB="dl"
67else 68else
68 DL_LIB="c" 69 DL_LIB="c"
69 AC_CHECK_LIB([c], [dlopen], 70 AC_CHECK_LIB([c], [dlopen],
70 [], 71 [],
71 [AC_MSG_ERROR([Unable to determine library providing dlopen])] 72 [AC_MSG_ERROR([Unable to determine library providing dlopen])]
72 ) 73 )
73fi 74fi
74 75
75dnl uClibc doesn't currently provide dlvsym() so lets 76dnl uClibc doesn't currently provide dlvsym() so lets
76dnl verify the toolchain supports it 77dnl verify the toolchain supports it
77AC_CHECK_LIB([$DL_LIB], [dlvsym], 78AC_CHECK_LIB([$DL_LIB], [dlvsym],
78 [AC_DEFINE([HAVE_DLVSYM], [1], [libdl supports dlvsym])], 79 [AC_DEFINE([HAVE_DLVSYM], [1], [libdl supports dlvsym])],
79 [AC_DEFINE([HAVE_DLVSYM], [0], [libdl does not support dlvsym])] 80 [AC_DEFINE([HAVE_DLVSYM], [0], [libdl does not support dlvsym])]
80) 81)
81 82
82dnl when using libc5, (f)trucate's offset argument type is size_t with 83dnl when using libc5, (f)trucate's offset argument type is size_t with
83dnl libc5, but it's off_t with libc6 (glibc2). 84dnl libc5, but it's off_t with libc6 (glibc2).
84AC_MSG_CHECKING([truncate argument type]) 85AC_MSG_CHECKING([truncate argument type])
85TRUNC_ARG_TYPE=`echo '#include <unistd.h>' | $CC -E - | grep -q 'truncate.*size_t'` 86TRUNC_ARG_TYPE=`echo '#include <unistd.h>' | $CC -E - | grep -q 'truncate.*size_t'`
86if test "$TRUNC_ARG_TYPE"x != x ; then 87if test "$TRUNC_ARG_TYPE"x != x ; then
87 AC_MSG_RESULT([size_t]) 88 AC_MSG_RESULT([size_t])
88 AC_DEFINE([TRUNCATE_T], [size_t], [truncate arg type]) 89 AC_DEFINE([TRUNCATE_T], [size_t], [truncate arg type])
89else 90else
90 AC_MSG_RESULT([off_t]) 91 AC_MSG_RESULT([off_t])
91 AC_DEFINE([TRUNCATE_T], [off_t], [truncate arg type]) 92 AC_DEFINE([TRUNCATE_T], [off_t], [truncate arg type])
92fi 93fi
93 94
94dnl Check if libc provides RTLD_NEXT 95dnl Check if libc provides RTLD_NEXT
95AC_MSG_CHECKING([for RTLD_NEXT]) 96AC_MSG_CHECKING([for RTLD_NEXT])
96AC_TRY_COMPILE([ 97AC_TRY_COMPILE([
97#define _GNU_SOURCE 98 #define _GNU_SOURCE
98#include <dlfcn.h> 99 #include <dlfcn.h>
99], [ 100 ], [
100#if !defined(RTLD_NEXT) 101 #if !defined(RTLD_NEXT)
101# error no RTLD_NEXT 102 # error no RTLD_NEXT
102#endif 103 #endif
103 104 ],
104int
105main (void)
106{
107 return 0;
108}
109],
110 [have_rtld_next="yes"], 105 [have_rtld_next="yes"],
111 [have_rtld_next="no"] 106 [have_rtld_next="no"]
112) 107)
113AC_MSG_RESULT([$have_rtld_next]) 108AC_MSG_RESULT([$have_rtld_next])
114AM_CONDITIONAL([HAVE_RTLD_NEXT], [test x"$have_rtld_next" = xyes]) 109if test x"$have_rtld_next" = xyes ; then
110 AC_DEFINE([HAVE_RTLD_NEXT], [1], [Have RTLD_NEXT enabled libc])
111fi
115 112
116dnl we need to handle symbols differently based upon their version, 113dnl we need to handle symbols differently based upon their version,
117dnl but we have to know which symbols the libc supports first 114dnl but we have to know which symbols the libc supports first
118AC_MSG_CHECKING([libc path]) 115AC_MSG_CHECKING([libc path])
119echo "int main(void) { return 0; }" > libctest.c 116echo "int main(void) { return 0; }" > libctest.c
120$CC -Wall -o libctest libctest.c
121LIBC_PATH=`$CC $CFLAGS -Wl,-verbose -o libctest libctest.c 2>&1 | \ 117LIBC_PATH=`$CC $CFLAGS -Wl,-verbose -o libctest libctest.c 2>&1 | \
122 $AWK '/attempt to open/ { if (($4 ~ /\/libc\.so/) && ($5 == "succeeded")) LIBC = $4; }; END {print LIBC}'` 118 $AWK '/attempt to open/ { if (($4 ~ /\/libc\.so/) && ($5 == "succeeded")) LIBC = $4; }; END {print LIBC}'`
123rm -f libctest.c 119rm -f libctest*
124if test "$LIBC_PATH"x = x || ! test -r "$LIBC_PATH"; then 120if test "$LIBC_PATH"x = x || ! test -r "$LIBC_PATH"; then
125 AC_MSG_ERROR([Unable to determine LIBC PATH]) 121 AC_MSG_ERROR([Unable to determine LIBC PATH])
126fi 122fi
127AC_MSG_RESULT([$LIBC_PATH]) 123AC_MSG_RESULT([$LIBC_PATH])
128AC_SUBST([LIBC_PATH]) 124AC_SUBST([LIBC_PATH])
129 125
130dnl when intercepting libc calls, we have to know the name of the 126dnl when intercepting libc calls, we have to know the name of the
131dnl libc to load and search with dl*() calls 127dnl libc to load and search with dl*() calls
132AC_MSG_CHECKING([libc version]) 128AC_MSG_CHECKING([libc version])
133dnl the sed script at the end here looks funny but it's ok ... 129dnl the sed script at the end here looks funny but it's ok ...
134dnl they're m4 escape sequences for left and right brackets 130dnl they're m4 escape sequences for left and right brackets
131echo "int main(void) { return 0; }" > libctest.c
132$CC -Wall -o libctest libctest.c
135LIBC_VERSION=`readelf -d libctest | grep NEEDED.*libc\\.so | $AWK '{print $NF}' | sed -e 's:\@<:@::' -e 's:\@:>@::'` 133LIBC_VERSION=`readelf -d libctest | grep NEEDED.*libc\\.so | $AWK '{print $NF}' | sed -e 's:\@<:@::' -e 's:\@:>@::'`
134rm -f libctest*
136if test "$LIBC_VERSION"x = x ; then 135if test "$LIBC_VERSION"x = x ; then
137 AC_MSG_ERROR([Unable to determine LIBC VERSION]) 136 AC_MSG_ERROR([Unable to determine LIBC VERSION])
138fi 137fi
139rm -f libctest
140AC_MSG_RESULT([$LIBC_VERSION]) 138AC_MSG_RESULT([$LIBC_VERSION])
141AC_DEFINE_UNQUOTED([LIBC_VERSION], ["$LIBC_VERSION"], [name of libc to hook into]) 139AC_DEFINE_UNQUOTED([LIBC_VERSION], ["$LIBC_VERSION"], [Name of libc to hook into])
142 140
143dnl check if we have 32bit or 64bit output 141dnl check if we have 32bit or 64bit output
144AC_ARG_ENABLE([multilib], 142AC_ARG_ENABLE([multilib],
145 AS_HELP_STRING([--enable-multilib], 143 AS_HELP_STRING([--enable-multilib],
146 [enable building for multilib setups (default=disabled)]), 144 [enable building for multilib setups (default=disabled)]),
147 [enable_multilib="$enableval"], 145 [enable_multilib="$enableval"],
148 [enable_multilib="no"] 146 [enable_multilib="no"]
149) 147)
150 148
151if test x"$enable_multilib" != xno ; then 149if test x"$enable_multilib" != xno ; then
152 AC_DEFINE_UNQUOTED([SB_HAVE_MULTILIB], [1], [have multilib enabled system]) 150 AC_DEFINE([SB_HAVE_MULTILIB], [1], [Have multilib enabled system])
153fi 151fi
154 152
155AC_OUTPUT([ 153AC_OUTPUT([
156 Makefile 154 Makefile
157 scripts/Makefile 155 scripts/Makefile
158 data/Makefile 156 data/Makefile
159 src/Makefile 157 src/Makefile
160]) 158])
159

Legend:
Removed from v.232  
changed lines
  Added in v.235

  ViewVC Help
Powered by ViewVC 1.1.20